实现需求:每天凌晨2点对Linux服务器上的mysql数据库进行自动备份。
实现步骤:1,编写数据库备份脚本 2,编写crontab定时任务
1,编写数据库备份脚本
mysql数据库导出脚本,脚本名称可以定义为 “db-backup.sh”,内容如下:
/usr/bin/mysqldump -u root -p flightboot | gzip > /usr/local/backup/flightboot-bak.sql.gz
可以手动执行一下脚本,可以正常备份。但是如果将该脚本添加到定时任务中,是有问题的,因为该脚本手动执行的时候,需要输入密码,而定时任务是不可能手动输入密码的。解决该问题,只需要将数据库用户名和密码放到一个配置文件中,并修改脚本即可。
配置文件名称 “.my.cnf” ,将该文件放到根目录(root)下,文件内容:
[mysqldump]
user="root"
password ="123456"
修改文件权限,只允许当前用户使用:
chmod 600 .my.cnf
修改脚本,只需要将脚本中的 “-p” 去掉即可,修改后如下:
/usr/bin/mysqldump -u root flightboot | gzip > /usr/local/backup/flightboot-bak.sql.gz
2,编辑定时任务
编辑定时任务命令:
crontab -e
定时任务内容:
0 2 * * * /usr/local/backup/db-backup.sh