ฉันต้องการสำรองไฟล์บนดิสก์ของฉันไปยังเซิร์ฟเวอร์สำรองเป็นประจำ เนื่องจากฉันมีไฟล์จำนวนมาก (ล้านไฟล์) ฉันต้องการใช้ rsync จึงส่งเฉพาะส่วนต่างเท่านั้น
จากเทอร์มินัล Ubuntu 18.04 สิ่งนี้จะสร้างเอาต์พุตไปยังไฟล์:
rsync -av /Disk2/ 192.168.1.80:/mnt/jjg-z2/39x-disk2/ &> /home/john/Desktop/nightly_disk2_logs.txt
แต่เมื่อฉันใช้ crontab -e
สำหรับเครื่องหมาย 16 นาทีของชั่วโมง (เพื่อทดสอบ)
16 * * * * rsync -av /Disk2/ 192.168.1.80:/mnt/jjg-z2/39x-disk2/ &> /home/john/Desktop
ฉันไม่เห็นผลลัพธ์ในไฟล์นี้บนเดสก์ท็อปของฉัน
ในความคิดเห็น steeldriver แนะนำการแก้ไขปัญหา 1. The crontab -e
ตอนนี้ดูเหมือนว่า:
SHELL=/ถัง/ทุบตี
52 * * * * rsync -av /Disk2/ 192.168.1.80:/mnt/jjg-14TB-z2/3970x-disk2/ &> /home/john/Desktop/nightly_disk2_logs.txt
ปัญหาที่ 2: ตอนนี้ฉันมีผลลัพธ์ในไฟล์ แต่ rsync มีปัญหาเรื่องสิทธิ์สภาพแวดล้อมของ crontab ที่เกี่ยวข้องกับคีย์ SSH ไม่เหมือนกับสภาพแวดล้อมของเทอร์มินัลหรือไม่ นี่คือผลลัพธ์ในไฟล์:
สิทธิ์ถูกปฏิเสธ โปรดลองอีกครั้ง
สิทธิ์ถูกปฏิเสธ โปรดลองอีกครั้ง
[email protected]: การอนุญาตถูกปฏิเสธ (รหัสสาธารณะ, รหัสผ่าน)
rsync: ปิดการเชื่อมต่อโดยไม่คาดคิด (ได้รับ 0 ไบต์จนถึงตอนนี้) [ผู้ส่ง]
ข้อผิดพลาด rsync: ข้อผิดพลาดที่ไม่ได้อธิบาย (รหัส 255) ที่ io.c(235) [sender=3.1.2]