在 Mac OS X 上通过启动守护进程执行 mysqldump 不起作用

在 Mac OS X 上通过启动守护进程执行 mysqldump 不起作用

我正在尝试通过 bash 脚本创建数据库的 mysqldump,并使用 Mac 的 launchd / launchctl 进程自动执行该过程。我可以成功手动运行 bash 脚本以在终端中备份数据库,但如果我尝试使用 launchd,似乎什么都没有发生。

谁知道可能是什么问题?

以下是 mysqldump 的 bash 脚本:

DT=`date +%m_%d_%Y_%H_%M_%S`
/Applications/MAMP/Library/bin/mysqldump --opt -u root -proot --host=localhost extrapolation > /Users/[user]/Desktop/db/extrapolation_$DT.sql

这是 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>extrapolation_db_backup</string>
        <key>ProgramArguments</key>
        <array>
            <string>/Users/[user]/Sites/extrapolationlaunch/dbase_backup.sh</string>
        </array>
        <key>StartInterval</key>
        <integer>120</integer>
</dict>
</plist>

我已将其保存在 /Users/[用户]/Library/LaunchAgents 中

然后我运行:

launchctl 加载 ~/Library/LaunchAgents/extrapolation_db_backup.plist`

如果我用

launchctl list

我可以看到这个过程:

-   0   extrapolation_db_backup

我猜可能是某种权限问题,但我还没能解决。如能得到任何帮助我将不胜感激。

相关内容