通过shell脚本写一个mysql全量备份数据库的mysqldump命令,将备份的sql数据压缩成gzip包。使用linux的crontab定时运行该脚本。由于备份的数据量大,每天的备份数据都占用很大的硬盘空间,备份完成后删除之前的多少天的备份数据。
vi /home/itency/cron/db_backup.sh,新增shell脚本文件。
#!/bin/bash
source ~/.bash_profile
#数据库安装路径
MYSQL_DIR=/usr/local/mysql
#数据库用户名
MYSQL_USER=itency
#数据库密码
MYSQL_PWD='itency'
#数据库
MYSQL_DB=itency
#备份路径
BACKUP_DIR=/home/itency/dbbackup
#新生成的备份文件名称
FILE_NAME=$BACKUP_DIR/$_`date +"%Y%m%d"`.sql.gz
echo ".............start FILE_NAME=$"
#判断要备份的文件名是否已经存在,存在则删除
if [ -f "$FILE_NAME" ]; then
TODATE=`date +"%Y%m%d"`
find $BACKUP_DIR -name "*$.sql.gz" -exec rm -rf {} \;
fi
echo "backup database $"
#备份数据库并压缩成gzip格式文件
$MYSQL_DIR/bin/mysqldump -h localhost -P 3306 -u $MYSQL_USER -p$ $ | gzip -9 > $
#生成3天前的日期
BFD=`date -d "3 days ago" +%Y%m%d`
if [ -f "$FILE_NAME" ]; then
#删除三天前的备份文件
find $BACKUP_DIR -name "*$.sql.gz" -exec rm -rf {} \;
fi
echo ".............end..............FILE_NAME=$"
crontab -e配置每天凌晨4点定时执行脚本,并将执行的日志输出到db_backup.log
[itency@izwz9azczon7vvagpnwukvz cron]$ crontab -e
0 4 * * * /home/itency/cron/db_backup.sh >> /home/itency/cron/db_backup.log
领取专属 10元无门槛券
私享最新 技术干货