使用 launchd 备份 mysql 数据库 - 有什么问题?

使用 launchd 备份 mysql 数据库 - 有什么问题?

我正在尝试在新 Mac 上设置数据库备份。我已经创建了脚本,并创建了 launchd 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>

谢谢!

答案1

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

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

和:

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

可能会修复您现有的 plist。事实上,在我的测试中,这解决了问题。使用StartInterval60 秒,我的程序大约每 10 秒运行一次,直到我将其替换OnDemandKeepAlive

您也可以直接将您的 shell 脚本放入其中/etc/periodic/daily

相关内容