ทำ Automation งานประจำด้วย Python และ Cron

Sharing is caring!

ทำ Automation งานประจำด้วย Python และ Cron

Python Automation

คุณเบื่อไหมกับการต้องทำงานเดิมซ้ำ ๆ ทุกวัน เช่น โหลดรายงาน, ส่งอีเมล, สำรองข้อมูล ฯลฯ? หากใช่ — ถึงเวลาแล้วที่คุณจะให้ Python และ Cron มาช่วยชีวิต!

Automation คืออะไร?

Automation หมายถึง การทำให้ระบบหรือคอมพิวเตอร์ทำงานแทนมนุษย์โดยอัตโนมัติ โดยใช้ script หรือโปรแกรมเข้ามาช่วย เช่น การจัดการไฟล์, ส่งอีเมล, สแกนโฟลเดอร์, ดึงข้อมูลจากเว็บ ฯลฯ

ทำไมต้อง Python?

  • อ่านง่าย เขียนง่าย
  • มีไลบรารีพร้อมใช้ เช่น smtplib, pandas, requests, schedule
  • รองรับทั้ง Windows และ Linux

ทำไมต้อง Cron?

Cron เป็น scheduler ในระบบ Unix/Linux ใช้ในการรัน script อัตโนมัติตามเวลาที่กำหนด เช่น ทุกวันตอนตี 2 หรือทุก ๆ 5 นาที

ตัวอย่างงานที่สามารถ Automate ได้

  • โหลดไฟล์รายงานจากเว็บ
  • แปลงไฟล์ Excel → PDF
  • ส่งอีเมลสรุปรายวัน
  • ดึงข้อมูลจาก API
  • ย้ายไฟล์ไปยัง Backup Folder

เริ่มเขียน Python Script กันเถอะ!

1. ส่งอีเมลรายงานแบบง่าย

import smtplib
from email.mime.text import MIMEText

msg = MIMEText("รายงานประจำวันที่ 1 กรกฎาคม")
msg['Subject'] = "Daily Report"
msg['From'] = "[email protected]"
msg['To'] = "[email protected]"

s = smtplib.SMTP('smtp.example.com')
s.login("[email protected]", "password")
s.send_message(msg)
s.quit()

2. ดึงข้อมูลจาก API แล้วเซฟเป็นไฟล์

import requests

r = requests.get("https://jsonplaceholder.typicode.com/posts")
with open("report.json", "w") as f:
    f.write(r.text)

ตั้งเวลาให้รัน script อัตโนมัติด้วย Cron

เปิด crontab ด้วยคำสั่ง:

crontab -e

เพิ่มบรรทัดนี้ลงไป:

0 9 * * * /usr/bin/python3 /home/user/scripts/daily_report.py

หมายถึง รันทุกวันเวลา 9 โมงเช้า

วิธี Debug Cron ที่ไม่รัน

  • ตรวจสอบสิทธิ์ไฟล์ว่า executable หรือไม่
  • ใช้ path เต็ม เช่น /usr/bin/python3
  • Redirect log ไปเก็บไว้ตรวจสอบ เช่น:
    0 9 * * * /usr/bin/python3 /path/to/script.py >> /var/log/myscript.log 2>&1

เครื่องมือเสริมที่น่าสนใจ

  • schedule — ไลบรารีรันงานใน Python แบบง่าย
  • apscheduler — ตั้งเวลา cron job ภายใน Python เอง
  • loguru — สำหรับ logging ที่อ่านง่าย

ข้อควรระวังในการทำ Automation

  • อย่าลืม log เพื่อดูว่า script ทำงานถูกต้อง
  • ระวัง script ลูปไม่หยุด
  • สำรองข้อมูลก่อนทำ Automation ที่เกี่ยวกับไฟล์

สรุป

การทำ Automation ไม่ใช่เรื่องของ DevOps หรือ SysAdmin เท่านั้น แต่นักพัฒนา, เจ้าหน้าที่ธุรการ, หรือใครก็ตามที่ต้องทำงานซ้ำ ๆ ก็สามารถใช้ Python + Cron มาช่วยได้ทันที

เริ่มจากงานง่าย ๆ เช่น สำรองไฟล์หรือส่งรายงาน แล้วคุณจะพบว่า Automation ทำให้ชีวิตคุณ “เบาลง” อย่างไม่น่าเชื่อ

ภาพประกอบจาก: Unsplash

Leave a Reply

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *