วัน: 19 มิถุนายน 2021

macOS: Cron ตั้งเวลาทำงานใน mac โดย rootmacOS: Cron ตั้งเวลาทำงานใน mac โดย root

แต่ละ OS จะมีระบบตั้งเวลาในการทำงานอัตโนมัติ ใน Windows มี Task Scheduler, ใน linux มี Cron ส่วนใน macOS จะมี Cron และ launchd โดยการใช้ Cron job ทำให้การ dev บน mac แล้วใช้ linux server ในการทำงานจริง ๆ ได้ Cron ใน macOS เหมือน Linux ทั่วไป สามารถใช้คำสั่งเดิม ๆ ได้เลย

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

แก้ได้โดย

  1. เปิด System Settings > Privacy & Security
  2. ไปที่แท็บ Privacy และเลือก Full Disk Access
  3. คลิกที่รูปกุญแจด้านล่างซ้ายและใส่รหัสผ่าน
  4. กด Command + Shift + G ใน Finder แล้วใช้คำสั่ง
    open /usr/sbin/cron
    เพื่อหาไฟล์ cron
  5. ลากไฟล์ /usr/sbin/cron จาก Finder ไปวางในรายการของ Full Disk Access
  6. ลองรันสคริปต์อีกครั้ง

การตั้งค่านี้ช่วยให้ cron มีสิทธิ์ในการเข้าถึงข้อมูลส่วนตัวและระบบต่าง ๆ ได้เหมือนกับแอปพลิเคชันที่ถูกอนุญาตให้เข้าถึงได้โดยผู้ใช้โดยตรงครับ

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