Linux: สคริปต์ SFTP ไม่ทำงานในงาน cron


0

ฉันได้สร้างสคริปต์ 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


ใช่ตามที่ไซรัสแนะนำให้เปลี่ยนเส้นทาง sftp ส่งออกไปยังไฟล์และแสดงให้เรา! + คุณสร้างอย่างไร "สคริปต์ sftp passwordless" ?
Martin Prikryl

1
คุณเปลี่ยนสิทธิ์การดำเนินการในสคริปต์ของคุณหรือไม่ นั่นคือ , คุณทำ: chmod 755 /directory/of/script.sh ? นอกจากนี้เพื่อให้แน่ใจว่าให้เปลี่ยนคำสั่งด้วยพา ธ แบบเต็ม ( นั่นคือ , sftp - & gt; / usr / bin / sftp) เนื่องจากสภาพแวดล้อม cron แตกต่างจากของคุณ และด้วยโทเค็นเดียวกันให้แทนที่ ไฟล์ และ ไดเรกทอรี ด้วยเส้นทางที่เต็ม: ทำไม crontab ควรรู้อะไรเกี่ยวกับเส้นทางญาติ?
MariusMatutiae

ฉันทำ chmod + x หลังจากเขียนสคริปต์ แต่ไม่ใช่ chmod 775
Dan the Ninja
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.