ความแตกต่างระหว่าง crontab ที่อยู่ใน/etc/crontab
และ crontab ที่สามารถแก้ไขได้ใช้crontab -e
คืออะไร?
ความแตกต่างระหว่าง crontab ที่อยู่ใน/etc/crontab
และ crontab ที่สามารถแก้ไขได้ใช้crontab -e
คืออะไร?
คำตอบ:
ดังที่อิกนาชิโอกล่าวว่า/etc/crontab
เป็นระบบหน้ากว้าง
รูปแบบของ/etc/crontab
เป็นดังนี้:
# m h dom mon dow user command
* * * * * someuser echo 'foo'
ในขณะที่crontab -e
ต่อผู้ใช้มันคุ้มค่าที่จะกล่าวถึงโดยไม่มี-u
อาร์กิวเมนต์ที่คำสั่ง crontab ไปที่ผู้ใช้ปัจจุบัน crontab คุณสามารถทำได้crontab -e -u <username>
เพื่อแก้ไขผู้ใช้เฉพาะ crontab
ประกาศใน crontab ต่อผู้ใช้ไม่มีฟิลด์ 'ผู้ใช้'
# m h dom mon dow command
* * * * * echo 'foo'
แง่มุมหนึ่งของ crontabs ที่อาจสร้างความสับสนคือรูทนั้นมี crontab ของตัวเองเช่นกัน เช่นcrontab -e -u root
จะไม่แก้ไข/etc/crontab
ดูการกำหนดค่า cron
ใน distros Linux ส่วนใหญ่ผู้ใช้จะได้รับการจัดเก็บใน: /var/spool/cron/crontabs/<username>
(vixie-cron)
RHEL /var/spool/cron/<username>
กระจายตามจะถูกเก็บไว้ใน (cronie)
/var/spool/cron/root
รากของ crontab ต่อผู้ใช้บนระบบ RHEL 6 ยังไม่ได้ตรวจสอบ Ubuntu แต่การพูดว่า "โดยทั่วไป" ดูเหมือนจะยืดออกไปหน่อย
path[crontabs]
ในไลบรารี "เส้นทาง" CFEngineและตรวจสอบบริบท (บรรทัดบริบทก่อนหน้านี้มีลักษณะเช่นredhat::
) มีการเปลี่ยนแปลงมากกว่าที่คุณคิด เช่น SUSE /var/spool/cron/tabs
ทำให้พวกเขาใน (การสร้างความแตกต่างของ distro เป็นหนึ่งในเหตุผลที่ CFEngine ถูกสร้างขึ้นมาบ่อยครั้งดังนั้นจึงเป็นข้อมูลอ้างอิงที่ดี)
หนึ่งคือ crontab ของระบบและสามารถแก้ไขได้โดย root เท่านั้นส่วนอีกอันคือ crontab ของผู้ใช้และสามารถแก้ไขได้โดยผู้ใช้และมีอยู่ต่อผู้ใช้