Linux下Mysql定时备份数据
1.编写定时任务需要执行的脚本内容。(本次示例为定时备份mysql数据库)
编写备份数据库脚本bakmysql.sh,内容如下:
#!/bin/bash #Name:bakmysql.sh #This is a ShellScript For Auto DB Backup and Delete old Backup #备份目录 backupdir=/home/app/bak #备份文件后缀时间,用于区分备份文件名 time=` date +%Y % m % d % H % M ` #需要备份的数据库名称 db_name=gzrd_lf_menu #mysql 用户名 db_user=root #mysql 密码 db_pass=root123456 mysqldump -u $db_user -p $db_pass $db_name - -hex -blob | gzip > $backupdir /$db_name $time .sql.gz #删除7天前的备份文件 find $backupdir -name $db_name "*.sql.gz" -type f -mtime +7 -exec rm -rf {} \; > /dev/null 2>&1 部分参数说明:- -hex -blob 解决blob数据类型引起的mysqldump乱码问题 -type f 表示查找普通类型的文件,f表示普通文件。 -mtime +7 按照文件的更改时间来查找文件,+7表示文件更改时间距现在7天以前;如果是 -mmin +7 表示文件更改时间距现在7分钟以前。 -exec rm {} \; 表示执行一段shell命令,exec选项后面跟随着所要执行的命令或脚本,然后是一对儿{ },一个空格和一个\,最后是一个分号。 编写完之后保存。 给对应用户可以执行这个脚本的权限,这里直接给所有的权限。 chmod 777 bakmysql.sh |
2.配置定时计划:
vi /etc/crontab 编辑文件(如果没有安装corntab,用yum命令安装一下, yum -y install crontab)
在最后一行加入定时计划的配置。
0 0 * * * /home/app/bakmysql.sh //每天0时0分执行bakmysql.sh的脚本内容
说明:crontab配置文件格式如下:
分 时 日 月 周 命令
保存退出,重启crontab:
crontab /etc/crontab
查看定时任务:
crontab -l