JustUtils
scheduleLinux cron มาตรฐาน · 5 ช่อง

สร้าง Crontab แบบเข้าใจง่าย

กำหนดเวลา ดูความหมายของแต่ละช่อง แล้วคัดลอกบรรทัด cron พร้อมใช้งาน

ตารางเวลาของคุณ

แก้ไขนิพจน์โดยตรง หรือปรับทีละช่อง

lightbulb

คำอธิบายตารางเวลา

เวลา 09:00 น. วันจันทร์ถึงวันศุกร์

เวลาทำงาน 5 ครั้งถัดไป

กำลังคำนวณเวลาทำงานครั้งถัดไป…

เริ่มจากตารางเวลาที่ใช้บ่อย

เลือกตารางเวลาเพื่อแทนที่นิพจน์ด้านบน แล้วปรับให้เหมาะกับงาน

บรรทัด cron พร้อมนำไปวาง

เพิ่มคำสั่งที่ต้องการให้ทำงานตามตารางเวลานี้

terminal
0 9 * * 1-5 /usr/local/bin/backup.sh

เคล็ดลับ: ใช้พาธเต็มของสคริปต์และคำสั่ง สภาพแวดล้อมของ cron มีตัวแปรน้อยกว่าเทอร์มินัลของคุณ

warningกฎสำคัญของ cron

เมื่อจำกัดทั้งวันที่ในเดือนและวันในสัปดาห์ cron แบบดั้งเดิมอาจทำงานเมื่อเงื่อนไขใดเงื่อนไขหนึ่งตรงกัน หากต้องการให้ตรงทั้งสองเงื่อนไข ให้ใช้ * ในช่องใดช่องหนึ่ง แล้วตรวจเงื่อนไขเพิ่มเติมในสคริปต์

คำอธิบายแบบเข้าใจง่าย

Crontab คืออะไร?

Crontab คือรายการงานที่คอมพิวเตอร์ทำซ้ำตามเวลา คุณกำหนดรูปแบบเวลาและคำสั่ง จากนั้น Linux จะตรวจทุกนาทีและเรียกคำสั่งเมื่อเวลาตรงตามเงื่อนไข

เหมาะกับงานสำรองข้อมูล ส่งรายงาน ล้างข้อมูลชั่วคราว หรือซิงก์ข้อมูล ตารางเวลาระบุว่าจะทำเมื่อไร ส่วนคำสั่งระบุว่าจะทำอะไร

วิธีใช้งานบน Ubuntu

เปิดตารางเวลาส่วนตัว

crontab -e

เลือกโปรแกรมแก้ไขเมื่อเปิดครั้งแรก วางบรรทัด cron บันทึก แล้วออกจากโปรแกรม

แสดงงานที่บันทึกไว้

crontab -l

แสดงตารางเวลาที่ติดตั้งไว้สำหรับผู้ใช้ของคุณ

ลบงานทั้งหมดของคุณ

crontab -r

คำสั่งนี้ลบ crontab ส่วนตัวทั้งหมดทันที โปรดใช้อย่างระมัดระวัง

ก่อนนำตารางเวลาไปใช้จริง อ่าน คู่มือเขตเวลา cron และเวลาออมแสง (ภาษาอังกฤษ) แล้วตรวจนาฬิกาของบริการ cron และทำให้งานรันซ้ำได้อย่างปลอดภัย

คู่มือ CRONTAB GENERATOR ภาษาไทย

สร้าง Cron Expression แบบ 5 ช่อง พร้อมตรวจเวลาที่งานจะทำงานจริง

Crontab ใช้ตั้งเวลาให้ Linux เรียกคำสั่งซ้ำโดยอัตโนมัติ รูปแบบมาตรฐานมีห้าช่อง ได้แก่ นาที ชั่วโมง วันที่ เดือน และวันในสัปดาห์ เครื่องมือนี้ช่วยสร้าง expression อธิบายความหมาย และแสดงเวลาทำงานถัดไปในเขตเวลาของอุปกรณ์

โครงสร้าง Cron Expression 5 ช่อง

┌──────── นาที (0-59)
│ ┌────── ชั่วโมง (0-23)
│ │ ┌──── วันที่ของเดือน (1-31)
│ │ │ ┌── เดือน (1-12)
│ │ │ │ ┌ วันในสัปดาห์ (0-7)
* * * * *  /path/to/command

เครื่องหมาย * หมายถึงทุกค่าที่อนุญาต ใช้เครื่องหมายจุลภาคสำหรับหลายค่า ขีดกลางสำหรับช่วง และ / สำหรับช่วงห่าง เช่น */5

ตัวอย่าง Crontab ที่ใช้บ่อย

*/5 * * * *

ทุก 5 นาที

0 * * * *

ต้นชั่วโมงของทุกชั่วโมง

0 9 * * 1-5

09:00 น. วันจันทร์ถึงศุกร์

0 0 * * *

เที่ยงคืนทุกวันตามเขตเวลาของเครื่อง

เวลาอ้างอิงเขตเวลาของเครื่องที่รัน cron ไม่ใช่เขตเวลาของเบราว์เซอร์เสมอ ตรวจค่าด้วยtimedatectl หรือการตั้งค่าของ container ก่อนใช้งานใน production

ทำไมคำสั่งทำงานใน Terminal แต่ไม่ทำงานใน Cron

Cron มักมี environment และ PATH สั้นกว่า shell ที่คุณเปิดใช้งานเอง จึงควรใช้ path เต็มของโปรแกรมและสคริปต์ กำหนด working directory ภายในคำสั่ง และส่ง stdout กับ stderr ไปยัง log ที่ตรวจสอบได้

กฎวันที่ที่มักเข้าใจผิด

ใน cron แบบดั้งเดิม หากจำกัดทั้งวันที่ของเดือนและวันในสัปดาห์ งานอาจทำงานเมื่อช่องใดช่องหนึ่งตรงเงื่อนไข หากต้องการให้ตรงพร้อมกันอย่างเคร่งครัด ควรใช้ * ในหนึ่งช่องแล้วตรวจเงื่อนไขเพิ่มในสคริปต์

ตรวจสอบหลังเพิ่มงานใน Crontab

  1. เปิดตารางด้วย crontab -e แล้วบันทึกโดยไม่มีข้อความผิดพลาด
  2. ใช้ crontab -l ยืนยันว่า expression และคำสั่งถูกบันทึกครบ
  3. ตรวจ service, system log หรือไฟล์ log ของคำสั่งหลังเวลาทำงานรอบแรก
  4. ทดสอบสคริปต์ด้วย environment ที่ใกล้เคียง cron และใช้บัญชีผู้ใช้เดียวกับงานจริง