linux设置crontab定时执行脚本备份mysql

前言:mysqldump备份数据库命令

mysqldump -u root -psztx@2018 fengliuxiaosan > /dbbackup/fengliuxiaosan.sql
###mysqldump -u 用户 -p密码 数据库名 > 存放路径/数据库名.sql

使用命令 crontab -e 然后直接编辑定时脚本。

这样执行以后,属于用户自定义的,会被写到 /var/spool/cron 目录下,生成一个和用户名一致的文件,文件内容就是我们编辑的定时脚本。

如:

[root@localhost ~]# crontab -l
*/1 * * * * /usr/bin/curl http://www.xxx.com/Scheduled/Index
1 3 * * *   /bin/sh  /dbbackup/backup.sh   ##就是这一条定时任务,

新建备份目录和创建backup.sh脚本文件,这些命令和目录都可以自定义

mkdir /dbbackup
cd /dbbackup/
vi backup.sh

下面看这个backup.sh的代码

#!/bin/bash
user=root                ##数据库用户名
passwd=fengliuxiaosan             ###数据库密码
back_dir="/dbbackup"  ##指定保存备份数据库的目录
dbname="fengliuxiaosan"        ###指定数据库名
date=`date +%F`       ##指定命名
mysqldump -u $user -p$passwd $dbname > $back_dir/$dbname-$date.sql          ###使用mysqldump来执行备份指定数据库
tar -czvf $back_dir/$dbname-$date.tar.gz  $back_dir/$dbname-$date.sql       ##打包压缩备份的sql文件为.tar.gz格式
rm -f $back_dir/$dbname-$date.sql                                            ###删除备份的sql文件,因为上面已经压缩了。这个就不需要了
find $back_dir -mtime +30 -name "*.tar.gz" -exec rm -rf {} ;               ###执行指定时间查找命令,删除时间格式多的压缩包。不然每天压缩一个,磁盘会占满。

 最后别忘了给执行的权限!

chmod +x backup.sh

 完成,就等时间查看目录的压缩包文件。

原文地址:https://www.cnblogs.com/Crazy-Liu/p/10904789.html