crontabs หลายรายการสำหรับผู้ใช้หนึ่งคน


13

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

ความช่วยเหลือใด ๆ ที่ชื่นชม ...

คำตอบ:


13

มันเป็นความคิดที่ดีในการรักษา crontab crontab filenameของคุณในแฟ้มต่างหากอยู่แล้วและติดตั้งด้วย (ฉันเก็บไฟล์ crontab ของฉันในระบบควบคุมแหล่งที่มา)

คุณสามารถมีไฟล์ crontab หลายไฟล์และติดตั้งได้ทั้งหมด

cat file1 file2 file3 | crontab

crontabคำสั่งได้ตามปกติเพียง แต่จัดการ crontab เดียวต่อผู้ใช้ แต่คุณสามารถเพิ่มไฟล์ crontab ระบบลงใน/etc/cron.dไดเรกทอรี ไฟล์เหล่านี้มีฟิลด์พิเศษหลังจากกำหนดเวลาที่ระบุผู้ใช้สำหรับงานและคุณสามารถมีหลายไฟล์ต่อผู้ใช้ แม้ว่าหนึ่งในนั้นมีข้อผิดพลาดทางไวยากรณ์คนอื่นจะยังคงดำเนินการ

คุณจะต้องเข้าถึงรูทเพื่อติดตั้งไฟล์ในไดเรกทอรีนั้น

man 5 crontab สำหรับรายละเอียด

ฉันไม่เชื่อว่าการหลีกเลี่ยงกลไก crontab ปกติเช่นนี้เป็นความคิดที่ดี แต่ควรใช้งานได้

(นี่ถือว่าการใช้งาน "Vixie Cron" ซึ่งน่าจะเป็นสิ่งที่ระบบของคุณใช้)

หมายเหตุ: คุณอาจถูกล่อลวงให้ลอง

crontab file1 file2 file3 # WRONG

แต่การทดสอบอย่างรวดเร็วแสดงให้เห็นว่าชื่อไฟล์ทั้งหมด แต่ชื่อแรกจะถูกละเว้นอย่างเงียบ ๆ หน้าคนบอกว่าชื่อไฟล์เดียวได้รับการยอมรับ แต่ไม่ได้พูดว่าจะเกิดอะไรขึ้นถ้ามีชื่อไฟล์หลายชื่อ


ฉันทำอย่างนั้นวันนี้ นั่นจะเป็นเรื่องง่ายที่จะทำ แต่เป้าหมายของสิ่งนี้คือ "ผู้จัดการ" แต่ละโครงการจะมีส่วนควบคุมของ crontab ของตัวเอง ด้วยวิธีการนั้นจะต้องมีการรวมกันเช่นนั้นทุกครั้งที่มีคนเปลี่ยนไฟล์หนึ่งไฟล์ซึ่งหมายความว่าพวกเขาจะต้องติดตามไฟล์ทั้งหมดที่ต้องรวบรวม

1
ดังนั้นสร้างโปรแกรม (หรือสคริปต์หรืออะไรก็ได้) เพื่อทำให้เป็นอัตโนมัติ โปรดทราบว่าคุณสามารถเรียกใช้crontabคำสั่งจากรายการ crontab
Keith Thompson

1
@MateuszKonieczny: นั่นเป็นเหตุผลที่ดี แต่ก็ง่ายที่จะลบ crontab ของคุณโดยไม่ตั้งใจ crontabโดยไม่มีอาร์กิวเมนต์อ่าน crontab ใหม่จาก stdin
Keith Thompson

1
@MateuszKonieczny: ไม่ฉันเพิ่งเก็บไว้ใน repo CVS และ copoy ไป$HOMEเมื่อฉันอัปเดต (ผมใช้ CVS เพราะ Git ไม่ได้อยู่เมื่อผมเริ่มทำนี้.)
คี ธ ธ อมป์สัน

1
@ KeithThompson โอ้ gotcha! ฉันกำลังสร้างเอกสารเพื่อช่วยให้ผู้คนเรียกใช้ Fedora Core 24 จาก "ศูนย์" โดยไม่มีวิวัฒนาการหรือคำพังเพย: github.com/barrycarter/bcapps/blob/master/FEDORAและต้องการแบ่งปันบางส่วนของไฟล์ cron ของฉัน แต่ไม่ใช่ทั้งหมด โซลูชันของคุณ (การสร้าง bc-public-cron ในไดเรกทอรี GIT และ bc-private-cron ด้านนอก) เหมาะกับการเรียกเก็บเงิน
barrycarter

4

ทำไมคุณจะทำเช่นนั้น? คุณสามารถใช้หลายบรรทัดใน crontab - ฉันคิดว่ามันจะทำงานเช่นกัน

นอกจากนี้ยังมีไดเรกทอรีที่คุณอาจใช้:

cron.d/
cron.daily/
cron.hourly/
cron.monthly/
cron.weekly/

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