天天看點

檔案備份腳本

#!/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