web-dev-qa-db-ja.com

rsyncエラー:レシーバーで切り捨てられたファイルの時間値

次のrsyncコマンドを実行して、データをバックアップします。私はUbuntu12.04を使用しています。

rsync -rt --delete --links --exclude-from '/home/john/rsync-exclude.txt' /media/data/ server:/backup/data

データパーティションはNTFS形式であり、次のように/etc/fstabを介してマウントされます。

UUID=371EB137049A5349 /media/data ntfs defaults,umask=007,uid=1000,gid=1000 0 0

ターゲットディスクは、ext4でフォーマットされたRAIDです。

ただし、一部のファイルのタイムスタンプが間違っているため、次のエラーメッセージが表示されます。

Time value of /media/data/20090513/090513_185507.jpg truncated on receiver.
Time value of /media/data/20090513/090513_194115.jpg truncated on receiver.
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1070) [sender=3.0.9]

ソースディスク上のファイルは次のようになります。

-rwxrwx--- 2 john 2.0M May 13  2009 090513_185357.jpg
-rwxrwx--- 2 john 1.5M May 13  2009 090513_185458.jpg
-rwxrwx--- 2 john 1.6M Jul 29  28617 090513_185507.jpg <---
-rwxrwx--- 2 john 1.8M May 13  2009 090513_185520.jpg
-rwxrwx--- 2 john 2.4M May 13  2009 090513_194047.jpg
-rwxrwx--- 2 john 2.2M May 13  2009 090513_194101.jpg
-rwxrwx--- 2 john 2.1M Jul 29  28617 090513_194115.jpg <---
-rwxrwx--- 2 john 2.4M May 13  2009 090513_194135.jpg

これは、ターゲットディスク上でファイルがどのように見えるかです。

-rwxr-x---    1 root     root       1863446 May 13  2009 090513_185357.jpg
-rwxr-x---    1 root     root       1863446 May 13  2009 090513_185458.jpg
-rwxr-x---    1 root     root       1573733 Aug  8 04:18 090513_185507.jpg <---
-rwxr-x---    1 root     root       1863446 May 13  2009 090513_185520.jpg
-rwxr-x---    1 root     root       2504805 May 13  2009 090513_194047.jpg
-rwxr-x---    1 root     root       2297826 May 13  2009 090513_194101.jpg
-rwxr-x---    1 root     root       2147897 Aug  8 04:18 090513_194115.jpg <---
-rwxr-x---    1 root     root       2455909 May 13  2009 090513_194135.jpg

ファイルのタイムスタンプを修正する必要がありますか、それともrsyncにオプションを追加する必要がありますか?あなたが推薦するものは何でも、理由を与えて、そうするために関連するコマンドを提供してください。

3
JJD

28617のその日付は明らかに間違っており、それを修正する理由だけです。さらに、それは、普遍的にサポートされている日付の範囲である1970〜2038の範囲外です。特に、ext4(1901〜2514)でサポートされている範囲外です。そのため、どのツールを使用しても、その日付をターゲットシステムに保存することはできません。

ファイルを今日の日付に設定できます。

touch 090513_185507.jpg 090513_194115.jpg

または、おそらく同じ時期に作成された他のファイルの日付まで:

touch -r 090513_185458.jpg 090513_185507.jpg 090513_194115.jpg

遠い将来の日付を持つファイルが多数ある場合、それらはすべて、名前が日付を表すディレクトリにあります。

find /media/data -mtime --1 -execdir sh -c 'touch -d "${PWD##/*}" -- "$@"' _ {} +