编写脚本
cd /
vim mysql_backup.sh
脚本代码如下:
#!/bin/bash
#定义变量信息
mysql_user="root"
mysql_password="123456"
mysql_host="localhost"
mysql_port="3306"
mysql_database="test"
backup_dir="/usr/local/mysql"
#backup_date=$(date +%Y%m%d%H%M%S)
backup_date=$(date +%Y%m%d)
echo "备份开始......"
# 备份数据库
/data/mysql/bin/mysqldump -h$mysql_host -P$mysql_port -u$mysql_user -p$mysql_password $mysql_database > $backup_dir/mysql_backup_$backup_date.sql
echo "备份结束!"
设置脚本可执行权限
chmod 777 mysql_backup.sh
设置定时任务,每天定时执行
编辑定时任务配置文件
vim /etc/crontab
新增在配置文件,最后一行,此处设置的是每分钟执行一次
*/1 * * * * root /mysql_backup.sh
格式定义如下图:
字段 | 描述 | 允许的值 |
---|---|---|
分钟 | 一小时的第几分 | 0-59 |
小时 | 一天的第几小时 | 0-23 |
日期 | 一个月的的第几天 | 1-31 |
月份 | 一年的第几个月 | 1-12 |
周几 | 一周的第几天 | 0-6 |
命令 | 命令 | 可以被执行的任何命令 |
常用格式:
crontab每分钟定时执行:
*/1 * * * * root /mysql_backup.sh //每隔1分钟执行一次
*/10 * * * * root /mysql_backup.sh //每隔10分钟执行一次
crontab每小时定时执行:
0 */1 * * * root /mysql_backup.sh //每1小时执行一次
0 */2 * * * root /mysql_backup.sh //每2小时执行一次
crontab每天定时执行:
0 10 * * * root /mysql_backup.sh //每天10点执行
30 19 * * * root /mysql_backup.sh //每天19点30分执行
crontab每周定时执行:
0 10 * * 1 root /mysql_backup.sh //每周一10点执行
30 17 * * 5 root /mysql_backup.sh //每周五17点30分执行
crontab每年定时执行:
0 10 1 10 * root /mysql_backup.sh //每年的10月1日10点执行
0 20 8 8 * root /mysql_backup.sh //每年的8月8日20点执行
重新加载,立即生效
crontab /etc/crontab
查看定时任务
crontab -l
备份效果截图: