Centos 定時備份資料

來源:互聯網
上載者:User

標籤:centos 通過計劃任務定時備份資料

Centos 通過計劃任務定時備份資料

今年公司買了一套OA產品,對於功能現在都還處在開發和設定階段,作為管理員的我,需要對每天的資料及對應的資料庫進行定期備份,因為OA產品是運行在Linux上的,所以我們需要Linux上配置shell指令碼,然後通過計劃任務來實現對資料的定時備份,對於相關指令碼內容見下即可,但是需求是需要對指定的目錄進行壓縮然以日期進行命名,最終移動到指定的路勁即可。對於linux上的計劃任務程式跟windows上的很相似,windows上我們可以直接運行taskschd.msc就可以開啟,然後建立任務嚮導即可,但是在linux上比windows上的操作更簡單,只需要串連對應的參數即可。linux上計劃任務的命令為crontab ,通過後面的參數即可配置;我們可以通過man crontab查看相關協助。

-e:編輯某個使用者的crontab檔案內容。如果不指定使用者,則表示編輯目前使用者的crontab檔案。-l:顯示某個使用者的crontab檔案內容,如果不指定使用者,則表示顯示目前使用者的crontab檔案內容。-r:從/var/spool/cron目錄中刪除某個使用者的crontab檔案,如果不指定使用者,則預設刪除目前使用者的crontab檔案。-i:在刪除使用者的crontab檔案時給確認提示。

同樣:crontal 的參數格式為  * * * * *    

一個 * 一小時當中的第幾分鐘 0-59

第二個 * 一天當中的第幾個小時 0-23

第三個 * 一個月當中的第幾天 1-31

第四個 * 一年當中的第幾個月 1-12

第五個 * 一周當中的星期幾 1-7

650) this.width=650;" src="http://s1.51cto.com/wyfs02/M00/84/6D/wKioL1eQeIiDab9qAABpOTSNdZY800.png-wh_500x0-wm_3-wmp_4-s_1231603257.png" title="1.png" alt="wKioL1eQeIiDab9qAABpOTSNdZY800.png-wh_50" />

配置介紹完了,我們就開始工作吧

我們通過ls –l查看當前的目錄結構

我們已經寫好指令碼了,該指令碼叫databackuper.sh,然後我們需要將/data目錄下的Weaver目錄資料壓縮備份到waver_back目錄中,然後以日期命名;

主要一定要在執行shell指令碼的時候給指令碼添加執行許可權;chmod +x databackuper.sh   添加執行許可權

我們在指令碼中定義兩個參數,$1 、$2,這樣定義的話就比較靈活,當有多個檔案需要備份的話,可以使用這樣的方式,然後在執行shell的時候,我們需要在shell指令碼後添加兩個參數,一個是源,一個目標路勁;

./databackuper.sh /DATA/WEAVER /DATA/WEAVER_BACKUP
#!/bin/bash   SOURCE=$1    TARGET=$2    CPEXEC=$(which cp)    MKDIREXEC=$(which mkdir)    CURDATE=$(date +%Y-%m-%d)    BAKDIRTMP=${SOURCE%*/}    BAKDIRNAME=${BAKDIRTMP##*/}$CURDATE    BASEDIR=${BAKDIRTMP%/*}if [ ! -d "$SOURCE" ]; then           echo "$(date +%Y-%m-%d_%H:%M:%S) - The source $SOURCE is not existed you specified" >>/var/log/${BAKDIRTMP##*/}.log            exit 2        fi    if [ ! -d "$TARGET" ]; then           echo "$(date +%Y-%m-%d_%H:%M:%S) - The target $TARGET is not existed you spec        ified" >>/var/log/${BAKDIRTMP##*/}.log            exit 22        fi# $MKDIREXEC -p $TARGET/$BAKDIR   # $CPEXEC -rf $SOURCE/* $TARGET/$BAKDIR/cd $TARGET && tar zcf ${BAKDIRNAME}.tar.gz -C $BASEDIR ${BAKDIRTMP##*/}if [ "$?" -ne 0 ]; then      echo "$(date +%Y-%m-%d_%H:%M:%S) - Backup directory: $SOURCE to $TARGET/${BAKDIRNAME}.tar.gz is failed" >>/var/log/${BAKDIRTMP##*/}.log          else             echo "$(date +%Y-%m-%d_%H:%M:%S) - Backup directory: $SOURCE to $TARGET/${BAKDIRNAME}.tar.gz is successful" >>/var/log/${BAKDIRTMP##*/}.log    fi    exit 0

上面的方式就是比較有擴充性,然後我們也可以直接修改變數

#!/bin/bash   SOURCE=/DATA/WEAVER    TARGET=/DATA/WEAVER_BACKUPCPEXEC=$(which cp)   MKDIREXEC=$(which mkdir)    CURDATE=$(date +%Y-%m-%d)    BAKDIRTMP=${SOURCE%*/}    BAKDIRNAME=${BAKDIRTMP##*/}$CURDATE    BASEDIR=${BAKDIRTMP%/*}if [ ! -d "$SOURCE" ]; then       echo "$(date +%Y-%m-%d_%H:%M:%S) - The source $SOURCE is not existed you specified" >>/var/log/${BAKDIRTMP##*/}.log        exit 2        fiif [ ! -d "$TARGET" ]; then       echo "$(date +%Y-%m-%d_%H:%M:%S) - The target $TARGET is not existed you spec    ified" >>/var/log/${BAKDIRTMP##*/}.log        exit 22    fi# $MKDIREXEC -p $TARGET/$BAKDIR   # $CPEXEC -rf $SOURCE/* $TARGET/$BAKDIR/cd $TARGET && tar zcf ${BAKDIRNAME}.tar.gz -C $BASEDIR ${BAKDIRTMP##*/}if [ "$?" -ne 0 ]; then      echo "$(date +%Y-%m-%d_%H:%M:%S) - Backup directory: $SOURCE to $TARGET/${BAKDIRNAME}.tar.gz is failed" >>/var/log/${BAKDIRTMP##*/}.log        else       echo "$(date +%Y-%m-%d_%H:%M:%S) - Backup directory: $SOURCE to $TARGET/${BAKDIRNAME}.tar.gz is successful" >>/var/log/${BAKDIRTMP##*/}.log    fi    exit 0

這樣的話,我們直接執行即可,就不用添加任何參數了

./databackuper.sh  執行即可;

然後我們定義計劃任務進行備份,我們準備每天晚上23:30進行備份一次

crontal –e30 23 * * *  /root/DATA/databackuper-new.sh

每天晚上23:30  執行一次  /root/data/databackuper-new.sh  指令碼一次

650) this.width=650;" title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;margin:0px;padding-right:0px;" border="0" alt="image" src="http://s3.51cto.com/wyfs02/M00/84/6B/wKioL1eQY32jOrQYAAArOM7Tc6k028.png" height="161" />

本文出自 “高文龍” 部落格,請務必保留此出處http://gaowenlong.blog.51cto.com/451336/1828368

Centos 定時備份資料

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.