Linux下crontab定时备份mysql数据库

时间:2020-9-4 作者:admin


Linux下crontab定时备份mysql数据库

1、创建文件夹保存备份的sql文件

	#任意切换一个目录下(我这里是根目录下)
	cd /
	
	#创建存储目录
	mkdir backup

2、添加备份脚本

	#创建脚本文件
	vim backupdb.sh

	#在脚本文件里面添加这三行配置
	db_name="xxx" #数据库名称
	name="$db_name-$(date +"%Y-%m-%d %H:%M:%S")" #生成备份文件的名称(包含数据库名和日期)
	/usr/local/mysql/bin/mysqldump $db_name >> /backup/$name.sql #生成备份sql文件

3、修改mysql配置文件

	#编辑my.cnf文件(方便数据库备份时自动填入用户名密码)
	vim /etc/my.cnf
	
	#添加如下配置
	[mysqldump]
	user=xxx #数据库用户
	password=xxx #数据库密码
	
	#添加完成记得重启mysql服务
	service mysqld restart(或者 service mysql restart ,视版本而定)

4、通过crontab添加定时任务执行脚本

 	#编辑定时任务
	crontab -e

	#添加如下配置
	*/1 * * * * /bin/sh /backupdb.sh #每一分钟执行备份任务

5、验证是否定时备份

 	#查看定时任务执行纪录
 	vim /var/log/cron

	#滑动到最后一行,如果出现如下所示的错误:
	(root) MAIL (mailed 130 bytes of output but got status 0x007f#012)
	出现这个错误有很大可能是路径没有写上全路径,请确保正确:(/usr/local/mysql/bin/mysqldump $db_name >> /backup/$name.sql)、(*/1 * * * * /bin/sh /backupdb.sh)
	
	#如果出现如下所示的错误:
	(root) MAIL (mailed 192 bytes of output but got status 0x004b#012)
	出现这个错误是执行脚本权限问题,进行以下操作:
	chmod u+x backupdb.sh

	#切换到备份目录(cd /backup),执行命令(ls -lh)查看所有备份文件大小,大小不是0的话说明已经备份成功。
	

6、资料补充

 	推荐一个crontab表达式的网站:https://tool.lu/crontab/,该网站目前还在更新,常见的表达式里面可以自己生成。
声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。