リダイレクトとかのつかいかた
前提的な
・コマンドの実行結果は通常端末上に表示される。
・コマンドへの入力は通常キーボードから。
⇒これをファイルに出力、ファイルから入力するのがリダイレクト。
ファイルに書き込むあれこれ
コマンド > ファイル
・実行結果をファイルに書き込む。
・ファイルが無いときは新規作成。
・ファイルがあるときは上書き。
$ ls -l >ls.txt
$ cat ls.txt
total 79344
drwxr-xr-x 2 tmin tmin 4096 Oct 15 22:14 ビデオ
drwxr-xr-x 2 tmin tmin 4096 Oct 15 22:14 テンプレート
drwxr-xr-x 2 tmin tmin 4096 Oct 15 22:14 デスクトップ
drwxr-xr-x 2 tmin tmin 4096 Oct 15 22:14 ダウンロード
drwxr-xr-x 2 tmin tmin 4096 Oct 15 22:14 ドキュメント
drwxr-xr-x 2 tmin tmin 4096 Feb 26 12:34 backup
drwxr-xr-x 3 tmin tmin 4096 Oct 15 23:07 css
drwxr-xr-x 6 tmin tmin 4096 Oct 15 23:11 esuteru.com
~~中略~~
-rw-r--r-- 1 root root 2920 Oct 1 16:49 update.log
-r--r--r-- 1 root root 72448981 Oct 1 19:15 VMwareTools-10.0.10-4301679.tar.gz
drwxr-xr-x 9 root root 4096 Aug 26 2016 vmware-tools-distrib
drwxr-xr-x 5 tmin tmin 4096 Sep 9 21:50 wordpress
-rw-r--r-- 1 tmin tmin 8402893 Sep 10 14:12 wordpress-4.6.1-ja.tar.gz
drwxr-xr-x 2 tmin tmin 4096 Oct 15 22:14 公開
drwxr-xr-x 2 tmin tmin 4096 Oct 15 22:14 画像
drwxr-xr-x 2 tmin tmin 4096 Oct 15 22:14 音楽
コマンド >> ファイル
・実行結果をファイルに書き込む
・ファイルが無いときは新規作成
・ファイルがあるときは「追記する」
$ pwd > pwdtest
$ cat pwdtest
/home/tmin
$ pwd >> pwdtest
$ cat pwdtest
/home/tmin
/home/tmin
コマンド 2> ファイル
ファイルに標準エラー出力を書き込む。
$ cat / 2> errortest
$ cat errortest
cat: /: ディレクトリです
コマンド < ファイル
ファイルの内容をコマンドの標準入力に送る。
実践&活用
MySQLのDBバックアップ時。またはリストアするとき。
基本
mysqldump -u ユーザ名 -p DB名 > 出力先ファイル名
全DBのバックアップをdump.sqlに書き出し。
mysqldump -u root -x --all-databases > dump.sql
# mysqldump -u root -p -x --all-databases > dump.sql
db_redmineのバックアップをredmine.sqlに書き出し。
DBの復元⇒ダンプファイルからmysqldumpに送る
mysql -u ユーザ名 -p DB名 < ダンプファイル名
全DBの復元
上の方で作ったdump.sqlから全DBを復元するには
同様にdb_redmineのみ復元の場合
Debian系でインストールされているパッケージの一覧バックアップ&リストから一撃インストール
dpkgコマンドからlistファイルに書き出し。
dpkg --get-selections > list
取っておいたlistファイルから読み込んで一撃インストール!!
dpkg --set-selections < list
apt-get dselect-upgrade
基本的にはバックアップとかリストアとか。
あとは自動で動かしたシェルやらなんやらのログを出したいときとかに使うと幸せになれるかもしれない。
ちなみに書き出し系のリダイレクトは実行したディレクトリに書き出しファイルを作成するので、(ディレクトリ指定はできる)ファイルの出力先は作業できるディレクトリにしといた方が吉。