วิธีการตั้งค่างาน cron เพื่อรันเชลล์สคริปต์?


44

ฉันได้ตั้งค่างาน cron:

20 * * * * /usr/bin/sh /home/lucky/myfile.sh

ปัญหาหลักคือในเวลาที่กำหนดมีข้อผิดพลาด: "เมลได้ส่งไปยัง / var / spool / mail / lucky"

เนื้อหาของ myfile.sh คือ:

mkdir jh
cd jh 

สิ่งนี้อาจช่วยคุณได้: help.ubuntu.com/community/CronHowto
PeppeDAlterio

2
ถ้า myfile.sh ตั้งเป็นปฏิบัติการ?
rogerdpack

คำตอบ:


60

นี่ไม่เป็นไรสำหรับสคริปต์ที่ตั้งค่าเป็นงาน 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

น่ากลัวช่วยชีวิตฉันด้วย :) ผลงานของฉันเป็นแบบนี้ 0 7 * * * / bin / sh /root/Scripts/command.sh> / dev / null 2> & 1
Louwki

5

/เส้นทางที่นี้ดูเหมือนว่าจะมีการสร้างโฟลเดอร์ที่เป็น นี่เป็นเพราะ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/

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