Score:0

cron rsync วิธีเปลี่ยนเส้นทางไปยังไฟล์บนเดสก์ท็อป

ธง kn

ฉันต้องการสำรองไฟล์บนดิสก์ของฉันไปยังเซิร์ฟเวอร์สำรองเป็นประจำ เนื่องจากฉันมีไฟล์จำนวนมาก (ล้านไฟล์) ฉันต้องการใช้ 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]
hr flag
คุณกำลังตั้งค่า `SHELL=/bin/bash` ใน crontab หรือไม่ มิฉะนั้นมันจะทำงานใน `/bin/sh` - ซึ่งไม่เข้าใจการเปลี่ยนเส้นทาง `&>` เฉพาะของ bash
hr flag
ใช่ เพิ่ม `SHELL=/bin/bash` เป็นบรรทัดแยกต่างหาก (ทุกที่) ด้านบน - หรือเปลี่ยนเป็นไวยากรณ์การเปลี่ยนเส้นทาง POSIX `> /home/john/Desktop/nightly_disk2_logs.txt 2>&1`
cn flag
"crontab ไม่ใช้คีย์ SSH หรือไม่" ไม่ crontab ต้องการคีย์ ssh เพื่ออะไร!? มีไว้สำหรับการเชื่อมต่อภายนอก ดังนั้น rsync จึงต้องการพวกเขา ฉันขอแนะนำให้ระบุในคำสั่ง rsync --password-file และไฟล์ที่ให้มาต้องการ 600 เป็นการอนุญาต
grabbag avatar
kn flag
คำพูดของฉันน่าจะดีกว่านี้ ฉันควรจะพูดว่า "สภาพแวดล้อมของ crontab ที่เกี่ยวกับคีย์ SSH ไม่เหมือนกับสภาพแวดล้อมของเทอร์มินัลหรือไม่" คำตอบคือไม่ เนื่องจากความสามารถ --password ใน RSYNC ที่คุณตั้งค่าสถานะ ขอขอบคุณที่ชี้ให้เห็น
grabbag avatar
kn flag
--password-file /home/john/.ssh/id_rsa.pub ทำให้เกิดข้อผิดพลาด ตัวเลือก --password-file อาจใช้ได้เฉพาะเมื่อเข้าถึง rsync daemon
grabbag avatar
kn flag
ฉันลบวลีรหัสผ่านบนคีย์ ssh และตอนนี้มันใช้งานได้โดยไม่ต้องใช้ --password-file ดังนั้นดูเหมือนว่า SHELL=/bin/bash เนื่องจากบรรทัดแรกเพียงพอสำหรับ crontab เพื่อให้ ssh ที่ rsync ใช้การเข้าถึงคีย์
Score:0
ธง kn

ยูทูบ อธิบายกระบวนการ

ประเด็นสำคัญของฉัน:

  • ไม่มีข้อความรหัสผ่านบนคีย์ ssh
  • เพิ่ม SHELL=/bin/bash เป็นบรรทัดแรกของ crontab -e
  • &> /home/john/Desktop/backup_disk2_logs.txt เพื่อสร้างไฟล์บันทึกด้วย ดูที่

crontab -e ของฉันดูเหมือนว่า:

SHELL=/ถัง/ทุบตี
00 * * * * rsync -av /Disk2/ 192.168.1.80:/mnt/jjg-z2/disk2/ &> /home/john/Desktop/disk2_logs.txt

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา