天天看点

文件备份脚本

#!/bin/bash


#备份存储路径
# 加判断是否存在,创建、报警,继续备份
bakdir=/data/backup/fileback
#要备份的路径
filedir=/docker/bitbucket/var/
#备份日志记录
logdir=/tools/backup/filebaklog/`date +%w`filebackup.log
#邮件接收人
[email protected]




#获取ip
get_ip()  {

    #cmd_get_ip = "/sbin/ifconfig |grep 'inet addr'|awk -F\: '{print $2}'|awk '{print $1}' | grep -v '^127' | grep -v '192'"
    #cmd_get_ip = "ifconfig |grep 'inet addr'|awk -F\: '{print $2}'|awk '{print $1}' | grep -v '^127'"
    #return cmd_get_ip
    #cmd_get_ip=$(/sbin/ifconfig |grep 'inet 192.168.136'|awk -F ' ' '{print $2}'|awk '{print $1}')
    cmd_get_ip=$(/sbin/ifconfig |grep "192.168.1\." |awk -F ' ' '{print $2}'|tr -d "地址:"|tr -d "addr:")
    echo $cmd_get_ip
}

ip=$(get_ip)

#清理过期文件,执行备份
bak() {
#进入备份存储路径
cd $bakdir
# 清理6天前的备份
find ./ -name \*.tar.gz -mtime +6 -delete
#进入目录
cd $filedir
#执行备份
echo `date`'/docker/bitbucket/var/atlassian/路径备份开始' > $logdir
tar -zcvf $bakdir/`date +%Y%m%d`atlassian.tar.gz atlassian/ >> $logdir 2>&1 
echo `date`'/docker/bitbucket/var/atlassian/路径备份结束' >> $logdir
}


dubakdir() {
# 备份完成邮件通知备份情况
echo -e "备份存储路径:$bakdir\\n`ls -lh $bakdir/`" | mail -s $ip'文件备份情况成功' $receive
}


if [ -d $filedir ];then
    if [ -d $bakdir ];then
        bak
        dubakdir
    else
        echo $ip'备份存储路径被删除,即将重新建立,继续备份'| mail -s $ip'备份路径异常' $receive
        mkdir -p $bakdir
        bak
        dubakdir
    fi
else
    echo $ip'要备份目录丢失,备份失败'|mail -s $ip'目录备份失败' $receive
    dubakdir
fi