0Pricing
Linux Command Line & Bash Scripting Mastery · บทเรียน

การตั้งเวลางานด้วย Cron

เชี่ยวชาญเครื่องมือ 'cron' เพื่อกำหนดเวลาให้สคริปต์และคำสั่งทำงานโดยอัตโนมัติตามช่วงเวลาหรือเวลาที่ระบุ

การตั้งเวลางานด้วย Cron เป็นบทเรียน Linux Command Line & Bash Scripting Mastery ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Linux Command Line & Bash Scripting Mastery และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Linux Command Line & Bash Scripting Mastery มีบทเรียนทั้งหมด 4 บทเรียน

ทำงานให้เป็นอัตโนมัติด้วย Cron

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

ลองนึกภาพการตั้งค่าการสำรองข้อมูลรายวันหรือการตรวจสอบระบบทุกชั่วโมงโดยไม่ต้องลงมือทำเอง นั่นคือหน้าที่ของ cron!

ไฟล์ Crontab ส่วนตัวของคุณ

ผู้ใช้แต่ละคนในระบบ Linux จะมีไฟล์ crontab (ตาราง cron) เป็นของตนเอง ไฟล์นี้ใช้เก็บงานทั้งหมดที่ตั้งเวลาไว้

หากต้องการแก้ไข crontab ส่วนตัว ให้ใช้คำสั่ง crontab -e คำสั่งนี้จะเปิดไฟล์ด้วยโปรแกรมแก้ไขข้อความเริ่มต้นของคุณ พร้อมให้เพิ่มงานใหม่

รายการ Crontab: ช่องเวลา

รายการ crontab ประกอบด้วยหกส่วน ห้าส่วนแรกใช้กำหนดเวลาที่คำสั่งจะทำงาน และคั่นด้วยช่องว่าง:

  • นาที: 0-59
  • ชั่วโมง: 0-23 (0 คือเที่ยงคืน)
  • วันที่ของเดือน: 1-31
  • เดือน: 1-12 (หรือ Jan-Dec)
  • วันในสัปดาห์: 0-7 (0 หรือ 7 คือวันอาทิตย์, 1 คือวันจันทร์)

รายการ Crontab: คำสั่ง

ส่วนที่หกและเป็นส่วนสุดท้ายของรายการ crontab คือคำสั่งหรือสคริปต์ที่คุณต้องการเรียกใช้

ในส่วนนี้ ควรใช้พาธแบบเต็มสำหรับคำสั่งและสคริปต์ เช่น /usr/bin/python แทนที่จะใช้เพียง python งานของ Cron ทำงานในสภาพแวดล้อมแบบจำกัด ดังนั้น PATH ที่คุณใช้เป็นประจำอาจไม่พร้อมใช้งาน

อักขระพิเศษใน Crontab

เพื่อทำให้การตั้งเวลายืดหยุ่น cron จึงใช้อักขระพิเศษดังต่อไปนี้:

  • * (ดอกจัน): ตรงกับค่าที่เป็นไปได้ทั้งหมด เช่น ทุกนาทีหรือทุกชั่วโมง
  • , (จุลภาค): ใช้คั่นรายการค่า เช่น 1,15 หมายถึงนาทีที่ 1 และ 15
  • - (ยัติภังค์): ใช้กำหนดช่วงค่า เช่น 9-17 หมายถึงชั่วโมงที่ 9 ถึง 17
  • / (เครื่องหมายทับ): ใช้กำหนดช่วงการเพิ่มค่า เช่น */10 หมายถึงทุก 10 นาที

ทางลัดสำหรับการตั้งเวลาที่กำหนดไว้ล่วงหน้า

สำหรับการตั้งเวลาที่ใช้บ่อย cron มีทางลัดที่สะดวก ซึ่งใช้แทนช่องเวลาห้าช่องแรก:

  • @reboot: ทำงานหนึ่งครั้งหลังระบบเริ่มต้นใหม่
  • @yearly (หรือ @annually): ทำงานปีละครั้ง (0 0 1 1 *)
  • @monthly: ทำงานเดือนละครั้ง (0 0 1 * *)
  • @weekly: ทำงานสัปดาห์ละครั้ง (0 0 * * 0)
  • @daily (หรือ @midnight): ทำงานวันละครั้ง (0 0 * * *)
  • @hourly: ทำงานชั่วโมงละครั้ง (0 * * * *)

ลงมือทำ: ตั้งเวลาสคริปต์อย่างง่าย

