rsync 错误:文件的时间值在接收器上被截断

rsync 错误:文件的时间值在接收器上被截断

我运行以下 rsync 命令来备份我的数据。我使用的是 Ubuntu 12.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 添加一些选项?无论您建议什么,请给出理由并提供相关命令。

答案1

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##/*}" -- "$@"' _ {} +

相关内容