美文网首页
【数据库】MAC 使用mysqldump 和 launchctl

【数据库】MAC 使用mysqldump 和 launchctl

作者: 打瞌睡的灰 | 来源:发表于2020-07-28 16:34 被阅读0次

背景:之前开发的报告整理工具使用的数据库一直没有增加自动备份,每次想起来手动去备份一下,因此想增加一个自动备份数据库的任务。

环境:MAC mysql 


整个过程分为两个部分 (1)使用mysqldump 写备份数据库的shell脚本  (2)利用mac的launchctlg建立定时任务

1、编写备份脚本

脚本backup.sh

#!/bin/sh

path="/Users/usrname/Desktop/dbBackUp/"

date=$(date +%Y%m%d_%H-%M-%S)

database="DB_Name"

username="root"

password="123456"

filename="$path$date.sql"

mysqldump -u$username -p$password -q $database > $filename 

提权

chmod  777 backup.sh

测试一下,直接运行sh脚本,即可看到备份的sql文件

2、建立launchctl任务

(1)新建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.plistname.plist</string>

    <key>ProgramArguments</key>

    <array>

        <string>/Users/UserName/Desktop/dbBackUp/backup.sh</string>

    </array>

    <key>StartCalendarInterval</key>

    <dict>

        <key>Minute</key>

        <integer>36</integer>

        <key>Hour</key>

        <integer>15</integer>

    </dict>

    <key>StandardOutPath</key>

    <string>/Users/UserName/Desktop/dbBackUp/run-out.log</string>

    <key>StandardErrorPath</key>

    <string>/Users/UserName/Desktop/dbBackUp/run-err.log</string>

</dict>

</plist>

(2)进入 ~/Library/LaunchAgents/ 目录, 将plist文件放到 ~/Library/LaunchAgents/下

(3)添加任务

load -w com.plistname.plist

(4)测试任务

 start com.plistname.plist

如果没有报错即可看到备份出来的sql文件,如果看不到就查看run-err.log

3、整个过程中遇到的问题

(1)sh执行调用mysqldump正常,launchctl触发提示“mysqldump: command not found”

解决方法:输入 find / -name mysql,找到mysql /bin/ 下的mysqldump的绝对路径,将shell脚本内的mysqldump命令替换为mysqldump的绝对路径

(2)触发任务后,没有sql语句也没有任何日志

解决方法:开始的时候日志只写了一个path,没有写对应的xxx.log文件,然后改成了上面的xxx.log格式,再次运行就可以了

4、常用的launchctl命令

launchctl load -w com.mahui.plist  --添加一个任务

launchctl unload -w com.mahui.plist --删除一个任务

launchctl start com.mahui.plist  --触发一个任务,无视时间

launchctl list | grep plist --展示当前的存在所有plist任务

相关文章

网友评论

      本文标题:【数据库】MAC 使用mysqldump 和 launchctl

      本文链接:https://www.haomeiwen.com/subject/zuhfrktx.html