
現在、数日ごとに Leopard でスクリプトを実行して、次のスクリプトを使用してリモート サーバーにデータをバックアップしていることを確認しています。
#!/bin/bash
rsync -avvz ~/Documents ~/Workspace -e ssh [email protected]:~/Backup/
この方法には制限があり、たとえば、数回前のバックアップで削除されたファイルを表示することはできません。このプロセスを自動化する最適な方法は何ですか?
答え1
Leopard で cron ジョブを設定できますか?
サンプルの rsync オプション (-avvz) は、以前のバックアップ以降にローカル ディレクトリから削除された 'remote' ディレクトリ内のファイルを削除しません。それらのファイルはリモート ディレクトリにまだ残っているはずです。
しかし、あなたの例はわかりにくいです。ファイルを ~/Documents から ~/Workspace にコピーしているのでしょうか、それとも myhost.com の ~/Backup/ にコピーしているのでしょうか。
これは Leopard の特殊性かもしれませんが、~/Documents から ~/Workspace にコピーしているだけのように見えます。その場合、行の残りの部分は無視される可能性があります (ssh を呼び出す必要はありません)
ソースディレクトリの指定を/で終わらせることも検討すべきである。
利用可能なディスク容量があれば、ローテーションバックアップがよいというピーターの意見には私も同意します。
答え2
あなたが探していますrdiff バックアップ非常に非常に良いです。
答え3
rsnapshot パッケージは非常に優れており、すべてのディストリビューションで利用できることがわかり、今 Mac にインストールしました。
これは、時間ごと、日ごと、週ごと、月ごとの増分バックアップを処理する rsync のラッパーです。
答え4
私は毎日午前 5:30 にこの cron ジョブを実行します。
#! /bin/bash
echo -n "cleaning remote database...";
ssh wf ./bin/mysql-clean;
echo "Done";
echo -n "running remote backup script...";
ssh wf ./bin/mysql-backup;
echo "Done";
scp wf:~/mysql-`date +%Y-%m-%d`.sql.bz2 /storage/mysql/;
次に、私のウェブホストに、データベースを掃除して不要なものをすべて削除する mysql-clean というスクリプトがあります。mysql-backup は基本的に、mysqldump を bzip2 でパイプしたもので、日付に従って名前を付けます。また、最新のバックアップ ファイルを取得して解凍し、ローカルの mysql データベースをクリアしてから、バックアップ ファイルからすべてのデータを挿入するスクリプトもあります。