ฉันจะรันคำสั่งทุก ๆ หกชั่วโมงทุกวันได้อย่างไร
ฉันลองสิ่งต่อไปนี้ แต่มันไม่ทำงาน:
/6 * * * * * mycommand
ฉันจะรันคำสั่งทุก ๆ หกชั่วโมงทุกวันได้อย่างไร
ฉันลองสิ่งต่อไปนี้ แต่มันไม่ทำงาน:
/6 * * * * * mycommand
คำตอบ:
คุณลืม*
และคุณมีเขตข้อมูลมากเกินไป เป็นชั่วโมงที่คุณต้องใส่ใจ
0 */6 * * * /path/to/mycommand
ซึ่งหมายความว่าทุก ๆ ชั่วโมงที่หกเริ่มต้นจาก 0 เช่นที่ชั่วโมง 0, 6, 12 และ 18 ซึ่งคุณสามารถเขียนเป็น
0 0,6,12,18 * * * /path/to/mycommand
15 15,23,05,11 * * * /path/to/mycommand
อย่างไร
0 15,21,3,9 * * *
)
คุณควรรวมพา ธ ไปยังคำสั่งของคุณเนื่องจาก cron รันด้วยสภาพแวดล้อมแบบตัดลงอย่างกว้างขวาง คุณจะไม่มีตัวแปรสภาพแวดล้อมทั้งหมดที่คุณมีในเซสชันเชลล์เชิงโต้ตอบ
เป็นความคิดที่ดีที่จะระบุพา ธ สัมบูรณ์ไปยังสคริปต์ / ไบนารีของคุณหรือกำหนด PATH ใน crontab เพื่อช่วยในการแก้ปัญหาปัญหาใด ๆ ฉันจะเปลี่ยนเส้นทาง stdout / err ไปยังไฟล์บันทึก
export variable=something
ฉันจะยังคงใช้พวกเขาในสคริปต์เดียวกันได้หรือไม่ และฉันใช้คำสั่ง date มาก ๆ ภายในสคริปต์
0 */6 * * * command
นี่จะเป็นวิธีที่สมบูรณ์แบบในการพูด 6 ชั่วโมงต่อวัน
คำสั่งของคุณใช้เวลาหกนาที!
โปรดให้ความสนใจกับไวยากรณ์นี้ :
* */6 * * *
ซึ่งหมายความว่า 60 ครั้ง (ทุกนาที) ทุก 6 ชั่วโมง
ไม่
หนึ่งครั้งทุก 6 ชั่วโมง
0 */6 * * *
crontab ทุกๆ 6 ชั่วโมงเป็นตาราง cron ที่ใช้กันทั่วไป
คุณต้องใช้ *
0 */6 * * * /path/to/mycommand
นอกจากนี้คุณสามารถอ้างถึงhttps://crontab.guru/ซึ่งจะช่วยคุณในการจัดตารางเวลาที่ดีขึ้น ...
ลอง:
0 */6 * * * command
. * จะต้อง