Điểm:0

cron rsync, cách chuyển hướng đến một tệp trên máy tính để bàn

lá cờ kn

Tôi muốn sao lưu thường xuyên các tệp trên đĩa của mình vào một máy chủ sao lưu. Vì tôi có rất nhiều tệp (hàng triệu) nên tôi muốn sử dụng rsync để chỉ gửi những điểm khác biệt.

từ thiết bị đầu cuối Ubuntu 18.04, điều này tạo đầu ra thành một tệp:

rsync -av /Disk2/ 192.168.1.80:/mnt/jjg-z2/39x-disk2/ &> /home/john/Desktop/nightly_disk2_logs.txt

Nhưng khi tôi sử dụng crontab -e, cho mốc 16 phút của giờ (để kiểm tra)

16 * * * * rsync -av /Disk2/ 192.168.1.80:/mnt/jjg-z2/39x-disk2/ &> /home/john/Desktop

Tôi không thấy đầu ra trong tệp này trên máy tính để bàn của mình. Trong các nhận xét, steeldriver đã đề xuất cách khắc phục sự cố 1. crontab -e bây giờ trông giống như:

SHELL=/bin/bash
52 * * * * rsync -av /Disk2/ 192.168.1.80:/mnt/jjg-14TB-z2/3970x-disk2/ &> /home/john/Desktop/nightly_disk2_logs.txt

Vấn đề 2: Bây giờ tôi có đầu ra trong tệp nhưng rsync có vấn đề về quyền.Môi trường của crontab đối với các khóa SSH không giống với môi trường của thiết bị đầu cuối? Đây là đầu ra trong tập tin:

Quyền bị từ chối, vui lòng thử lại.
Quyền bị từ chối, vui lòng thử lại.
[email protected]: Quyền bị từ chối (khóa công khai, mật khẩu).
rsync: kết nối bị đóng đột ngột (0 byte đã nhận cho đến nay) [người gửi]
lỗi rsync: lỗi không rõ nguyên nhân (mã 255) tại io.c(235) [sender=3.1.2]
lá cờ hr
Bạn có đang đặt `SHELL=/bin/bash` trong crontab không? Nếu không, nó sẽ chạy trong `/bin/sh` - không hiểu chuyển hướng `&>` cụ thể của bash
lá cờ hr
Có, hãy thêm `SHELL=/bin/bash` làm một dòng riêng biệt (ở bất kỳ đâu) ở trên - hoặc thay đổi thành cú pháp chuyển hướng POSIX `> /home/john/Desktop/nightly_disk2_logs.txt 2>&1`
lá cờ cn
"Crontab không sử dụng khóa SSH?" Không, crontab cần khóa ssh để làm gì!? Đó là cho các kết nối bên ngoài. Vì vậy, rsync cần chúng. Tôi khuyên bạn nên cung cấp nó trong lệnh rsync. --password-file và tệp được cung cấp cần 600 dưới dạng quyền
grabbag avatar
lá cờ kn
Từ ngữ của tôi có thể đã được tốt hơn. Lẽ ra tôi phải nói, "Môi trường của crontab đối với các khóa SSH không giống với môi trường của thiết bị đầu cuối phải không?" Câu trả lời rõ ràng là không, do khả năng --password trong RSYNC mà bạn đã gắn cờ. Cảm ơn vì đã chỉ ra điều này.
grabbag avatar
lá cờ kn
--password-file /home/john/.ssh/id_rsa.pub dẫn đến lỗi Tùy chọn --password-file chỉ có thể được sử dụng khi truy cập daemon rsync.
grabbag avatar
lá cờ kn
Tôi đã xóa cụm mật khẩu trên khóa ssh và bây giờ nó hoạt động mà không cần --password-file. Vì vậy, có vẻ như SHELL=/bin/bash vì dòng đầu tiên là đủ để crontab cung cấp cho ssh rằng rsync sử dụng quyền truy cập vào các khóa.
Điểm:0
lá cờ kn

youtube mô tả quá trình.

Điểm mấu chốt của tôi:

  • không có cụm mật khẩu trên các phím ssh
  • thêm SHELL=/bin/bash làm dòng đầu tiên của crontab -e
  • &> /home/john/Desktop/backup_disk2_logs.txt để tạo tệp nhật ký, hãy xem

crontab -e của tôi trông giống như:

SHELL=/bin/bash
00 * * * * rsync -av /Disk2/ 192.168.1.80:/mnt/jjg-z2/disk2/ &> /home/john/Desktop/disk2_logs.txt

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.