今天有个需求,需要每周末凌晨30分定时备份一下数据。
1. 首先先定义好cron表达式
我是再这个网站 http://cron.ciding.cc/
2. 我的数据库版本是liunx下的mysql5.7版本
1.创建目录
mkdir -p /data/backup/mysql
2.切换到目录下
cd /data/backup
3.用vim命令创建sh脚本文件,没有vim 用vi
vim mysql_backup.sh
4.脚本具体信息
#!/bin/bash #db_name='activiti' 数据库名 这里我注释了,因为我用-D备份所有库了, #如果你想备份单个库,把-D换成 $db_name backup_dir='/data/backup/mysql/' #备份到哪 current_time=$(date +'%Y-%m-%d_%H%M%S') #获取当前时间 filepath=$backup_dir$current_time'.sql.gz' #将backup_dir和时间组合起来,再加个后缀 echo '开始导出数据库...' mysqldump --defaults-extra-file=/data/backup/backup_mysql.cnf -D | gzip > $filepath echo '导出成功,文件名为: '$filepath echo '报错,导出失败!'5. 再用vi或者vim创建backup_mysql.cnf配置文件
[mysqldump] #max_allowed_packet = 400M # host=127.0.0.1 user=这里写用户名 password='这里写密码' [mysql] host=127.0.0.1 user=这里用户名 password='这里密码'6.赋予脚本权限
chmod 755 mysql_backup.sh
7.启动
sh mysql_backup.sh
如果启动的时候报错
解决方法:原因是因为没有mysqldump
# 查找mysql的安装路径 find / -name mysql -print # 找到bin目录的 /usr/local/mysql/bin/mysql # 设置软链接 ln -fs /usr/local/mysql/bin/mysqldump /usr/bin ln -fs /usr/local/mysql/bin/mysql /usr/bin8. 查看sql文件
gzip -dc 要查看的gz文件
3.创建定时任务
crontab命令的功能是在一定的时间间隔调度一些命令的执行
crontab -e
2. 每周末凌晨30分定时备份一下数据
30 00 * * 7 /data/backup/mysql_backup.sh # 每周末凌晨30分备份一次数据