Tag Archive ตั้งเวลาไว้

Byphunsanit

macOS: ตั้งเวลาทำงานวิธีไหนดี

macOs มีวิธีในการตั้งเวลาให้ทำงานอัตโนมัติเหมือน os อื่น ๆ อย่าง windows ที่มี Windows Task Scheduler, linux มี Cron ที่ช่วยในการทำงานอัตโนมัติ Task Automation


Launchd (วิธีมาตรฐานของ macOS)

Apple แนะนำให้ใช้ launchd แทน Cron เพราะมีความฉลาดกว่ามาก โดยจะทำงานผ่านไฟล์คอนฟิกที่เรียกว่า Property List (.plist)

  • ข้อดี: สามารถตั้งให้รันเมื่องานค้างอยู่ (เช่น ปิดเครื่องไปตอนที่ควรจะรัน พอเปิดเครื่องมามันจะรันให้ทันที), รันเมื่อเสียบ USB, หรือรันเมื่อมีการแก้ไขไฟล์
  • ที่เก็บไฟล์: ~/Library/LaunchAgents (สำหรับ User ปัจจุบัน)

Cron (แบบดั้งเดิม)

macOS ยังคงรองรับ Cron เหมือน Linux ทั่วไป คุณสามารถใช้คำสั่งเดิมๆ ได้เลยครับ

  • วิธีใช้งาน: พิมพ์ crontab -e ใน Terminal เพื่อแก้ไขตารางงาน
  • ข้อจำกัด: บน macOS เวอร์ชั่นใหม่ๆ (Catalina ขึ้นไป) Cron อาจจะเจอปัญหาเรื่องสิทธิ์การเข้าถึงไฟล์ (Full Disk Access) ทำให้รันสคริปต์บางอย่างไม่ได้ถ้าไม่ไปตั้งค่าใน System Settings ก่อน

Shortcuts App (ทางเลือกสาย GUI)

สำหรับสายที่ไม่ถนัดเขียน Code หรือ XML ใน macOS มีแอป Shortcuts (คำสั่งลัด) มาให้ในเครื่อง

  • Automation: คุณสามารถตั้งค่า “Automation” ให้รันสคริปต์ (Shell Script / AppleScript) ตามเวลาที่กำหนด หรือตามเงื่อนไขต่างๆ ได้ง่ายๆ ผ่านหน้าจอหลักครับ
ฟีเจอร์CronLaunchdShortcuts
ความยากง่าย (ตระกูล Unix)ปานกลาง (XML)ง่ายมาก (ลากวาง)
ความฉลาดรันตามเวลาเป๊ะๆ เท่านั้นรันย้อนหลังได้ถ้าพลาดไปเน้นการทำงานร่วมกับแอป
การรองรับDeprecated (แต่ยังใช้ได้)Native (แนะนำโดย Apple)มาตรฐาน User ทั่วไป

อ่านเพิ่มเติม