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 ,这个大家可以百度下看看

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发表评论

登录后才能评论