ใช้งาน cron บน Linux ทุก ๆ หกชั่วโมง


139

ฉันจะรันคำสั่งทุก ๆ หกชั่วโมงทุกวันได้อย่างไร

ฉันลองสิ่งต่อไปนี้ แต่มันไม่ทำงาน:

/6 * * * * *  mycommand

7
อาจเป็นไปได้ซ้ำกันของวิธีเรียกใช้ crontab ทุก 2 ชั่วโมง
Cas

2
วิธีการเกี่ยวกับ * * / 6 * * *
madalinivascu

คำตอบ:


323

คุณลืม*และคุณมีเขตข้อมูลมากเกินไป เป็นชั่วโมงที่คุณต้องใส่ใจ

0 */6 * * * /path/to/mycommand

ซึ่งหมายความว่าทุก ๆ ชั่วโมงที่หกเริ่มต้นจาก 0 เช่นที่ชั่วโมง 0, 6, 12 และ 18 ซึ่งคุณสามารถเขียนเป็น

0 0,6,12,18 * * * /path/to/mycommand

ขอบคุณสำหรับการตอบกลับนี่คือทุก ๆ 6 ชั่วโมงเพื่อเริ่มเวลา เวลาที่ cron ถูกสร้างขึ้น?
Gandalf StormCrow

ขอบคุณดังนั้นถ้าฉันต้องการเรียกใช้เริ่มต้นจาก 15:00 น. ทุก 6 ชั่วโมงมันจะเป็น15 15,23,05,11 * * * /path/to/mycommandอย่างไร
Gandalf StormCrow

5
ใช่แม้ว่าฟิลด์แรกจะเป็นนาทีซึ่งคุณตั้งไว้ที่ 15 ดังนั้นจะหมายถึง 15: 15,23: 15,05: 15 และ 11:15 (ซึ่งไม่ได้เป็นทุกชั่วโมงที่ 6 ครับคุณอาจมีความหมาย0 15,21,3,9 * * *)
เลขที่

6

คุณควรรวมพา ธ ไปยังคำสั่งของคุณเนื่องจาก cron รันด้วยสภาพแวดล้อมแบบตัดลงอย่างกว้างขวาง คุณจะไม่มีตัวแปรสภาพแวดล้อมทั้งหมดที่คุณมีในเซสชันเชลล์เชิงโต้ตอบ

เป็นความคิดที่ดีที่จะระบุพา ธ สัมบูรณ์ไปยังสคริปต์ / ไบนารีของคุณหรือกำหนด PATH ใน crontab เพื่อช่วยในการแก้ปัญหาปัญหาใด ๆ ฉันจะเปลี่ยนเส้นทาง stdout / err ไปยังไฟล์บันทึก


1
ขอบคุณสำหรับการตอบสนอง แต่ถ้าฉันประกาศตัวแปรสภาพแวดล้อมในไฟล์ sh ของฉันเหมือนexport variable=somethingฉันจะยังคงใช้พวกเขาในสคริปต์เดียวกันได้หรือไม่ และฉันใช้คำสั่ง date มาก ๆ ภายในสคริปต์
Gandalf StormCrow

@Gandalf - ใช่ คุณสามารถกำหนดตัวแปร env ทั้งหมดของคุณภายในสคริปต์ นั่นเป็นความคิดที่ดีเพราะมันหมายความว่าสคริปต์ของคุณเป็นแบบสแตนด์อโลนและแยกได้จากสิ่งอื่น ๆ ที่คุณอาจต้องการใช้ภายใน cron
ไบรอัน Agnew

5
0 */6 * * * command

นี่จะเป็นวิธีที่สมบูรณ์แบบในการพูด 6 ชั่วโมงต่อวัน

คำสั่งของคุณใช้เวลาหกนาที!


2
@ ArsenArsen ฉันค่อนข้างแน่ใจว่ามันเป็นเพราะมันไม่ได้เพิ่มอะไรเลยกับคำตอบที่ยอมรับได้เขียน 4 ปีก่อนหน้านี้
Adinia

2

โปรดให้ความสนใจกับไวยากรณ์นี้ :

* */6 * * *

ซึ่งหมายความว่า 60 ครั้ง (ทุกนาที) ทุก 6 ชั่วโมง

ไม่

หนึ่งครั้งทุก 6 ชั่วโมง


0
0 */6 * * *

crontab ทุกๆ 6 ชั่วโมงเป็นตาราง cron ที่ใช้กันทั่วไป


4
คำตอบนี้เพิ่มอะไรที่คำตอบอื่นไม่ได้? @rkoots ได้กล่าวถึงคำสั่งที่แน่นอนนี้แล้ว
Goodbye StackExchange

"ที่ใช้กันทั่วไป" ? ทำไม? คุณสามารถทำอย่างละเอียด?
Peter Mortensen

0

คุณต้องใช้ *

0 */6 * * * /path/to/mycommand

นอกจากนี้คุณสามารถอ้างถึงhttps://crontab.guru/ซึ่งจะช่วยคุณในการจัดตารางเวลาที่ดีขึ้น ...


-2

ลอง:

0 */6 * * * command

. * จะต้อง


1
บรรทัดสุดท้ายที่นี่ไม่ค่อยสมเหตุสมผลนัก คุณจะพิจารณาขยายหรือไม่
halfer

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