ค้นหาเว็บไซต์

วิธีสร้างและจัดการงาน Cron บน Linux


Cron เป็นหนึ่งในเครื่องมือที่มีประโยชน์ที่สุดของ Linux และเป็นที่ชื่นชอบของนักพัฒนา เนื่องจากช่วยให้คุณสามารถรันคำสั่งอัตโนมัติในช่วงเวลา วันที่ และช่วงเวลาที่กำหนด โดยใช้สคริปต์ทั้งสำหรับวัตถุประสงค์ทั่วไปและเฉพาะงาน ด้วยคำอธิบายดังกล่าว คุณสามารถจินตนาการได้ว่าผู้ดูแลระบบใช้งานอย่างไรเพื่อสำรองข้อมูลอัตโนมัติ การล้างไดเร็กทอรี การแจ้งเตือน ฯลฯ

งาน Cron จะทำงานอยู่เบื้องหลังและตรวจสอบไฟล์ /etc/crontab และ /etc/cron.*/ และ /var/spool/cron/ อย่างต่อเนื่อง ไดเร็กทอรี ไม่ควรแก้ไขไฟล์ cron โดยตรง และผู้ใช้แต่ละคนมี crontab ที่ไม่ซ้ำกัน

แล้วคุณจะสร้างและแก้ไขงาน cron ได้อย่างไร? ด้วยคำสั่ง crontab crontab เป็นวิธีที่คุณใช้ในการสร้าง แก้ไข ติดตั้ง ถอนการติดตั้ง และแสดงรายการงาน cron

คำสั่งสำหรับการสร้างและแก้ไขงาน cron นั้นเหมือนกันและเรียบง่าย และที่เจ๋งกว่านั้นคือคุณไม่จำเป็นต้องรีสตาร์ท cron หลังจากสร้างไฟล์ใหม่หรือแก้ไขไฟล์ที่มีอยู่แล้ว


crontab -e

ไวยากรณ์ของครอน

เช่นเดียวกับภาษาอื่นๆ การทำงานกับ cron จะง่ายกว่ามากเมื่อคุณเข้าใจไวยากรณ์ของภาษานั้น และมี 2 รูปแบบที่คุณควรรู้:


A B C D E USERNAME /path/to/command arg1 arg2
OR
A B C D E USERNAME /root/backup.sh

คำอธิบายของไวยากรณ์ cron ข้างต้น:

  • A: นาที ช่วง: 0 – 59
  • B: ชั่วโมง ช่วง: 0 – 23
  • C: วัน ช่วง: 0 – 31
  • D: เดือน ช่วง: 0 – 12
  • E: วันในสัปดาห์ ช่วง: 0 – 7 เริ่มตั้งแต่วันจันทร์ 0 หรือ 7 หมายถึงวันอาทิตย์
  • USERNAME: แทนที่ด้วยชื่อผู้ใช้ของคุณ
  • /path/to/command – ชื่อของสคริปต์หรือคำสั่งที่คุณต้องการกำหนดเวลา

นั่นไม่ใช่ทั้งหมด. Cron ใช้สัญลักษณ์ตัวดำเนินการ 3 ตัวซึ่งช่วยให้คุณสามารถระบุค่าหลายค่าในฟิลด์:

  1. เครื่องหมายดอกจัน (*): ระบุค่าที่เป็นไปได้ทั้งหมดสำหรับฟิลด์
  2. เครื่องหมายจุลภาค (,): ระบุรายการค่า
  3. เส้นประ (-): ระบุช่วงของค่า
  4. ตัวคั่น (/): ระบุค่าขั้นตอน

ตอนนี้คุณรู้ไวยากรณ์และตัวดำเนินการของ Cron แล้ว มาดูตัวอย่าง cron กัน

ตัวอย่างงาน Cron

ขั้นตอนแรกในการรันคำสั่ง cron คือการติดตั้ง crontab ของคุณด้วยคำสั่ง:


crontab -e

รัน /root/backup.sh เวลา 03.00 น. ทุกวัน:


0 3 * * * /root/backup.sh

เรียกใช้ script.sh เวลา 16:30 น. ทุกวันที่ 2 ของทุกเดือน:

30 16 2 * * /path/to/script.sh

เรียกใช้ /scripts/phpscript.php เวลา 22.00 น. ระหว่างสัปดาห์:

0 22 * * 1-5 /scripts/phpscript.php

เรียกใช้ perlscript.pl ที่ 23 นาที หลังเที่ยงคืน 02.00 น. และ 04.00 น. ทุกวัน:

23 0-23/2 * * * /path/to/perlscript.pl

รันคำสั่ง Linux เวลา 04:05 ทุกวันอาทิตย์:

5 4 * * sun /path/to/linuxcommand

ตัวเลือกครอน

แสดงรายการงาน cron


crontab -l
OR
crontab -u username -l

ลบงาน crontab ทั้งหมด

crontab -r

ลบงาน Cron สำหรับผู้ใช้เฉพาะ


crontab -r -u username

สตริงใน Crontab

สตริงเป็นหนึ่งในสิ่งที่นักพัฒนาชื่นชอบเพราะช่วยประหยัดเวลาโดยกำจัดการเขียนซ้ำๆ Cron มีสตริงเฉพาะที่คุณสามารถใช้เพื่อสร้างคำสั่งได้เร็วขึ้น:

  1. @hourly: ทำงานทุกๆ ชั่วโมง เช่น “0 * * * *
  2. @midnight: ทำงานวันละครั้ง เช่น “0 0 * * *
  3. @daily: เหมือนกับเที่ยงคืน
  4. @weekly: เรียกใช้สัปดาห์ละครั้ง เช่น “0 0 * * 0
  5. @monthly: เรียกใช้ทุกเดือนเช่น “0 0 1 * *
  6. @รายปี: เรียกใช้ปีละครั้ง เช่น “0 0 1 1 *
  7. @yearly: เช่นเดียวกับ @รายปี
  8. @reboot: รันหนึ่งครั้งทุกครั้งที่สตาร์ทเครื่อง

ตัวอย่างเช่น นี่คือวิธีสำรองข้อมูลระบบของคุณทุกวัน:

@daily /path/to/backup/script.sh

ณ จุดนี้ คุณมีสิ่งที่จำเป็นทั้งหมดในการสร้างและจัดการงานระบบโดยใช้ Cron ตอนนี้คุณสามารถเริ่มตั้งค่าและบำรุงรักษาสภาพแวดล้อมต่างๆ โดยใช้คำสั่งที่กำหนดเวลาไว้

คุณเป็นผู้ใช้ Cron มากแค่ไหน? และมีรายละเอียดใดบ้างที่คุณสามารถมีส่วนร่วมในบทความนี้? กล่องสนทนาอยู่ด้านล่าง

เมื่อคุณเข้าใจเพียงพอเกี่ยวกับวิธีการทำงานของ Crontab คุณสามารถใช้ยูทิลิตี้ตัวสร้าง Crontab ที่ดีเหล่านี้เพื่อสร้างบรรทัด crontab ได้ฟรี

นอกจากนี้คุณยังสามารถอ่านบทความของ Ubuntu เกี่ยวกับวิธีใช้ Cron ได้ที่นี่ มีแหล่งข้อมูลที่คุณอาจพบว่ามีประโยชน์