Linux下crontab定时备份mysql数据库
 1、创建文件夹保存备份的sql文件2、添加备份脚本3、修改mysql配置文件4、通过crontab添加定时任务执行脚本5、验证是否定时备份6、资料补充
 
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/,该网站目前还在更新,常见的表达式里面可以自己生成。