ฉันได้ตั้งค่างาน cron:
20 * * * * /usr/bin/sh /home/lucky/myfile.sh
ปัญหาหลักคือในเวลาที่กำหนดมีข้อผิดพลาด: "เมลได้ส่งไปยัง / var / spool / mail / lucky"
เนื้อหาของ myfile.sh คือ:
mkdir jh
cd jh
ฉันได้ตั้งค่างาน cron:
20 * * * * /usr/bin/sh /home/lucky/myfile.sh
ปัญหาหลักคือในเวลาที่กำหนดมีข้อผิดพลาด: "เมลได้ส่งไปยัง / var / spool / mail / lucky"
เนื้อหาของ myfile.sh คือ:
mkdir jh
cd jh
คำตอบ:
นี่ไม่เป็นไรสำหรับสคริปต์ที่ตั้งค่าเป็นงาน cron:
mkdir jh
cd jh
คุณควรให้เส้นทางแบบเต็มที่jh
จะต้องสร้างไดเรกทอรี นอกจากนี้ในเส้นทางนี้คุณควรได้รับอนุญาตให้สร้างไฟล์ / ไดเรกทอรีใหม่
ตัวอย่างเช่นสคริปต์ของคุณควรมีลักษณะดังนี้:
#!/bin/sh
mkdir /home/lucky/jh
cd /home/lucky/jh
นอกจากนี้ยังไม่ได้เป็นเส้นทางที่เหมาะสมสำหรับ/usr/bin/sh
เส้นทางที่ถูกต้องคือsh
/bin/sh
คุณสามารถตรวจสอบสิ่งนี้ด้วยwhereis sh
คำสั่ง และถึงอย่างนั้นงาน cron ของคุณควรมีลักษณะดังนี้:
20 * * * * /home/lucky/myfile.sh
อย่าลืมทำให้สคริปต์ใช้งานได้:
chmod +x /home/lucky/myfile.sh
/
เส้นทางที่นี้ดูเหมือนว่าจะมีการสร้างโฟลเดอร์ที่เป็น นี่เป็นเพราะcrontab
ต้องการเส้นทางแบบเต็มไปยังโฟลเดอร์และไฟล์ ในไฟล์ทั้งหมดที่เรียกใช้งาน
ดังนั้นเส้นทางใน myfile.sh ควรเป็น
mkdir <absolutePath>/jh
cd <absolutePath>/jh
20 * * * * /usr/bin/sh /home/lucky/myfile.sh
บรรทัดนี้ถูกต้องแม้ว่าคุณควรตรวจสอบเส้นทางเพื่อดูว่ามี sh อยู่ที่ / usr / bin / sh หรือไม่ (ใช้which sh
เพื่อดูเส้นทางที่มี sh อยู่อยู่ mine คือ / bin / sh)
หากคุณกำลังรีบเขียน crontab ลิงค์นี้มีตัวอย่างที่ดี
http://www.thegeekstuff.com/2009/06/15-practical-crontab-examples/