วิธีแก้ไขไฟล์ 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*

คำสั่งแสดงรายการโปรแกรมหรือสคริปต์ที่ทำงานเป็นรายชั่วโมง รายวัน รายสัปดาห์ และรายเดือน

รายการ Linux 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 ของคุณจะปรากฏขึ้น

ฟังก์ชันนี้แตกต่างกันไปในแต่ละระบบ บางครั้งมันไม่แสดงอะไรเลย และบางครั้งมันก็แสดง ห้ามแก้ไขไฟล์นี้.

รายการ Linux crontab

ในการสร้างหรือแก้ไขไฟล์ crontab ให้รันคำสั่งต่อไปนี้:

crontab -e. 

ไฟล์ที่เปิดขึ้นมีข้อมูลจำนวนมาก แต่ส่วนสำคัญคือตัวอย่างก่อนสิ้นสุดส่วนความคิดเห็น (ความคิดเห็นจะแสดงด้วยบรรทัดที่ขึ้นต้นด้วย #)

# m h dom mon dow command. 
0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
Linux แก้ไข crontab

มีข้อมูลหกส่วนเพื่อให้พอดีกับแต่ละบรรทัดของไฟล์ 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