shell脚本实例(运维shell脚本经典实例)

由于这几天比较忙,今天才继续发出这一份实例,这个是我们经常会用的备份对数据库,但是我本次给出的是对数据库目录data进行备份,跟直接备份某一个数据库还是存在区别的,这个后续会有一个专门的实例发出来,今天就先看下这个案例吧:

#!/bin/env/bash

# 定义参数存时间

DAY=`date +%Y%m%d`

# 查看对应data文件夹大小

SIZE=`du -sh /usr/local/mysql/data | awk ‘{print $1}’`

# 每天备份前先将时间和文件大小写入信息记录文件

echo “Date: $DAY” >> /tmp/dbinfo.txt

echo “Data Size: $SIZE” >> /tmp/dbinfo.txt

# 进入到数据所在路径

if [ -d “/opt/dbbak” ]; then

# 存在情况直接执行压缩命令

tar zcvPf /opt/dbbak/mysqlbak-${DAY}.tar.gz /usr/local/mysql/data > /dev/null

else

# 不存在的情况下需要先创建

mkdir -p /opt/dbbak

tar zcvPf /opt/dbbak/mysqlbak-${DAY}.tar.gz /usr/local/mysql/data > /dev/null

fi

# 每次完成后清理dbinfo文件

rm -rf /tmp/dbinfo.txt

我们能看到在压缩tar包的时候参数有一个P,这是因为tar只能压缩相对路径,如果要采用绝对路径就必须加参数P且必须在参数f之前,否则会报错,大家可以试试,也可以做成定时任务,使用crontab -e ,这个大家可以百度下看看

原创文章,作者:admin,如若转载,请注明出处:https://www.qq65hfghe5.com/tg/154458.html