本文共 893 字,大约阅读时间需要 2 分钟。
定时备份脚本 backupdb.sh:
#!/bin/shdb_user="数据库用户名"db_passwd="数据库密码"db_name="需要备份的数据库名"CONTAINERNAME="容器名"REMOTE_USER="备份主机用户名"REMOTE_IP="备份主机ip"REMOTE_DIR="备份主机的备份目录name="$(date +"%Y%m%d%H%M%S")"docker exec -i $CONTAINERNAME /usr/bin/mysqldump -u$db_user -p$db_passwd $db_name >>/usr/data/backup/$name.sql# 通过scp的方式将备份的数据转移到另外一台服务器scp /usr/data/backup/$name.sql $REMOTE_USER@$REMOTE_IP:$REMOTE_DIR# 保留最近一个月的数据find /usr/data/backup -type f -mtime +20 -name "*.sql" -exec rm -rf { } \;
注意需要在docker安装mysql的时候,需要在宿主机新建文件夹 /usr/data/backup
在window中编辑过的脚本需要去除空格和换行:
# 去除脚本中的空格和换行sed -i 's/\r$//' /usr/data/backup/backupdb.sh# 脚本中docker主机执行中执行容器命令时候 docker exec -it 需要将 t 去掉,否则在执行定时任务脚本的时候会报错 the input device is not a TTY
通过scp的方式将数据保存到另外一台服务器需要设置ssh免密登录: 请参考:
启动定时任务:
# 启动定时任务crontab -e# 将定时任务写入其中 分 时 日 月 年* * * * * /bin/bash /usr/data/backup/backupdb.sh# 查看定时任务列表crontab -l
转载地址:http://xhxxi.baihongyu.com/