PostgreSQL、MySQL保守用のバックアップ、リストアのコマンド
毎回検索して実行しているので、自分用メモ。 環境: CentOS(linux), lampp ▼PostgreSQL バックアップ $ pg_dump dbname > /tmp/output.sql バックアップ(drop文付き) $ 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