rsync mang lại cho chown <<>> không thành công: Đối số không hợp lệ (22) với chia sẻ nfs


7

Tôi đang cố gắng sao lưu toàn bộ hệ thống của mình vào một ổ đĩa ngoài bằng rsync, thông qua tập lệnh shell được chạy dưới dạng root:

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

Kịch bản này đang chạy trên máy "akira". Ban đầu, / home / rena / video là một đĩa cứng USB được gắn trực tiếp vào akira và tập lệnh hoạt động tốt.

Gần đây tôi đã chuyển đĩa; bây giờ nó được gắn tại cùng một đường dẫn trên một máy "yuki" khác và được chia sẻ qua NFS. Vì vậy, akira: / home / rena / video vẫn đề cập đến cùng một đĩa cứng USB, chỉ bây giờ nó được gắn vào yuki và được chia sẻ qua nfs, thay vì gắn trực tiếp với akira. Đĩa đang sử dụng ext3 và được mã hóa bằng Truecrypt.

yuki's / etc / export là:

/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)

Bây giờ rsync đưa ra lỗi cho mọi tệp:

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

nfs dường như bị "đè bẹp" mặc dù nó được bảo là không?

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

từ akira, UID và GID xuất hiện khác nhau; có thể lý do cho rsync thất bại?

[sửa] Trên thực tế có vẻ như từ akira, mọi tệp trên chia sẻ đều có UID và GID 65534 / không có ai.


Điều này trông giống như ID người dùng không khớp trên cả hai hệ thống (như bạn đã nêu). Và sau đó, hệ thống đích dường như không thích UID 22. Bạn có thể thực hiện một cuộc trò chuyện 22 trên bất kỳ tệp nào tại yuki cục bộ không? Hãy thử chạy SSHD ở chế độ gỡ lỗi trên Yuki - có lẽ bạn có thể thấy những gì đang xảy ra ở đó.
Nils

@Nils chown 22 testthành công trên Yuki và sự thay đổi được phản ánh bởi stat. Tôi không có uid 22 trên cả hai hệ thống; Tôi không chắc con số đó đến từ đâu.
Rena

Bạn rsync với "--numeric-ids" - vì vậy tôi cho rằng UID đến từ Akira. Bạn có thấy bất cứ điều gì thú vị trên gỡ lỗi sshd?
Nils

Tôi không tìm thấy bất kỳ tập tin nào có uid 22 với $ sudo find / -uid 22 -print. EINVAL tình cờ là mã lỗi 22, vì vậy tôi đoán đó hoàn toàn không phải là UID ... Tôi không chắc chắn cách sử dụng chế độ gỡ lỗi sshd với nfs?
Rena

Tôi không nghĩ rằng đây là một vấn đề ssh - sau khi cập nhật của bạn, nó trông giống như một root-squash-NFS-mount. Kiểm tra đầu ra máy chủ NFS (yuki) của bạn khi akira gắn kết. Tên yuki dùng để chỉ khi akira gắn kết là gì? Nếu đó không chính xác là akira, tùy chọn xuất của bạn (no_squash) sẽ không hoạt động.
Nils

Câu trả lời:


1

Đây có vẻ là một tên giải quyết vấn đề trên máy chủ nfs (yuki) của bạn.

  1. Đảm bảo rằng việc phân giải tên được đặt thành tệp trước tiên cho máy chủ lưu trữ trong /etc/nsswitch.conf
  2. Nếu có /etc/host.confchắc chắn rằng lệnh giải quyết được đặt thành:order hosts bind
  3. Đặt IP của khách hàng của bạn vào /etc/hostsmáy chủ NFS. Hãy chắc chắn rằng tên ngắn là mục đầu tiên sau IP.

Làm thế nào tôi có thể làm điều này khi hệ thống có địa chỉ IP động? Tôi có phải gán địa chỉ tĩnh không?
Rena

Hoặc điều này (đó là một ý tưởng tốt cho bất kỳ máy chủ nào - để làm cho nó độc lập với các dịch vụ khác như dhcp) hoặc sử dụng tên máy chủ đủ điều kiện trên yuki (nếu nó giữ nguyên).
Nils

Điều này có vẻ hữu ích, nhưng tôi vẫn có một số tệp bị lỗi này, khi uid của chúng là một tệp không thuộc về bất kỳ người dùng nào trên yuki. Phải có cách nào để bảo nó thay đổi uid / gid ngay cả khi không có người dùng / nhóm như vậy tồn tại trên đích? Tôi nghĩ rằng - id-ids sẽ làm điều đó ... (và một lần nữa, nhìn từ akira, uid của họ là 65534 / không ai, nhưng trên yuki, 114 / UNKNOWN. 114 là một uid hợp lệ trên akira, nhưng không phải trên yuki.)
Rena

0

Giả sử đây không phải là NFSv4, bạn dường như đang thực hiện chia sẻ ẩn danh và vì không có sự phù hợp nào của uid / gid theo mặc định, không ai / nogroup được chỉ định.


1
Nó dường như là nfs4, như các chương trình gắn kết: yuki:/home/rena/video on /home/rena/video type nfs (rw,vers=4,addr=192.168.1.67,clientaddr=192.168.1.66)
Rena
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.