Chạy tập lệnh shell tại thời điểm cụ thể
Để đặt lịch tập lệnh shell chạy tại thời điểm cụ thể, hãy sử dụng launchd
hoặc cron
.
Đặt lịch các tác vụ với launchd
Sử dụng
launchd
thay vìcron
để đặt lịch các tác vụ. Vớilaunchd
, nếu một tác vụ bị bỏ qua vì máy tính tắt hoặc ở chế độ ngủ, tác vụ này được thêm vào hàng đợi khi máy tính trực tuyến trở lại.Để sử dụng
launchd
để đặt lịch các tác vụ dựa trên thời gian, hãy sử dụng khóaStartCalendarInterval
hoặcStartInterval
.Để biết thêm thông tin về
launchd
, hãy xem trang man của lệnh đó.
Sử dụng cron để đặt lịch tác vụ
Daemon cron
thực thi các lệnh đã đặt lịch được xác định trong tệp crontab. Daemon cron
tìm trong thư mục /usr/lib/cron/tabs/ để tìm tệp crontab có tên sau các tài khoản trong /etc/passwd và tải các tệp vào bộ nhớ. Daemon cron
cũng tìm trong thư mục /etc/crontab/ để tìm tệp crontab có định dạng khác. cron
sau đó luân chuyển từng phút, kiểm tra các tệp crontab đã lưu trữ và kiểm tra từng lệnh để xem có nên chạy lệnh đó trong phút hiện tại hay không.
Khi các lệnh thực thi, đầu ra được gửi qua thư đến chủ sở hữu của tệp crontab hoặc người dùng có tên trong biến môi trường MAILTO tùy chọn trong tệp crontab.
Bạn sử dụng công cụ crontab
để cài đặt, gỡ cài đặt hoặc liệt kê các bảng được dùng để điều khiển daemon cron
. Người dùng có thể có tệp crontab của riêng họ.
Để định cấu hình tệp crontab của bạn, hãy sử dụng lệnh
crontab -e
. Thao tác này sẽ mở một tệp crontab trống trong chế độ sửa.Dưới đây là ví dụ về tệp 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
Trong ví dụ này, mục nhập đầu tiên sửa các quyền ổ đĩa cho ổ đĩa MacHD vào lúc 18:30 hàng ngày, từ Thứ Hai đến Thứ Sáu:
30 18 * * 1-5 diskutil repairPermissions /Volumes/MacHD
Mục nhập thứ hai đặt lịch thao tác sửa ổ đĩa để chạy lúc 23:50 mỗi Chủ nhật:
50 23 * * 0 diskutil repairVolume /Volumes/MacHD