ฉันได้สร้างสคริปต์ sftp ที่ไม่มีรหัสผ่านเพื่อดาวน์โหลดไฟล์จากเซิร์ฟเวอร์อื่นและตั้งค่า cron job เป็นรายวัน แต่เมื่อฉันตรวจสอบแล้วไฟล์จะไม่ทันสมัยซึ่งหมายความว่าสคริปต์ไม่ได้ทำงานใน cron ดังนั้น ฉันตรวจสอบบันทึก cron โดยใช้ grep "sftpscript.sh" /var/log/cron
และเห็นว่างาน cron ไม่ได้ทำงานตามที่กำหนดไว้ แต่ไฟล์จะไม่ดาวน์โหลด / ปรับปรุง สิ่งที่อาจเป็นปัญหาที่นี่? ขอบคุณ
กำหนดการ Cron ( crontab -e
):
0 8 * * * /directory/of/script.sh
นี่คือสคริปต์ของฉัน:
#!/bin/bash
echo "get file*" | sftp $username@$ipaddr:$external_path/
mv file* ./directory
2
สิ่งนี้อาจช่วย: วิธีการดีบักสคริปต์ทุบตี?
—
Cyrus
ใช่ตามที่ไซรัสแนะนำให้เปลี่ยนเส้นทาง
—
Martin Prikryl
sftp
ส่งออกไปยังไฟล์และแสดงให้เรา! + คุณสร้างอย่างไร "สคริปต์ sftp passwordless" ?
คุณเปลี่ยนสิทธิ์การดำเนินการในสคริปต์ของคุณหรือไม่ นั่นคือ , คุณทำ: chmod 755 /directory/of/script.sh ? นอกจากนี้เพื่อให้แน่ใจว่าให้เปลี่ยนคำสั่งด้วยพา ธ แบบเต็ม ( นั่นคือ , sftp - & gt; / usr / bin / sftp) เนื่องจากสภาพแวดล้อม cron แตกต่างจากของคุณ และด้วยโทเค็นเดียวกันให้แทนที่ ไฟล์ และ ไดเรกทอรี ด้วยเส้นทางที่เต็ม: ทำไม crontab ควรรู้อะไรเกี่ยวกับเส้นทางญาติ?
—
MariusMatutiae
ฉันทำ chmod + x หลังจากเขียนสคริปต์ แต่ไม่ใช่ chmod 775
—
Dan the Ninja