私はrsyncを使って次のようにカメラの写真をバックアップします。
rsync -vzrtl --progress --stats --timeout=0 host destination
最初のバックアップを実行したときは別のタイムゾーンにあり、別のタイムゾーンに移動してノートブックでそれを変更しました(私はubuntu 10.04.4を使用しています)。今日の写真をバックアップし、タイムスタンプが異なることがわかりました(「ls -lt」と見ることができるタイムスタンプを意味します)。だから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がターゲットで最近変更された画像を上書きするのを防ぐ方法はありますか?
答え1
この質問に答えるために、私は次の仮定をします。
マウントされたSDカードからバックアップスペースに転送するためにローカルでrsyncを使用しています。
--modify-window=1
MMCはFATファイルシステムを使用してフォーマットされているため、FATファイルシステムは2秒の解像度でタイムスタンプを保存するため、MMCを設定することは常に便利です。
man rsync
--size-only
ファイルフラグを無視するオプションを提供しますlast-modified
。したがって、変更されたサイズのファイル(編集済みファイルなど)のみが同期されます。
別のオプションは、オプションを--modify-window
2つの時間差の間の秒単位の時間差に設定することです。たとえば、modify-window=3660
1時間の差がある場合は2時間を使用します。
UTCの設定に問題がある可能性があります。
date --utc
Xour Softwareclock is generate byと入力して、ハードウェアクロックが正しく設定されていることを確認できますdate
。
この値は、現地時間帯とグリニッジ標準時の差と同じでなければなりません。
タイムゾーン(ソフトウェアクロック)を変更しても、すべてのタイムスタンプが正しく設定されるように、ハードウェアクロックは常にUTCに設定する必要があります。
UTC時間が間違っている場合は、BIOS設定が正しいことを確認してください。間違った場合は修正してください。
設定されていることを確認できます/etc/default/rcS
。次の行にする必要があります(Ubuntu 12.04)。
#assume that the BIOS clock is set to UTC time (recommended)
UTC=yes