nfs 공유를 사용하는 rsync는 "chown <...> 실패: 잘못된 인수(22)"를 제공합니다.

nfs 공유를 사용하는 rsync는 "chown <...> 실패: 잘못된 인수(22)"를 제공합니다.

루트로 실행되는 셸 스크립트를 통해 rsync를 사용하여 전체 시스템을 외부 디스크에 백업하려고 합니다.

#!/bin/bash
rsync -vSHPhhaX --numeric-ids --delete --exclude-from=/home/rena/.scripts/exclude-list / /home/rena/video/.backup/>/home/rena/video/.backup.log

스크립트는 "akira" 머신에서 실행됩니다. 처음에는 /home/rena/video가 akira의 USB 하드 드라이브에 직접 연결되었으며 스크립트가 제대로 실행되었습니다.

최근에 디스크를 옮겼습니다. 이제는 동일한 경로에 있는 다른 머신 "yuki"에 마운트되어 NFS를 통해 공유됩니다. 따라서 akira:/home/rena/video는 여전히 동일한 USB 하드 드라이브를 참조하며, 지금은 akira에 직접 연결되지 않고 yuki에 연결되고 nfs를 통해 공유됩니다. 디스크는 ext3을 사용하며 Truecrypt로 암호화됩니다.

유키의 /etc/exports는 다음과 같습니다.

/home/rena  akira(rw,subtree_check,nohide,no_root_squash) rei(rw,subtree_check,nohide,no_root_squash)
/home/rena/video    akira(rw,subtree_check,nohide,no_root_squash) rei(rw,subtree_check,nohide,no_root_squash)

이제 rsync는 각 파일에 대해 오류를 발생시킵니다.

rsync: chown "/home/rena/video/.backup/boot/System.map-2.6.38-8-generic" failed: Invalid argument (22)

nfs는 하지 말라는 말에도 불구하고 "압박"하는 것 같나요?

rena@akira $ stat /home/rena/video/.backup/boot/abi-2.6.38-10-generic
  File: `/home/rena/video/.backup/boot/abi-2.6.38-10-generic'
  Size: 730457          Blocks: 1440       IO Block: 65536  regular file
Device: 19h/25d Inode: 38822526    Links: 1
Access: (0644/-rw-r--r--)  Uid: (65534/  nobody)   Gid: (65534/ nogroup)
Access: 2011-10-19 22:17:12.000000000 -0600
Modify: 2011-06-28 13:19:43.000000000 -0600
Change: 2011-10-19 22:17:12.000000000 -0600

rena@yuki $ stat /home/rena/video/.backup/boot/abi-2.6.38-10-generic
  File: `/home/rena/video/.backup/boot/abi-2.6.38-10-generic'
  Size: 730457      Blocks: 1440       IO Block: 4096   regular file
Device: fc04h/64516d    Inode: 38822526    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2011-10-19 22:17:12.000000000 -0600
Modify: 2011-06-28 13:19:43.000000000 -0600
Change: 2011-10-19 22:17:12.000000000 -0600

akira에서는 UID와 GID가 다르게 보입니다. 왜 rsync가 실패할까요?

[편집] 사실 아키라에 나오는거랑 비슷하네요모든공유에 있는 파일의 UID 및 GID는 65534/nobody입니다.

답변1

이는 nfs 서버(yuki)의 이름 확인 문제인 것 같습니다.

  1. 호스트의 이름 확인이 file first로 설정되어 있는지 확인하세요./etc/nsswitch.conf
  2. 있는 경우 /etc/host.conf구문 분석 순서가 다음과 같이 설정되어 있는지 확인하세요.order hosts bind
  3. 클라이언트의 IP를 /etc/hostsNFS 서버에 넣습니다. 짧은 이름이 IP 다음의 첫 번째 항목인지 확인하세요.

답변2

NFSv4가 아니라고 가정하면 익명 공유를 수행하는 것으로 보이며 기본적으로 일치하는 uid/gid가 없으므로 하나/그룹이 할당되지 않습니다.

관련 정보