我编写了一个plist文件并将其放入/ Library / LaunchDaemons
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList- 1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.dotcafe.DCDMySQLBackup</string>
<key>ProgramArguments</key>
<array>
<string>/Users/robdando/Webserverbackup/grab.sh</string>
</array>
<key>StartInterval</key>
<integer>900</integer>
</dict>
</plist>
我现在已经手动从终端手动编写脚本,但我似乎无法按照我的要求每隔15分钟运行一次,它调用的脚本会登录到ftp服务器并下载mysql数据库的备份。
提前干杯。
答案 0 :(得分:2)
您是否已将作业加载到正确的launchd
?根据您放置文件的位置,看起来您应该执行sudo launchctl load /Library/LaunchDaemons/com.dotcafe.DCDMySQLBackup.plist
。之后,你可以sudo launchctl start com.dotcafe.DCDMySQLBackup
吗?
我遇到了基于日历的launchd
作业无法正常运行的问题,即使它已加载并且在我launchctl start
编辑时工作正常。我试图每天以我的用户身份运行这份工作,所以我的解决方案就是把它变成cron
工作。
答案 1 :(得分:-1)
您尚未指定Program
密钥,因此无法运行任何内容。您可能希望在没有参数的情况下启动grab.sh
。
我认为可能存在一些权限问题,因为您尚未指定UserName
。此外,如果您的.bash_profile
导出程序使用的任何环境变量,则在launchd下运行时可能会导致问题。 (假设grab.sh不使用相对路径。)您可以为程序创建一个启动脚本,该脚本加载.bash_profile
然后运行grab.sh
。