วิธีแก้ไขไฟล์ Linux Crontab เพื่อกำหนดเวลางาน
สิ่งที่ต้องรู้
- แสดงเนื้อหาของ crontab ด้วย: crontab -l
- แก้ไข crontab ด้วย: crontab -e
- เวลาทำงานร่วมกับ: นาที, ชั่วโมง, วันของเดือน, เดือน, วันในสัปดาห์. ใช้เครื่องหมายดอกจัน (*) เพื่อเรียกใช้ cron ทุกวัน ชั่วโมง ฯลฯ
บทความนี้อธิบายวิธีใช้ cron ซึ่งเป็น daemon ใน Linux ที่รันกระบวนการเป็นระยะๆ โดยจะตรวจสอบบางโฟลเดอร์ในระบบว่าสคริปต์ทำงานเป็นชุดของโฟลเดอร์หรือไม่ รวมถึง /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly และ /etc/cron.monthly; นอกจากนี้ยังมีไฟล์ชื่อ /etc/crontab.
วางสคริปต์ในโฟลเดอร์ Cron
วางสคริปต์ลงในโฟลเดอร์ที่เกี่ยวข้องเพื่อให้ทำงานตามช่วงเวลาปกติ ตัวอย่างเช่น เปิดหน้าต่างเทอร์มินัลแล้วเรียกใช้คำสั่งต่อไปนี้ ls คำสั่ง:
ls /etc/cron*
คำสั่งแสดงรายการโปรแกรมหรือสคริปต์ที่ทำงานเป็นรายชั่วโมง รายวัน รายสัปดาห์ และรายเดือน

โฟลเดอร์เหล่านี้คลุมเครือ ตัวอย่างเช่น, รายวัน หมายความว่าสคริปต์ทำงานวันละครั้ง แต่คุณไม่สามารถควบคุมเวลาที่สคริปต์ทำงานในระหว่างวันนั้นได้
นั่นคือที่มาของไฟล์ crontab โดยการแก้ไขไฟล์ crontab คุณจะเรียกใช้สคริปต์หรือโปรแกรมตามวันที่และเวลาที่แน่นอนที่คุณต้องการให้เรียกใช้
สิทธิ์
คำสั่ง crontab ต้องการให้ผู้ใช้มีสิทธิ์แก้ไขไฟล์ crontab มีสองไฟล์ที่จัดการการอนุญาต crontab: /etc/cron.allow และ /etc/cron.deny
- หากมีไฟล์ /etc/cron.allow อยู่ ผู้ใช้ที่ต้องการแก้ไขไฟล์ crontab จะต้องอยู่ในไฟล์นั้น
- หากไม่มีไฟล์ cron.allow แต่มีไฟล์ /etc/cron.deny ผู้ใช้จะต้องไม่มีอยู่ในไฟล์นั้น
- หากไฟล์ทั้งสองมีอยู่ ไฟล์ /etc/cron.allow จะแทนที่ไฟล์ /etc/cron.deny
- หากไม่มีไฟล์อยู่ ขึ้นอยู่กับการกำหนดค่าระบบว่าผู้ใช้สามารถแก้ไข crontab ได้หรือไม่
ผู้ใช้รูทสามารถแก้ไขไฟล์ crontab ได้ตลอดเวลา คุณสามารถใช้ คำสั่ง su เพื่อเปลี่ยนเป็นผู้ใช้รูทหรือ คำสั่ง sudo เพื่อรันคำสั่ง crontab
แก้ไขไฟล์ Crontab
ผู้ใช้แต่ละคนที่มีสิทธิ์ที่เหมาะสมสามารถสร้างไฟล์ crontab ได้ คำสั่ง cron จะค้นหาไฟล์ crontab ทั้งหมดและรันผ่านแต่ละไฟล์
ในการตรวจสอบว่าคุณมีไฟล์ crontab หรือไม่ ให้รันคำสั่งต่อไปนี้:
crontab -l.
หากคุณไม่มีไฟล์ crontab ข้อความ ไม่มี crontab สำหรับ ปรากฏขึ้น มิฉะนั้น ไฟล์ crontab ของคุณจะปรากฏขึ้น
ฟังก์ชันนี้แตกต่างกันไปในแต่ละระบบ บางครั้งมันไม่แสดงอะไรเลย และบางครั้งมันก็แสดง ห้ามแก้ไขไฟล์นี้.

ในการสร้างหรือแก้ไขไฟล์ crontab ให้รันคำสั่งต่อไปนี้:
crontab -e.
ไฟล์ที่เปิดขึ้นมีข้อมูลจำนวนมาก แต่ส่วนสำคัญคือตัวอย่างก่อนสิ้นสุดส่วนความคิดเห็น (ความคิดเห็นจะแสดงด้วยบรรทัดที่ขึ้นต้นด้วย #)
# m h dom mon dow command.
0 5 * * 1 tar -zcf /var/backups/home.tgz /home/

มีข้อมูลหกส่วนเพื่อให้พอดีกับแต่ละบรรทัดของไฟล์ crontab:
- นาทีของวันที่คำสั่งรัน (m)
- ชั่วโมงของวันที่คำสั่งรัน (h)
- วันของเดือนที่คำสั่งรัน (dom)
- เดือนที่คำสั่งรัน (จันทร์)
- วันในสัปดาห์ที่คำสั่งรัน (dow)
- คำสั่ง.
สำหรับแต่ละรายการ (ยกเว้นคำสั่ง) คุณสามารถระบุอักขระตัวแทนได้ ดูตัวอย่างบรรทัด crontab ต่อไปนี้:
30 18 * * * tar -zcf /var/backups/home.tgz /home/
ที่เวลา 30 นาที 18 ชั่วโมง และวันใดก็ได้ เดือน และวันในสัปดาห์ รายการ crontab นี้จะ zip และ ทาร์ โฮมไดเร็กทอรีไปยังโฟลเดอร์ /var/backups
ในตัวอย่างด้านล่าง ให้แทนที่คำสั่ง word ด้วยคำสั่งที่คุณต้องการเรียกใช้
หากต้องการให้คำสั่งทำงานที่ 30 นาทีที่ผ่านมาทุกๆ ชั่วโมง ให้เรียกใช้คำสั่งต่อไปนี้:
30 * * * * คำสั่ง
หากต้องการรับคำสั่งให้เรียกใช้ทุกนาทีหลัง 18.00 น. ให้เรียกใช้คำสั่งต่อไปนี้:
* 18 * * * คำสั่ง
คุณจึงต้องระมัดระวังในการตั้งค่าคำสั่ง crontab
ตัวอย่างเช่น:
* * * 1 * คำสั่ง
คำสั่งนี้ทำงานทุกนาทีของทุกชั่วโมงทุกวันของทุกสัปดาห์ในเดือนมกราคม
ในการรันคำสั่งเวลา 5:00 น. ในวันที่ 1 มกราคม ให้ป้อนคำสั่งต่อไปนี้ในไฟล์ crontab:
0 5 1 1 * คำสั่ง
วิธีลบไฟล์ Crontab
โดยส่วนใหญ่ คุณจะไม่ต้องการลบไฟล์ crontab อย่างไรก็ตาม คุณอาจต้องการลบบางแถวออกจากไฟล์ crontab
หากต้องการลบไฟล์ crontab ของผู้ใช้ ให้รันคำสั่งต่อไปนี้:
crontab -r
วิธีที่ปลอดภัยกว่าในการทำเช่นนี้คือการเรียกใช้คำสั่งต่อไปนี้:
crontab -i.
ระบบปฏิบัติการจะขอการตรวจสอบก่อนที่จะลบไฟล์ crontab