MacOS 自带每日/每周/每月系统任务。但是看起来我必须手动启动这些任务。有没有办法让这些任务每天/每周/每月自动执行?
答案1
它们之所以被这样命名,是因为它们已经每天、每周和每月执行。MainMenu 只是让你手动执行它们。
打开终端并输入以下内容:
ls -al /var/log/*.out
这些日志文件名旁边列出的日期是上次执行相应维护任务的日期:
-rw-r--r-- 1 root wheel 496994 5 Mar 03:15 /var/log/daily.out
-rw-r--r-- 1 root wheel 2088 1 Mar 06:02 /var/log/monthly.out
-rw-r--r-- 1 root wheel 5289 5 Mar 03:15 /var/log/weekly.out
使用命令手动运行它们periodic
。您需要root
权限才能执行此操作,并且需要提供要执行的操作。要运行所有这些:
sudo periodic daily weekly monthly
您可以使用 AppleScript 编辑器来制作脚本或应用程序,例如通过输入以下命令来执行每周任务:
do shell script "periodic weekly" with administrator privileges
使用 Automator,您可以将其变成一项服务。
要更改这些任务的定期安排时间,请编辑其首选项文件:
/System/Library/LaunchDaemons/com.apple.periodic-daily.plist
/System/Library/LaunchDaemons/com.apple.periodic-weekly.plist
/System/Library/LaunchDaemons/com.apple.periodic-monthly.plist
您可以使用属性列表编辑器包含在 Apple 的开发者工具中,或者一个简单的文本编辑器。查找<key>StartCalendarInterval</key>
。它们的运行时间非常直观:
每天凌晨 3:15 运行,如果可以的话:
<dict>
<key>Hour</key>
<integer>3</integer>
<key>Minute</key>
<integer>15</integer>
</dict>
每周六运行一次:
<dict>
<key>Hour</key>
<integer>3</integer>
<key>Minute</key>
<integer>15</integer>
<key>Weekday</key>
<integer>6</integer>
</dict>
每月第一天一次:
<dict>
<key>Hour</key>
<integer>5</integer>
<key>Minute</key>
<integer>30</integer>
<key>Day</key>
<integer>1</integer>
</dict>
本网站解释运行这些脚本时发生的情况。