Flo*_*nt2 2 maintenance automation macos
MacOS 自带每日/每周/每月系统任务。但是看起来我必须手动启动这些任务。有没有办法每天/每周/每月自动执行这些任务?
它们之所以这样命名是因为它们已经每天、每周和每月执行。MainMenu 只是让您手动执行它们。
打开终端并输入以下内容:
ls -al /var/log/*.out
Run Code Online (Sandbox Code Playgroud)
这些日志文件名旁边列出的日期是上次执行相应维护任务的日期:
-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
Run Code Online (Sandbox Code Playgroud)
使用periodic命令手动运行它们。您需要root权限才能这样做,并且需要提供您要执行的权限。要运行所有这些:
sudo periodic daily weekly monthly
Run Code Online (Sandbox Code Playgroud)
您可以使用 AppleScript 编辑器制作脚本或应用程序,通过输入以下内容来执行例如每周任务:
do shell script "periodic weekly" with administrator privileges
Run Code Online (Sandbox Code Playgroud)
使用 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
Run Code Online (Sandbox Code Playgroud)
您可以使用Apple 的开发人员工具中包含的属性列表编辑器,或一个简单的文本编辑器。寻找<key>StartCalendarInterval</key>. 当它们运行时是不言自明的:
如果可以,每天在凌晨 3:15 运行:
<dict>
<key>Hour</key>
<integer>3</integer>
<key>Minute</key>
<integer>15</integer>
</dict>
Run Code Online (Sandbox Code Playgroud)
每周一次,周六运行:
<dict>
<key>Hour</key>
<integer>3</integer>
<key>Minute</key>
<integer>15</integer>
<key>Weekday</key>
<integer>6</integer>
</dict>
Run Code Online (Sandbox Code Playgroud)
每月的第一天一次:
<dict>
<key>Hour</key>
<integer>5</integer>
<key>Minute</key>
<integer>30</integer>
<key>Day</key>
<integer>1</integer>
</dict>
Run Code Online (Sandbox Code Playgroud)
该网站解释了运行这些脚本时会发生什么。
| 归档时间: |
|
| 查看次数: |
5946 次 |
| 最近记录: |