4

我已经编写了一个 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 数据库的备份。

提前喝彩。

4

2 回答 2

2

您是否已将作业加载到正确的launchd? 根据您放置文件的位置,看起来您应该执行sudo launchctl load /Library/LaunchDaemons/com.dotcafe.DCDMySQLBackup.plist. 之后,可以sudo launchctl start com.dotcafe.DCDMySQLBackup吗?

我遇到了一个基于日历的launchd作业在它应该运行的时候没有运行的问题,即使它在我launchctl start编辑它时已经加载并且运行良好。我试图以我的用户身份每天运行这项工作,所以我的解决方案就是把它变成一份cron工作。

于 2010-12-07T21:52:14.927 回答
-1

你没有指定Program密钥,所以它不能运行任何东西。可能,您想在grab.sh没有参数的情况下启动。

我认为可能存在一些权限问题,因为您没有指定UserName. 此外,如果您.bash_profile导出程序使用的任何环境变量,则在 launchd 下运行时可能会导致问题。(假设 grab.sh 不使用相对路径。)您可以为您的程序创建一个启动脚本,该脚本加载.bash_profile然后运行grab.sh​​.

于 2010-12-07T16:48:02.680 回答