Tôi đã tìm ra cách ghi nhật ký hoạt động công việc định kỳ của mình mà không chuyển đổi từng công việc sang các công việc khởi động.
Trang cron man đề cập đến -x
các tùy chọn cho phép "ghi thông tin gỡ lỗi vào đầu ra tiêu chuẩn." Một tác dụng phụ của việc này là chúng cũng ghi thông tin cơ bản vào lỗi tiêu chuẩn. Dữ liệu gửi đến lỗi tiêu chuẩn được ghi vào /var/log/system.log
.
Điều này dẫn đến dữ liệu như thế này được ghi vào /var/log/system.log
:
debug flags enabled: misc
[42073] cron started
log_it: (user1 42084) CMD (/root/bin/mysql-backup)
log_it: (user1 42094) CMD (run-parts /etc/cron.hourly)
Vì bản thân cron được khởi chạy bởi launchd, để kích hoạt tính năng này, tôi đã phải chỉnh sửa /System/Library/LaunchDaemons/com.vix.cron.plist
để bây giờ nó trông giống như:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.vix.cron</string>
<key>ProgramArguments</key>
<array>
<string>/usr/sbin/cron</string>
<string>-x</string>
<string>misc</string>
</array>
<key>KeepAlive</key>
<dict>
<key>PathState</key>
<dict>
<key>/etc/crontab</key>
<true/>
</dict>
</dict>
<key>QueueDirectories</key>
<array>
<string>/usr/lib/cron/tabs</string>
</array>
<key>EnableTransactions</key>
<true/>
<key>StandardErrorPath</key>
<string>/var/log/cron.log</string>
</dict>
</plist>
Tôi đã sử dụng -x misc
ở đây, nhưng dường như không quan trọng tôi đã sử dụng tùy chọn nào. Thêm việc -x
bắt đầu đăng nhập của hoạt động công việc. Tôi cũng đã thêm StandardErrorPath để viết /var/log/cron.log
thay vì mặc định /var/log/system.log
.
Và sau đó dỡ và tải lại cái này:
$ sudo launchctl
Password:
launchd% unload /System/Library/LaunchDaemons/com.vix.cron.plist
launchd% load /System/Library/LaunchDaemons/com.vix.cron.plist