มีเหตุผลที่ดีที่จะมีงาน cron เดียวรันหลาย comands [ปิด]


1

cron จะจัดการงานที่ดำเนินการหลายคำสั่งอย่างไร

ตัวอย่างเช่นฉันมีงาน cron ที่มีลักษณะเช่นนี้ ซึ่งอ่านยากมาก

10 0 * * * firstscript.sh > first.log; secondscript.sh >> second.log; thirdscript.sh >> third.log 2>&1;

สคริปต์ทั้งสามทำงานในเวลาเดียวกัน ในสภาพแวดล้อมของฉันเรามี 6 คำสั่งดำเนินการตามลำดับ

ทำไมไม่เขียนงานเดียวกันสามงานแยกกัน

10 0 * * * firstscript.sh > first.log;  
10 0 * * * secondscript.sh >> second.log; 
10 0 * * * thirdscript.sh >> third.log 2>&1;

ฉันสืบทอดงานเหล่านี้และพยายามทำความเข้าใจให้ดีขึ้นว่าทำไมมันจึงเป็นหลายคำสั่งแทนงานที่แยกกัน 3 งาน

  • เหตุผลแรกที่ฉันคิดว่าอาจมีการอ้างอิงระหว่างสคริปต์ ดังนั้นพวกเขาจึงต้องทำงานในลำดับที่เฉพาะเจาะจงนั้น ดังนั้นsecondscript.shขึ้นอยู่กับfirestscript.shความสำเร็จ

  • เหตุผลที่สองคือสคริปต์ / คำสั่งเหล่านี้มีราคาแพงในการดำเนินการและเซิร์ฟเวอร์ทำงานได้ดีขึ้นเมื่อทำงานตามลำดับ การล็อคไฟล์ที่มีศักยภาพและคำสั่งหลายคำสั่งที่เขียนไปยังไฟล์เดียวกันอาจทำให้เกิดปัญหาได้เช่นกัน

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

คำตอบ:


2

ที่เกี่ยวข้องกับจุดแรกของคุณทั้งสองหรือ crontabs ของคุณให้การแก้ปัญหาการพึ่งพาที่เหมาะสมเพราะทุกคำสั่งจะดำเนินการโดยไม่คำนึงถึงปัญหาของก่อนหน้านี้ เพื่อที่จะทำเช่นนั้นคุณต้องการใช้โอเปอเรเตอร์&&ระหว่างคำสั่งของคุณ นอกจากนี้ยังตอบคำถามแรกของคุณ 3 คำถามสุดท้าย

จุดที่สองของคุณอาจถูกต้องขึ้นอยู่กับบริบท แม้ว่าฉันจะสงสัยว่าเหตุผลในการเขียนคำสั่งทั้งหมดในหนึ่งบรรทัดนั้นมันง่ายกว่าที่จะเพิ่มบางสิ่งในท้ายที่สุดมากกว่าการเพิ่มบรรทัดใหม่ด้วยกำหนดการใหม่ เหตุผลหนึ่งอาจเป็นการบำรุงรักษา: หากคุณต้องการเปลี่ยนกำหนดการสำหรับคำสั่งทั้งหมดของคุณการเปลี่ยนเพียงบรรทัดเดียวง่ายกว่า

สำหรับคำถามที่สองใน 3 คำถามสุดท้ายคำตอบคือใช่ แต่อาจซับซ้อน คุณต้องระบุด้วยตนเองว่างานใดที่สามารถทำงานพร้อม ๆ กับงานอื่นได้อย่างปลอดภัยและตั้งค่ากลไกเพื่อให้งานชุดถัดไปของคุณรู้ว่างานแรกสำเร็จหรือไม่ Cron ไม่มีอะไรในตัวที่จะช่วยคุณได้


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