PostgreSQL、MySQL保守用のバックアップ、リストアのコマンド
毎回検索して実行しているので、自分用メモ。
環境: CentOS(linux), lampp
▼PostgreSQL
バックアップ
$ pg_dump dbname > /tmp/output.sql
$ pg_dump --clean dbname > /tmp/output.sql
リストア
$ psql dbname < /tmp/input.sql
リストアしたらVACUUMする(アナライズも)
$ vacuumdb -d dbname --analyze
▼MySQL
バックアップ(パスワード付き)。lamppが導入されているならphpMyAdmin経由の方が簡単
# mysqldump -p dbname > /tmp/output.sql
リストア(パスワード付き)
# mysql -p dbname < /tmp/input.sql
▼保守
ファイル(ディレクトリ)の圧縮(アーカイブ用)tarコマンド
※フルパスで実行するとパスごとアーカイブするのでカレントディレクトリを移動して実行するほうがいい。
# tar -czvf /tmp/archive.tar.gz target/
解凍
# tar -xzvf /tmp/archive.tar.gz
10日以内に更新されたファイルを抽出して圧縮する。
(2015/04/19 Modified)xargsは大量のファイルを抽出する場合に失敗する。参考:つらつらと気づいたことを書いていきます。人狼とか。# find ./target/ -mtime -10 | xargs tar czvf ./hoge.tgz
# find ./target/ -mtime -10 -print0 | tar -czv -T - --null -f ./hoge.tgz
「.svn」「node_modules」を除外したディレクトリ一覧をパス付きで。
# find -type d -name '.svn' -prune -o -name 'node_modules' -prune -o -type d -print
さらに書き込み可になっているディレクトリ一覧
# ls -dlF $(find -type d -name '.svn' -prune -o -name 'node_modules' -prune -o -type d -print) | grep rwxrwxrwx
▼SCPを使って外部サーバーからダウンロード
SSH使ってファイル転送。
外部サーバーにある「file.conf」をカレントディレクトリにダウンロード
# scp root@hoge.com:/opt/backup/file.conf ./
< Related Posts >