使用启动每2分钟运行MAMP数据库备份

保罗·斯金纳
  • 我正在尝试创建一个由launchd运行的plist文件。
  • 我希望它每2分钟运行一次(现在),它应该执行mysqldump备份。
  • 它用于备份我所有的本地MAMP数据库。
  • 脚本本身:

/Applications/MAMP/Library/bin/mysqldump --opt -u root -proot --host=localhost --all-databases > ~/Dropbox/Development/Shared\ DBs/BACKUPS/all_databases_-'date "+%Y-%m-%d_%H.%M.%S"'.sql

输入终端后,可以正常工作。

  • 我需要自动执行此备份,因此编写了以下plist文件,并将其放入 ~/Library/LaunchAgents/com.localhost.cron.plist

  • 然后运行launchctl load ~/Library/LaunchAgents/com.localhost.cron.plist,但不会每2分钟触发一次。

知道我在做什么错吗?

<?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.localhost.cron.plist</string>
    <key>ProgramArguments</key>
    <array>
        <string>/Applications/MAMP/Library/bin/mysqldump --opt -u root -proot --host=localhost --all-databases > ~/Dropbox/Development/Shared\ DBs/BACKUPS/all_databases_-`date "+%Y-%m-%d_%H.%M.%S"`.sql</string>
    </array>
    <key>StartInterval</key>
    <integer>120</integer>
</dict>
</plist>

笔记

我正在使用OS X Mavericks和最新的MAMP。

提前致谢。

编辑

下面选择的答案很好地回答了我的问题,但我发现我认为是更好的方法(选择您的方法)。它在这里可用:将Stderr发送给dev / null,但是如果没有错误发生,请继续

低成本航空公司

您的ProgramArgument值不正确。您应该为每个参数提供一个额外的字符串。这应该更好地工作:

<key>ProgramArguments</key>
<array>
    <string>/Applications/MAMP/Library/bin/mysqldump</string>
    <string>--opt</string>
    <string>-u</string>
    <string>root</string>
    <string>-proot</string>
    <string>--host=localhost</string>
    <string>--all-databases</string>
</array>

输出重定向是通过key完成的StandardOutPath,但是shell的扩展~将无法工作。同时启动将不允许您的shell命令创建动态文件名。您最好将所有这些包装在shell脚本中,然后从launchd调用它。

为了仅在MySQL运行时运行此脚本,可以使用如下KeepAlive键:

<key>KeepAlive</key>
<dict>
    <key>PathState</key>
    <dict>
        <key>/var/run/mysql.pid</key>
        <true/>
    </dict>
</dict>

这种方法假定您的MySQL实例将其当前的PID写入文件/var/run/mysql.pid该文件仅在MySQL运行时存在。

正如您正确指出的那样StartIntervalKeepAlive不要一起工作。无论PID文件是否存在,都会触发脚本。正确的方法是使用ThrottleInterval而不是StartInterval该键确定两次启动之间必须经过多少时间。像这样使用它:

<ThrottleInterval>
<integer>120</integer>

看一看launchd.plist(5)它详细解释了所有选项。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何每5分钟自动备份一次mysql数据库

来自分类Dev

如何每5分钟使用celery / cronjobs在数据库中添加一个用户

来自分类Dev

每5分钟从SQLite数据库中删除不活动的项目(聊天)

来自分类Dev

如何使用石英在m子中每2分钟运行一次查询

来自分类Dev

5分钟后更新数据库

来自分类Dev

PHP和MySQL:从数据库中选择未刷新超过2分钟的帐户

来自分类Dev

每15分钟从数据库中删除一次数据,但会出现错误-Discord.py

来自分类Dev

服务每2分钟重新启动一次

来自分类Dev

每2分钟运行批处理和脚本文件,而不是任务计划程序

来自分类Dev

Cron每1或2分钟就会运行一次

来自分类Dev

使用Node-Cron每45分钟运行一次Cron Job

来自分类Dev

让cron作业每30分钟运行一次-使用cron.hourly?

来自分类Dev

如何使用systemd替换要每五分钟运行一次的cron作业?

来自分类Dev

Cronjob每30分钟运行一次

来自分类Dev

每5分钟运行一次.sh

来自分类Dev

如何将数据库记录分组为15分钟的时间间隔

来自分类Dev

在设置的到期时间(例如5分钟)后删除数据库行

来自分类Dev

每隔5分钟计算一次数据库中的条目数

来自分类Dev

如何从SQL数据库表中获取最近5分钟的记录?

来自分类Dev

数据库中最近24小时的5分钟间隔聚合

来自分类Dev

如何删除数据库中5分钟内取消的订单记录?

来自分类Dev

30分钟后从数据库中删除项目

来自分类Dev

codeigniter获取最近1分钟的数据库字段

来自分类Dev

如何从SQL数据库表中获取最近5分钟的记录?

来自分类Dev

5分钟后如何修改数据库(mysql)并将其还原?

来自分类Dev

使用javascript从txt文件中读取数据,每5分钟一次

来自分类Dev

每隔5分钟运行一次,即可通过后台服务在数据库中保存较长的时间

来自分类Dev

启动后5分钟运行脚本

来自分类Dev

循环使用Sys.sleep()每2分钟逐行计算距离

Related 相关文章

  1. 1

    如何每5分钟自动备份一次mysql数据库

  2. 2

    如何每5分钟使用celery / cronjobs在数据库中添加一个用户

  3. 3

    每5分钟从SQLite数据库中删除不活动的项目(聊天)

  4. 4

    如何使用石英在m子中每2分钟运行一次查询

  5. 5

    5分钟后更新数据库

  6. 6

    PHP和MySQL:从数据库中选择未刷新超过2分钟的帐户

  7. 7

    每15分钟从数据库中删除一次数据,但会出现错误-Discord.py

  8. 8

    服务每2分钟重新启动一次

  9. 9

    每2分钟运行批处理和脚本文件,而不是任务计划程序

  10. 10

    Cron每1或2分钟就会运行一次

  11. 11

    使用Node-Cron每45分钟运行一次Cron Job

  12. 12

    让cron作业每30分钟运行一次-使用cron.hourly?

  13. 13

    如何使用systemd替换要每五分钟运行一次的cron作业?

  14. 14

    Cronjob每30分钟运行一次

  15. 15

    每5分钟运行一次.sh

  16. 16

    如何将数据库记录分组为15分钟的时间间隔

  17. 17

    在设置的到期时间(例如5分钟)后删除数据库行

  18. 18

    每隔5分钟计算一次数据库中的条目数

  19. 19

    如何从SQL数据库表中获取最近5分钟的记录?

  20. 20

    数据库中最近24小时的5分钟间隔聚合

  21. 21

    如何删除数据库中5分钟内取消的订单记录?

  22. 22

    30分钟后从数据库中删除项目

  23. 23

    codeigniter获取最近1分钟的数据库字段

  24. 24

    如何从SQL数据库表中获取最近5分钟的记录?

  25. 25

    5分钟后如何修改数据库(mysql)并将其还原?

  26. 26

    使用javascript从txt文件中读取数据,每5分钟一次

  27. 27

    每隔5分钟运行一次,即可通过后台服务在数据库中保存较长的时间

  28. 28

    启动后5分钟运行脚本

  29. 29

    循环使用Sys.sleep()每2分钟逐行计算距离

热门标签

归档