web-dev-qa-db-ja.com

cronスクリプトでのRsyncの動作

チェックポイント(バックアップ)を毎日作成するnfsデバイスがあります。 Rsyncを使用して、これらのチェックポイントを別のデバイス(iSCSI経由で接続されたDrobo)にコピーします。そのため、単一のnfs共有でスクリプトを実行しましたが、うまく機能します。以下に、何度も実験するのに時間がかかりすぎる懸念事項をいくつか示します。

  1. バックアップする複数の共有があり、それらをループして、各共有に対してスクリプトを実行したいと思います。これはRsyncでどのように機能しますか? Rsyncジョブは開始してから再びループし、2番目と3番目と4番目のRsyncジョブを同時に実行しますか、それともRsyncはジョブが完了するのを待ってからループを終了して再開しますか?たぶん、Rsyncが完了するまで再起動しないように、ループにチェックを入れる必要があるだけかもしれません。

  2. その最後の文を参照します。エラーがあった場合に報告するために使用できる、またはすべてがうまくいった場合にループを続行するために使用できるRsyncは何を返しますか?

  3. NFSデバイスによって作成されたチェックポイントは、日付に基づいて名前が付けられます。 Rsyncは、.ckpt *ファイルを静的な名前のディレクトリに解凍しています。ソースは異なるディレクトリですが、内部のファイルは同じであり、ターゲットの名前は同じであるため、Rsyncは差分のみをコピーしますか?

これはrsyncジョブです:rsync -az $NEWCHKPT/* /Drobo/bak.${share}/${share}_daily

私はこれが投稿が多くを求めていることを知っています。どんなアドバイスも大歓迎です。

4
Dan
  1. ループの記述方法に依存します。 &シンボルでrsyncコマンドをバックグラウンドにしない限り、rsyncコマンドは順番に実行されます。

  2. rsyncは有用な終了ステータスを返します。これらはrsyncのマニュアルページにリストされています。 man rsync | less '+/^EXIT VALUE'。 1つのスクリプトが失敗したときにスクリプト全体を中止するか、他のスクリプトを実行しようとするかを決定し、失敗したスクリプトの最後にエラーの概要を提供する必要があります。

  3. rsyncには、ファイルをコピーするかどうかを決定するさまざまな方法があります。デフォルトでは、ソースファイルと宛先ファイルのサイズと最終変更時刻を確認します。両方が一致する場合、そのファイルのコピーはスキップされます。通常はそれで十分です。

2
geirha