데이터를 백업하기 위해 다음 rsync 명령을 실행합니다. 우분투 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##/*}" -- "$@"' _ {} +