web-dev-qa-db-ja.com

rsyncとバックアップおよびタイムゾーンの変更

Rsyncを使用して、カメラから写真をバックアップします。

 rsync -vzrtl --progress --stats --timeout=0 Host destination

最初のバックアップを行ったときは別のタイムゾーンにいましたが、別のタイムゾーンに移動してラップトップで変更しました(ubuntu 10.04.4を使用しています)。今日、私は自分の写真をバックアップしていましたが、タイムスタンプが異なることがわかりました(つまり、「ls -lt」で表示できるタイムスタンプ)。そのため、rsyncはディレクトリ全体をコピーします(常に最初にオプション-nを指定してrsyncを実行します。転送するファイルのリストを知っている)。ファイルは実際には同じなので、これはばかげています。そのため、以前のタイムゾーンに戻しました。実際、カメラでファイルのタイムスタンプが同じに変更されました。これはどういうわけか奇妙だと思います。

Rsyncを再度実行しましたが、ファイルはまだ異なります:@さて、ファイルを再度コピーしたくありません。これはばかげているでしょう。クリーンな解決策を提案できますか?将来これを防ぐにはどうすればよいですか?以前のタイムゾーンに変更した場合、ファイルがまだ異なるのはなぜですか?


Statを使用すると、ファイルのアクセス時間と変更時間が異なることがわかりました。例えば:

ホスト上

   File: `DSC00003.JPG'
   Size: 3068392    Blocks: 6016       IO Block: 32768  regular file
 Device: 821h/2081d Inode: 2109        Links: 1
 Access: (0755/-rwxr-xr-x)  Uid: ( 1000/simona)   Gid: ( 1000/simona)
 Access: 2013-03-26 00:00:00.000000000 +0000 
 Modify: 2007-12-25 22:48:20.000000000 +0000
 Change: 2007-12-25 22:48:20.000000000 +0000

そして目的地で

   File: `DSC00003.JPG'
   Size: 3068392    Blocks: 6008       IO Block: 4096   regular file
 Device: 802h/2050d Inode: 245762      Links: 1
 Access: (0755/-rwxr-xr-x)  Uid: ( 1000/simona)   Gid: ( 1000/simona)
 Access: 2013-03-26 10:24:49.000000000 +0000
 Modify: 2007-12-25 22:48:20.000000000 +0000
 Change: 2013-02-09 00:11:09.000000000 +0000

宛先で最近変更された画像をrsyncが上書きしないようにする方法はありますか?

3
simona

質問に答えるために、私は仮定をします:

ローカルでrsyncを使用しており、マウントされたSDカードからバックアップスペースに転送しています

MMCはFATファイルシステムでフォーマットされているため、FATファイルシステムはタイムスタンプを2秒の解像度で保存するため、--modify-window=1を設定すると常に便利です。

man rsyncは、ファイルの--size-onlyフラグを無視するオプションlast-modifiedを提供します。したがって、サイズが変更されたファイルのみ。編集したものは同期されます。

もう1つのオプションは、オプション--modify-windowを2つのtimzeone間の時間差(秒単位)に設定することです。例えば1時間の差がある場合は、2時間modify-window=3660を使用します

uTC設定に問題がある可能性があります。

date --utcと入力すると、ハードウェアクロックが正しく設定されているかどうかを確認できます。Xourソフトウェアクロックはdateで指定されます。

値は、グリニッジ標準時に対するローカルタイムゾーンと同じ差を持つ必要があります。

タイムゾーン(ソフトウェアクロック)を変更した場合でも、すべてのタイムスタンプが正しく設定されるように、ハードウェアクロックは常にUTCに設定する必要があります。

UTC時刻が正しくない場合は、BIOSで正しく設定されているかどうかを確認してください。そうでない場合は、修正してください。

設定されている場合は、/etc/default/rcSを確認できます。次の行になります(Ubuntu 12.04)

#assume that the BIOS clock is set to UTC time (recommended)
UTC=yes
5
os_1