linux mysql 备份
直接上代码
一,安装cron
1 安装cron sudo yum install cronie 2 启动cron sudo systemctl start crond 3 设置开机启动 sudo systemctl enable crond 4 查看任务 crontab -l 没有任务则显示:no crontab for root
二,备份脚本
#!/bin/bash # 备份文件要保存的目录 basepath='/data1/mysql/bak/' if [ ! -d "$basepath" ]; then mkdir -p "$basepath" fi # 备份数据库生成SQL文件 mysqldump -uroot -p'pwd' database1 > $basepath$(date +%Y%m%d)_database1.sql mysqldump -uroot -p'pwd' database2 > $basepath$(date +%Y%m%d)_database2.sql mysqldump -uroot -p'pwd' database3 > $basepath$(date +%Y%m%d)_database3.sql cd $basepath # 将生成的SQL文件压缩 tar zPcf $(date +%Y%m%d)_database1.tar.gz $(date +%Y%m%d)_database1.sql tar zPcf $(date +%Y%m%d)_database2.tar.gz $(date +%Y%m%d)_database2.sql tar zPcf $(date +%Y%m%d)_database3.tar.gz $(date +%Y%m%d)_database3.sql # 删除7天之前的备份数据 find $basepath -mtime +7 -name "*.tar.gz" -exec rm -rf {} \; # 删除生成的SQL文件 rm -rf $basepath/*.sql
在当前路径下,执行:
./mysqlbak.sh
显示这个代表成功:mysqldump: [Warning] Using a password on the command line interface can be insecure.
如果报错:-bash: ./mysqlbak.sh: cannot execute: required file not found 1 设置权限 chmod -R 777 /data1 2 查看文本格式 cat -A mysqlbak.sh 如果发现:^M$ 字符说明是windows格式 3 设置Linux格式 sed -i "s/\r//" mysqlbak.sh 4 再次启动 ./mysqlbak.sh
三,设置cron任务
1 设置cron任务(vim编辑) crontab -e 2 设置cron参数(每7天早上2点执行) 0 2 */7 * * sh /data1/mysqlbak.sh 3 保存退出后显示 crontab: installing new crontab 4 重启cron systemctl restart crond

浙公网安备 33010602011771号