在Linux环境下,使用Shell脚本自动备份数据库,需要用到 crontab 定时任务,以下是使用 mysqldump 方式对数据库备份
1、新建shell脚本,这里命名为 dbbackup.sh
/usr/bin/mysqldump -u用户名 -p密码 -h 数据库IP -R --opt 要备份的数据库名 |gzip > /backup/mysqldata/`date +%Y-%m-%d-%H-%M-%S`.sql.gz
说明:
/usr/bin/mysqldump mysqldump路径,需要linux环境安装mysql
/backup/mysqldata 备份后的数据库要存储的位置,文件名以日期命名,文件名以日期命名,就实现了自动保留30天(比如比如15号备份的文件db-15.sql下个月15号的备份文件将会覆盖该文件)
需要填写数据库用户名、密码、数据库的IP、要备份的数据库
2、添加脚本执行权限
chmod +x /backup/mysqldata/dbbackup.sh
3、编辑定时任务
crontab -e
加入以下代码,表示每天凌晨3点,执行sh文件
00 03 * * * bash /backup/mysqldata/dbbackup.sh
说明:
00 03 * * * bash /backup/mysqldata/dbbackup.sh
代表意义 分钟 小时 日期 月份 周
数字范围 0-59 0-23 1-31 1-12 0-6
4、重启crond
systemctl restart crond.service
其他命令(CentOS 7)
1.查看服务的启动状态
systemctl status crond.service
2.启动服务
systemctl start crond.service
3.停止服务
systemctl stop crond.service
4.重启服务
systemctl restart crond.service
5.重新加载服务
systemctl reload crond.service
其他命令(CentOS 6)
1.查看服务的启动状态
service crond status
2.启动服务
service crond start
3.停止服务
service crond stop
4.重启服务
service crond restart
5.查看定时任务列表
crontab -l