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が上書きしないようにする方法はありますか?
質問に答えるために、私は仮定をします:
ローカルで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