Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> สมาร์ทโฟน >> Linux

เพิ่มประสิทธิภาพการทำงานบน Linux/Unix: คู่มือการใช้ crontab อย่างละเอียด

คู่มือโดยละเอียดนี้จะอธิบายการใช้คำสั่ง crontab เพื่อจัดตารางงาน (Schedule Tasks) บน Linux/Unix

นอกจากเล่นเกมแล้ว ข้อดีใหญ่ของคอมพิวเตอร์คือไม่เบื่อกับงานน่าเบื่อและซ้ำซากที่เราไม่ muốnทำ เรื่อง مثل การสำรองข้อมูลทุกวัน ควรกำหนดให้รันอัตโนมัติที่เวลาที่กำหนด แล้วค่อยไปทำงานน่าสนใจกว่า Linux และมักมาพร้อมยูทิลิตี้ "crontab" โดยค่าเริ่มต้น คำสั่งนี้ช่วยจัดตารางงานให้รันในเวลาที่กำหนดและทำซ้ำตามที่ตั้งค่า งานที่จัดตารางด้วย crontab เรียกว่า "Cron Job"

ตรวจสอบ Cron Jobs ที่มีอยู่

# crontab -l

ถ้ามีการตั้งค่าจะแสดงประมาณนี้:

0 6 * * * /opt/scripts/backup_script.sh

หมายความ: รันสคริปต์ backup_script.sh ทุกวันเวลา 06:00 น.

โครงสร้าง Crontab (Anatomy)

0 6 * * * /opt/scripts/backup_script.sh
| | | | |
| | | | └── วันในสัปดาห์ (อาทิตย์=0)
| | | └────── เดือนของปี
| | └──────── วันของเดือน
| └────────── ชั่วโมงของวัน
└──────────── นาทีของชั่วโมง

สร้าง/แก้ไข Cron Jobs

# crontab -e

จะเปิด Editor ให้เพิ่ม/แก้/ลบ Cron Jobs

ตัวอย่างการตั้งค่า

  • รันทุกวันจันทร์ เวลา 15:45: 45 15 * * 1 /opt/scripts/script.sh
  • รัน 3 ครั้งต่อวัน (01:00, 09:00, 17:00) ในเดือนก.พ. และ พ.ย.: 0 1,9,17 * 2,11 * /opt/scripts/db_backup_script.sh

สตริงพิเศษ (Special Strings)

Crontab รองรับคำอ่านง่ายแทนตัวเลข:

สตริงความหมาย
@rebootรัน 1 ครั้ง เมื่อระบบรีบูท
@yearly / @annuallyรัน 1 ครั้งต่อปี เริ่มต้นปี
@monthlyรัน 1 ครั้งต่อเดือน เริ่มต้นเดือน
@weeklyรัน 1 ครั้งต่อสัปดาห์ เริ่มต้นสัปดาห์
@daily / @midnightรัน 1 ครั้งต่อวัน เที่ยงคืน
@hourlyรันทุกชั่วโมง เริ่มต้นชั่วโมง

ตัวอย่าง: @midnight /opt/scripts/script.sh = รันทุกคืนเที่ยงคืน (อ่านง่ายกว่า 0 0 * * *)

ช่วงค่า (Ranges)

ใช้ขีดกลาง (-) กำหนดช่วง: 0 1-6 * * * /opt/scripts/script.sh = รันทุกชั่วโมง 01:00-06:00 น.

เคล็ดลับและคำเตือน

  • Crontab เป็นเครื่องมือทรงพลัง Sysadmin ทุกคนเชื่อมั่น ใช้ง่ายเมื่อคุ้นเคย
  • ใช้อย่างระมัดระวัง การตั้งค่าผิดอาจทำลายระบบ
  • อ่าน man crontab และศึกษาคำสั่ง at (สำหรับจัดตารางงานครั้งเดียว) ด้วย