使用shell脚本对mysql定时备份
一、shell脚本
1.编写shell脚本,本例保存在/usr/sbin目录下,文件名为backupmysql.sh
#!/bin/sh
exec 2>/dev/null #有时脚本执行后发出警告,大概意思是说不安全
user=root #连接数据库用户
passwd=123456 #用户密码
database=test #数据库名
filename=$(date "+%Y%m%d") #文件名以年月日的形式保存
filepath=/backup #文件存储路径
mysqlpath=/usr/local/mysql #数据库安装路径
$mysqlpath/bin/mysqldump -u$user -p$passwd $database >$filepath/$database-$filename.sql #以日期为文件名,将指定数据库备份到指定目录下
注:确保备份文件存储路径有效
本例备份test库,以年月日+库名test+.sql的形式为文件名,保存在/backup目录下
2.赋予脚本执行权限
[root@andim ~]# chmod u+x /usr/sbin/backupmysql.sh
二、定时执行
1.设置定时任务(方法一)
[root@andim ~]# crontab -e
键盘输入i在 vi模式下加入一下内容
30 3 * * * /usr/sbin/backupmysql.sh
前五个参数分别代表【分钟,小时,天,星期,月】,最后一个参数为要执行的命令
注:以上内容代表root用户每天凌晨3:30执行/usr/local下的backupmysql.sh
1.设置定时任务(方法二)
[root@andim ~]# vi /etc/crontab
在最后一行插入以下内容
30 3 * * * username /usr/sbin/backupmysql.sh
前五个参数分别代表【分钟,小时,天,星期,月】,后面两个参数分别为执行者(username为已有用户的用户名)和执行的命令(执行/usr/sbin/目录下的backupmysql.sh脚本)
2.重启crontab服务(需要root权限)
[root@andim ~]# service crond restart