1. 编写备份数据库脚本.
使用vim bkDatabase.sh 将下面命令粘贴.保存后退出。使用 vim 命令创建你的备份脚本。比如: vim bkDatabase.sh 。将 前7行代码中的内容替换成你Mysql的配置内容
MYSQL_HOST=localhost
MYSQL_PORT=3306
USERNAME=root
PASSWORD=root
DATABASE=xm-contract
FOLDER=/home/soft/database_backup
MYSQL_HOME=/usr/bin
date=`date +%Y-%m-%d-%H:%M:%S`
FILE_NAME=$DATABASE
mkdir -p $FOLDER
# 数据库备份
echo "start mysqldump"
$MYSQL_HOME/mysqldump -u$USERNAME -p$PASSWORD --single-transaction --set-gtid-purged=OFF --host=$MYSQL_HOST -P $MYSQL_PORT --databases $DATABASE --routines --events|gzip >$FOLDER/$FILE_NAME.$date.sql.gz
# 删除30天前的文件
find $FOLDER -mtime +30 -name "*.sql.gz" -exec rm -rf {} \;
2. 编写数据库还原脚本
使用 vim 命令创建你的还原备份脚本。比如: vim gzDatabase.sh 。需要注意的是脚本中的FILEPATH是你要还原哪一个备份的文件名。
MYSQL_HOST=localhost
MYSQL_PORT=3306
USERNAME=root
PASSWORD=ROOTROOT
FILEPATH=/home/soft/database_backup/xm-contract.2020-09-23-20:02:07.sql.gz
MYSQL_HOME=/usr/bin
gunzip < $FILEPATH | mysql -h $MYSQL_HOST -P $MYSQL_PORT -u$USERNAME -p$PASSWORD
3.开放脚本执行权限
chmod u+x BKDatabase.sh
-
解释:
chmod是权限管理命令change the permissions mode of a file的缩写。。
u代表所有者,x代表执行权限。 + 表示增加权限。
chmod u+x file.sh 就表示对当前目录下的file.sh文件的所有者增加可执行权限。。。
4.添加定时任务
- Linux系统上面执行定时任务,可以使用crontab -e直接编辑定时任务即可。先使用 which crontab查看当前系统是否安装了crontab。若没有安装使用下面命令安装1.安装crontab 命令: yum install cixie-cron yum install crontabs 2.开启crontab服务 命令: service crond start //启动服务 service crond stop //关闭服务 service crond restart //重启服务 3.查看crontab服务状态:service crond status
1.安装crontab 命令: yum install cixie-cron yum install crontabs 2.开启crontab服务 命令: service crond start //启动服务 service crond stop //关闭服务 service crond restart //重启服务 3.查看crontab服务状态:service crond status
- 设置定时脚本
使用命令:crontab -e 进入后编写想要执行的脚本。如图,我将定时任务设置成了每天晚上23点55分执行备份脚本 - 常见的定时任务示例 crontab中定时任务的描述格式:minute hour day month dayofweek command
- 在凌晨00:01执行
1 0 * * * /home/linrui/XXXX.sh
- 每个工作日23:59都进行备份作业。
59 11 * * 1,2,3,4,5 /home/linrui/XXXX.sh
- 每分钟运行一次命令
*/1 * * * * /home/linrui/XXXX.sh
- 每个月的1号 14:10 运行
10 14 1 * * /home/linrui/XXXX.sh
- 在凌晨00:01执行