使用launchd备份mysql数据库 – 出了什么问题?

我试图在我的新的Mac上设置我的数据库的备份。 我已经创build了脚本,并创build了启动的plist文件。 然而,这个任务似乎一遍又一遍地运行,而不是每天一次。 我将StartInterval设置为86400,但StartInterval似乎没有任何影响。

我能做些什么来使它每天运行一次,而不是连续的?

plist文件:

<?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.dave.mysqlbackup</string> <key>ProgramArguments</key> <array> <string>/Users/dave/Sites/mysqldump/mysqldump.sh</string> </array> <key>OnDemand</key> <false/> <key>StartInterval</key> <integer>86400</integer> </dict> </plist> 

谢谢!

通过阅读launchd.plist手册页,它也看起来像replace:

  <key>OnDemand</key> <false/> 

附:

  <key>KeepAlive</key> <false/> 

可以修复你现有的plist。 事实上,在我的testing中,这改正了这个问题。 使用60秒的StartInterval ,我的程序大概每10秒运行一次,直到用KeepAlivereplaceOnDemand

你也可以把你的shell脚本放到/etc/periodic/daily