7、shell编程之综合案例

shell编程的综合案例

需求分析:

(1)、每天凌晨2:10备份数据库 atgulguDB到/data/backup/db

(2)、备份开始和备份结束能够给出相应的提示信息

(3)、备份后的文件要求以备份时间为文件名,并打包成.tar.gz的形式,比如:

              2018-03-12_230201.tar.gz

(4)、在备份的同时,检查是否有10天前备份的数据库文件,如果有,就将其删除

思路分析:

 

    

cd /usr/sbin

vim mysql_db_backup.sh

#!/bin/bash

#完成数据库的定时备份

#定义备份路径

BACKUP=/data/backup/db

#当前的时间作为文件名

DATATIME=$(date +%Y _%m _%d _%H%M%S)

#可以输出变量调试一下

#echo ${DATATIME}

echo "============开始备份==========="

echo "============备份的路径是$BACKUP/$DATETIME.tar.gz"

#主机

HOST=localhost

#用户名

DB_USER=root

#密码

DB_PWD=root

#备份的数据库名

DATABASE=athuiguDB

#创建备份的路径

#如果备份的路径文件存在,就使用,否则就创建

[ ! -d "$BACKUP/$DATETIME" ] && mkdir -p "$BACKUP/$DATETIME"

#执行mysql的备份数据库指令

mysqldump -u${DB_USER} -p${DB_PWD} --host=$$HOST $DATABASE |gzip > $BACKUP/$DATETIME/$DATETIME.sql.gz

#打包备份文件

cd $BACKUP

tar -zcvf $DATETIME.sql.gz $DATETIME

#删除临时目录

rm -rf $BACKUP/$DATETIME

#删除10天前的备份文件

find $BACKUP -mtime +10 -name "*.tar.gz" -exec rm -rf {} \;

echo "=========备份文件成功==========="

 

 

crontab -e

10 2 * * * /usr/sbin/mysql_db_backup.sh

 

 

posted @   拾柴慢热  阅读(66)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示