มาสร้างสคริปต์อย่างง่ายที่บันทึกข้อความทักทาย แล้วตั้งเวลาให้ทำงานทุกวันเวลา 10:00 น. กัน

  1. สร้างสคริปต์ เช่น ~/greet.sh:
  2. ทำให้สคริปต์เรียกใช้ได้: chmod +x ~/greet.sh
  3. เพิ่มลงใน crontab (crontab -e):
    0 10 * * * /home/user/greet.sh
    รายการนี้หมายความว่า: ที่นาที 0 ของชั่วโมงที่ 10 (10 นาฬิกา) ทุกวันของเดือน ทุกเดือน และทุกวันในสัปดาห์ ให้เรียกใช้ /home/user/greet.sh
#!/bin/bash
# This script logs a greeting to a temporary file.
echo "Hello from Cron! The time is $(date)" >> /tmp/cron_greeting.log

จัดการงาน Cron ของคุณ

เมื่อเพิ่มงาน cron แล้ว คุณจะต้องจัดการงานเหล่านั้นดังนี้:

  • หากต้องการแสดงรายการใน crontab ปัจจุบัน: crontab -l
  • หากต้องการลบรายการทั้งหมดใน crontab (โปรดใช้ด้วยความระมัดระวังอย่างยิ่ง เพราะไม่สามารถย้อนกลับได้!): crontab -r

หลังแก้ไขทุกครั้ง ควรตรวจสอบ crontab ด้วย crontab -l เพื่อให้แน่ใจว่ารายการต่าง ๆ ถูกต้อง

ตัวแปรสภาพแวดล้อมของ Cron

โปรดจำไว้ว่างาน cron ทำงานในสภาพแวดล้อมแบบจำกัด ซึ่งหมายความว่างานเหล่านี้มักไม่มีตัวแปรสภาพแวดล้อมเดียวกับเชลล์แบบโต้ตอบของคุณ เช่น PATH

หากสคริปต์ของคุณต้องใช้คำสั่งเฉพาะ ให้ใช้พาธแบบเต็มของคำสั่งนั้น หรือกำหนดตัวแปรสภาพแวดล้อมที่จำเป็นไว้โดยตรงด้านบนของไฟล์ crontab เช่น PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

โจทย์ท้าทายไวยากรณ์ Crontab

คุณต้องตั้งเวลาให้สคริปต์ชื่อ /home/user/daily_report.sh ทำงานเวลา 9:15 น. ของทุกวันทำงาน (วันจันทร์ถึงวันศุกร์) รายการ crontab ข้อใดถูกต้อง

สรุป: เชี่ยวชาญการตั้งเวลา Cron

ทำได้ดีมาก! ตอนนี้คุณเข้าใจพื้นฐานของ cron สำหรับการตั้งเวลางานแล้ว

  • คุณได้เรียนรู้เกี่ยวกับไฟล์ crontab และวิธีแก้ไขด้วย crontab -e
  • คุณเข้าใจช่องทั้งหกของรายการ cron ซึ่งรวมช่องเวลาและคำสั่ง
  • คุณได้สำรวจอักขระพิเศษและทางลัดที่กำหนดไว้ล่วงหน้าเพื่อการตั้งเวลาที่ยืดหยุ่น
  • คุณรู้วิธีจัดการงานด้วย crontab -l และ crontab -r
  • คุณยังได้เรียนรู้ความสำคัญของพาธแบบเต็มและตัวแปรสภาพแวดล้อมในบริบทของ cron

ถึงเวลานำความรู้นี้ไปทำงานให้เป็นอัตโนมัติแล้ว!

คำถามที่พบบ่อย

บทเรียน “การตั้งเวลางานด้วย Cron” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การตั้งเวลางานด้วย Cron” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Linux Command Line & Bash Scripting Mastery ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Linux Command Line & Bash Scripting Mastery มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การตั้งเวลางานด้วย Cron”

เชี่ยวชาญเครื่องมือ 'cron' เพื่อกำหนดเวลาให้สคริปต์และคำสั่งทำงานโดยอัตโนมัติตามช่วงเวลาหรือเวลาที่ระบุ คุณปฏิบัติ Linux Command Line & Bash Scripting Mastery ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Linux Command Line & Bash Scripting Mastery หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Linux Command Line & Bash Scripting Mastery บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “การตั้งเวลางานด้วย Cron” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Linux Command Line & Bash Scripting Mastery นี้ได้ไหม

ได้ บทเรียน Linux Command Line & Bash Scripting Mastery ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การตั้งเวลางานด้วย Cron
  2. การทำงานดูแลระบบให้เป็นอัตโนมัติ
  3. โครงงานการเขียนสคริปต์ขั้นสูง
  4. การหมุนเวียนบันทึกและการล้างข้อมูลอัตโนมัติ
← กลับไปที่ Linux Command Line & Bash Scripting Mastery