การทำงาน Data Job อัตโนมัติด้วย cron

การประมวลผลข้อมูลบน Command Line

Susan Sun

Data Person

Scheduler คืออะไร?

  • Scheduler รันงานตามกำหนดเวลาที่ตั้งไว้ล่วงหน้า
  • Scheduler เชิงพาณิชย์: Airflow, Luigi, Rundeck ฯลฯ
  • cron scheduler นั้น
    • ใช้งานง่าย
    • ฟรี
    • ปรับแต่งได้
    • ใช้งานผ่าน command-line เท่านั้น
    • มีติดตั้งมาใน MacOS และ Linux
การประมวลผลข้อมูลบน Command Line

cron คืออะไร?

Cron:

  • เป็น Job Scheduler แบบอิงเวลา
  • ติดตั้งมาพร้อมกับ MacOS และ Unix
  • ติดตั้งบน Windows ได้ผ่าน Cygwin หรือใช้ Windows Task Scheduler แทน
  • ใช้ทำงานอัตโนมัติ เช่น การบำรุงรักษาระบบ, bash script, Python job ฯลฯ
การประมวลผลข้อมูลบน Command Line

crontab คืออะไร?

Crontab คือไฟล์กลางที่ใช้จัดการ cron job ทั้งหมด

crontab -l
no crontab for <username>

เอกสารอ้างอิง:

man crontab
การประมวลผลข้อมูลบน Command Line

เพิ่ม job ลงใน crontab

วิธีที่ 1: แก้ไข crontab ด้วย text editor (เช่น nano, Vim, Emacs)

วิธีที่ 2: ใช้ echo เพื่อเพิ่มคำสั่ง scheduler เข้า crontab

echo "* * * * * python create_model.py" | crontab

ตรวจสอบว่า job ถูกกำหนดเวลาไว้ถูกต้อง:

crontab -l
* * * * * python create_model.py
การประมวลผลข้อมูลบน Command Line

การกำหนดเวลาให้ cron job

ความถี่สูงสุดของ cron job คือ ทุก 1 นาที

รายละเอียดส่วนประกอบด้านเวลาของ cron job:

.---------------- minute (0 - 59)
|  .------------- hour (0 - 23)
|  |  .---------- day of month (1 - 31)
|  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
|  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed ...
|  |  |  |  |
*  *  *  *  * command-to-be-executed
การประมวลผลข้อมูลบน Command Line

การกำหนดเวลาให้ cron job

*  *  *  *  * python create_model.py

ความหมาย:

  • รันทุกนาที ทุกชั่วโมง ทุกวัน ทุกเดือน และทุกวันในสัปดาห์

  • สรุปสั้น ๆ คือ รันทุกนาที

แหล่งข้อมูลเพิ่มเติม:

  • ดูรูปแบบการกำหนดเวลาเพิ่มเติมได้ที่ https://crontab.guru/
การประมวลผลข้อมูลบน Command Line

มาฝึกกันเถอะ!

การประมวลผลข้อมูลบน Command Line

Preparing Video For Download...