linux備份指令碼(以web為例)

來源:互聯網
上載者:User

標籤:shell指令碼自動備份apache

    linux伺服器中要定期對某一塊東西自動備份很有必要,這時就要用到shell指令碼來寫啦。這裡以備份Apache伺服器為例,為了方便演練,這裡用的Apache是用yun安裝的,如果想對源碼安裝的Apache做自動備份,只需改動相應代碼即可。

    [[email protected] ~]# vi bak_web1.sh

    #!/bin/bash

    #name:bak_web.sh

    #description:this is used to back up web script

    

    mypath="/var/bak_web"  ///將備份出來的東西放在指定目錄下,這個目錄可以是smb分享出來的,也可以是建立在lvm上的

    mylog="/var/log/weblog.txt"   ///將每次備份做一次記錄,將每次記錄都集中儲存在這個指定的檔案下(也就是日誌),這裡的日誌目錄以及備份目錄都是自己根據實際指定的。

    time=`date +%Y-%m-%d-%H:%M`    ///定義每次執行備份要用到的時間變數

    if [ ! -d "$mypath" ];then     ///判斷備份目錄是否存在,如果不存在就建立這個目錄

        mkdir "$mypath"

    fi

    

    mkdir -p $mypath/$time/conf   ///分別建立相應要備份的內容的目錄,為的是便於管理

    mkdir -p $mypath/$time/web

    

    cd /etc/httpd/conf/

    tar zcf $mypath/$time/conf/httpd.conf.tar.gz ./httpd.conf  ///將Apache的設定檔打包壓縮,取名為httpd.conf.tar.gz,放在$mypath/$time/conf目錄下

    ret=$?

    if [ $ret -eq 0 ];then   ///判斷上面的打包壓縮動作是否做成功了,如果做成功了,就追加寫一條“成功”的記錄,否則寫一條“失敗”的記錄

        echo "At $time tar htpd.conf.tar.gz successed" >> $mylog

    else

        echo "At $time tar httpd.conf.tar.gz failed" >> $mylog

    fi

    cd /var/www/

    tar zcf $mypath/$time/web/html.tar.gz ./html   ///將Apache的根目錄下的各檔案打包壓縮,取名為html.tar.gz,放在$mypath/$time/web目錄下,類似的還可以備份資料庫db的

    ret=$?

    if [ $ret -eq 0 ];then   ///判斷上面的對Apache根目錄打包壓縮是否做成功了,如果做成功了就追加一條“成功”記錄到$mylog,否則寫一條“失敗”記錄

        echo "At $time tar html.tar.gz successed" >> $mylog

    else

        echo "At $time tar html.tar.gz failed" >> $mylog

    fi

指令碼到這裡完成,用bash bak_web1.sh執行以下,發現在/var/bak_web/下產生了新的內容,同時在/var/log/weblog.txt記錄檔中會有新的記錄。

將該指令碼添加到crontab下,讓其每隔一定時間自動執行一次。我這裡設定的是每隔1分鐘執行一次,指令碼放在/root/目錄下,指令碼沒執行一次,/var/bak_web/目錄下以及/var/log/weblog.txt記錄檔中都會有新的內容增加。

    [[email protected] ~]# crontab -e

    */1 * * * * bash /root/bak_web1.sh

    用tail -f /var/log/weblog.txt可以試試查看日誌變化

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/40/CF/wKiom1PPcIHxrnPpAALCrqAEP1Q163.jpg" title="web.jpg" alt="wKiom1PPcIHxrnPpAALCrqAEP1Q163.jpg" />


650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/40/D0/wKioL1PPchHx_gigAAOFoQDEFmw595.jpg" title="web2.jpg" alt="wKioL1PPchHx_gigAAOFoQDEFmw595.jpg" />

結果表明此指令碼可以按時健康有效運行。

本文出自 “個人感受” 部落格,謝絕轉載!

linux備份指令碼(以web為例)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.