การสั่งทำงานเชลล์สคริปต์ในเวลาที่ระบุเฉพาะ
หากต้องการตั้งเวลาให้เชลล์สคริปต์ทำงานในเวลาที่ระบุเฉพาะ ให้ใช้ launchd
หรือ cron
ตั้งเวลาทำงานด้วย launchd
ใช้
launchd
แทนcron
เพื่อกำหนดเวลางานด้วยlaunchd
หากงานถูกข้ามเนื่องจากปิดเครื่องอยู่หรือคอมพิวเตอร์อยู่ในโหมดพัก งานนั้นจะถูกเพิ่มไปที่คิวเมื่อคอมพิวเตอร์กลับมาออนไลน์อีกครั้งหากต้องการใช้
launchd
เพื่อตั้งเวลาทำงานที่อิงตามนาฬิกานับถอยหลัง ให้ใช้รหัสคีย์StartCalendarInterval
หรือStartInterval
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ
launchd
ให้ดูที่หน้าคู่มือ
ใช้ cron เพื่อตั้งเวลาทำงาน
เดมอน cron
จะดำเนินการคำสั่งแบบตั้งเวลาซึ่งกำหนดไว้ในไฟล์ crontabเดมอน cron
จะค้นหาโฟลเดอร์ /usr/lib/cron/tabs/ สำหรับไฟล์ crontab ที่มีชื่อต่อจากบัญชีใน /etc/passwd แล้วโหลดไฟล์ลงในหน่วยความจำเดมอน cron
ยังค้นหาโฟลเดอร์ /etc/crontab/ สำหรับไฟล์ crontab ซึ่งอยู่ในรูปแบบอื่นได้ด้วยจากนั้น cron
จะวนรอบทุกนาที โดยจะทดสอบไฟล์ crontab ที่จัดเก็บไว้และตรวจสอบแต่ละคำสั่งเพื่อดูว่าควรสั่งทำงานในนาทีปัจจุบันหรือไม่
เมื่อดำเนินการคำสั่ง ข้อมูลออกจะถูกส่งไปที่เจ้าของไฟล์ crontab ทางเมลหรือไปที่ผู้ใช้ที่มีชื่อในตัวแปรสภาพแวดล้อม MAILTO ซึ่งเป็นทางเลือกในไฟล์ crontab
คุณสามารถใช้เครื่องมือ crontab
เพื่อติดตั้ง เลิกติดตั้ง หรือลงรายการในตารางที่ใช้ในการควบคุมเดมอน cron
ได้ผู้ใช้สามารถมีไฟล์ crontab ของตัวเองได้
หากต้องการกำหนดค่าไฟล์ crontab ของคุณ ให้ใช้คำสั่ง
crontab -e
การดำเนินการนี้จะเปิดไฟล์ crontab ที่ว่างเปล่าในโหมดแก้ไขตัวอย่างของไฟล์ crontab มีดังนี้:
SHELL=/bin/sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin
HOME=/var/log
#min hour mday month wday command
30 18 * * 1-5 diskutil repairPermissions /Volumes/MacHD
50 23 * * 0 diskutil repairVolume /Volumes/MacHD
ในตัวอย่างนี้ รายการแรกจะแก้ไขสิทธิ์อนุญาตดิสก์สำหรับดิสก์โวลุ่ม MacHD เวลา 18:30 น. ทุกวัน ตั้งแต่วันจันทร์ถึงวันศุกร์:
30 18 * * 1-5 diskutil repairPermissions /Volumes/MacHD
รายการที่สองจะตั้งเวลาดำเนินการแก้ไขดิสก์โวลุ่มเพื่อให้ทำงานเวลา 23:50 น. ทุกวันอาทิตย์:
50 23 * * 0 diskutil repairVolume /Volumes/MacHD