วิธีใช้ @reboot ใน /etc/cron.d


17

ฉันกำลังโอนย้าย crontabs ของผู้ใช้แต่ละคนไปที่ /etc/cron.d เนื่องจากจะอนุญาตให้มีการสำรองข้อมูลเรียกคืนและกำหนดเวอร์ชันที่เหมาะสม

เท่าที่ฉันเข้าใจความแตกต่างเพียงอย่างเดียวระหว่างผู้ใช้ crontabs และคนอื่น ๆ คือคุณต้องระบุผู้ใช้เป็นคอลัมน์ที่ 6 ถูกต้องหรือไม่

และคำถามหลักของฉันซึ่งฉันไม่สามารถหาคำตอบได้ทุกที่บนอินเทอร์เน็ต: วิธีที่เหมาะสมในการใช้@rebootใน /etc/cron.d หรือ / etc / crontab คืออะไร?

สิ่งที่ชอบ @reboot root command?

คำตอบ:


20

จากหน้าคน crontab :

งานใน /etc/cron.d/

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

ตัวอย่างสำหรับ JOB IN /etc/cron.d/job

 #login as root
 #create job with preferred editor (e.g. vim)
 MAILTO=root
 * * * * * root touch /tmp/file

นั่นคือส่วนทั้งหมดเกี่ยวกับ crontab ใน/ etcดังนั้นฉันเดารวมของผู้ใช้ภายใต้ชื่องานวิ่งที่เป็นที่แน่นอนเพียงความแตกต่าง

อีกครั้งจากหน้าคนเดียวกัน:

รองรับ "ข้อกำหนดชื่อเล่น" พิเศษเหล่านี้ซึ่งแทนที่ฟิลด์เวลาและวันที่ 5 วันแรกและนำหน้าด้วยอักขระ '@':

@reboot: เรียกใช้หนึ่งครั้งหลังจากรีบูต

ดังนั้นการอนุมานของคุณว่าวิธีที่เหมาะสมในการใช้@rebootคือ

   @reboot user_name command

เป็นที่ถูกต้อง


1

ในกรณีที่/etc/crontabคุณต้องเพิ่มบรรทัดเหล่านี้

@reboot        command

คำสั่งที่สามารถเป็นสคริปต์หรือไฟล์เดียว


ใช้งานได้หรือไม่ /etc/crontabมักจะต้องการชื่อผู้ใช้
mwfearnley

1

หากคุณใช้งานแบบโต้ตอบดังด้านล่างคุณจะไม่ระบุผู้ใช้:

crontab -e
@reboot /root/mycommand

หากคุณวางไว้เป็นไฟล์ใน /etc/cron.d เช่น /etc/cron.d/mycronfile คุณต้องใส่ผู้ใช้:

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