网站怎么做支付宝支付接口优化营商环境的金句
Docker容器中的mysql自动备份脚本
1. 脚本功能
备份容器中的mysql数据库到宿主机上,自动删除7天前的备份文件
2. 脚本内容
#!/bin/bash
# auth Eric
source /etc/profile
# 设置备份目录和文件名
backup_directory="/app/backup"
#测试名字用%Y%m%d%H%M%S正式可以用%Y%m%d
backup_filename="test_$(date +%Y%m%d).sql"# 设置MySQL连接参数
mysql_host="localhost"
mysql_user="root"
mysql_port="3306"
mysql_password="a12345"
mysql_database="testdb"# 创建备份目录(如果不存在)
mkdir -p "$backup_directory"# 执行备份命令
docker exec mysql /bin/bash -c 'mysqldump -u'"$mysql_user"' -p'"$mysql_password"' --port='"$mysql_port"' '"$mysql_database" > $backup_directory/$backup_filename#删除7天前数据
find $backup_directory -name "test_*.sql" -mtime +7 -exec rm {} \;# 检查备份是否成功
if [ $? -eq 0 ]; thenecho "MySQL数据库备份成功:$backup_directory/$backup_filename"
elseecho "MySQL数据库备份失败"
fi
3. 如何使用
-
创建backupmysql.sh 填入上边的脚本内容
-
修改脚本中的配置项,备份目录、用户名、密码、端口号、数据库名字、备份周期等
-
手动执行脚本 sh /home/shell/backupmysql.sh 然后查看目的备份文件夹/app/backup是否有备份的sql文件,如果没有就排查脚本参数
-
设置定时任务执行脚本crontab -e
测试阶段可以使用每两分钟执行一次
*/2 * * * * sh /home/shell/backupmysql.sh
正式的可以每天备份一次
* * * * * sh /home/shell/backupmysql.sh
4. 更多资料
Linux cron定时任务常用方法