shell脚本以下: 借鉴网址:https://www.cnblogs.com/mracale/p/7251292.html
命名为mysql_backup.shhtml
#!/bin/bash /usr/local/mysql/bin/mysqldump #保存备份个数 number=2 #备份保存路径 backup_dir=/root/mysqlbackup #日期 dd=`date +%Y%m%d` #备份工具 这里用绝对路径 不然定时任务找不到工具,导出为空 tool=/usr/local/mysql/bin/mysqldump #用户名 username=root #密码 password=654321 #将要备份的数据库 database_name=database_name #简单写法 mysqldump -u root -p123456 users > /root/mysqlbackup/users-$filename.dump $tool -u $username -p$password $database_name > $backup_dir/$database_name-$dd.dump #写建立备份日志 echo "create $backup_dir/$database_name-$dd.dupm" >> $backup_dir/log.txt #找出须要删除的备份 delfile=`ls -l -crt $backup_dir/*.dump | awk '{print $9 }' | head -1` #判断如今的备份数量是否大于$number count=`ls -l -crt $backup_dir/*.dupm | awk '{print $9 }' | wc -l` if [ $count -gt $number ] then rm $delfile //删除最先生成的备份,只保留number数量的备份 #写删除文件日志 echo "delete $delfile" >> $backup_dir/log.txt fi
直接运行sh mysql_backup.sh 便可备份
遇到的坑: 一、链接本地虚拟机服务器,服务器上的时间设置的不是北京时间。看本地电脑时间,设置延迟几分钟,脚本一直未执行。 能够在命令行输入date [root[@bogon](https://my.oschina.net/u/3914826) ~]# date 2019年 04月 03日 星期三 16:49:18 GMT
对比和本地电脑时间是否一致。 二、crontab -e 建立定时任务时间 crontab -l 查看定时任务mysql
[root@bogon ~]# crontab -l # 定时备份数据库任务 天天11点9分执行任务 9 11 * * * /mysql_backup.sh [root@bogon ~]#
注意sh脚本前不须要加sh 或./执行脚本。sql