<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 167,  comments - 30,  trackbacks - 0
    md5sum命令詳解:
    linux下的shell命令 ,制作md5碼 也用于軟件的md5校驗
    MD5算法常常被用來驗證網(wǎng)絡文件傳輸?shù)耐暾裕乐刮募蝗舜鄹摹D5 全稱是報文摘要算法(Message-Digest Algorithm 5),此算法對任意長度的信息逐位進行計算,產(chǎn)生一個二進制長度為128位(十六進制長度就是32位)的“指紋”(或稱“報文摘要”),不同的文件產(chǎn)生相同的報文摘要的可能性是非常非常之小的。
    在linux或Unix上,md5sum是用來計算和校驗文件報文摘要的工具程序。一般來說,安裝了Linux后,就會有md5sum這個工具,直接在命令行終端直接運行。
    1、使用md5sum來產(chǎn)生指紋(報文摘要)命令如下:
    md5sum filename > filename.md5 或者
    md5sum filename >>filename.md5
    也可以把多個文件的報文摘要輸出到一個md5文件中,這要使用通配符*,比如某目錄下有幾個iso文件,要把這幾個iso文件的摘要輸出到iso.md5文件中,命令如下:
    md5sum *.iso > iso.md5
    2、使用md5報文摘要驗證文件,方法有二:
    把下載的文件file和該文件的file.md5報文摘要文件放在同一個目錄下,然后用如下命令進行驗證:
    md5sum -c file.md5
    然后如果驗證成功,則會輸出:正確結(jié)果。
    實戰(zhàn)案例:
    需求:虛擬機存在多份備份,當進行備份恢復時,要求檢查源備份壓縮文件的完整性。那么可以通過md5這種方式來驗證。
    壓縮備份文件并生成md5碼,部分shell腳本如下:
    #----------------------------------
    log "Compressing and moving $SRC_PATH"
    exec_and_log "$SSH $SRC_HOST mkdir -p ${SRC_PATH}_compress"
    for file in `$SSH $SRC_HOST ls $SRC_PATH | grep -v $SN_SIGN`
    do
         exec_and_log "$SSH $SRC_HOST cd $SRC_PATH;sudo chmod -R +r $SRC_PATH/*;tar -Sczvf ${SRC_PATH}_compress/${file}.tgz ${file}"
    done
    #----------------------------------

    #--------------md5 begin-----------------
    log "Create backup.md5"
    exec_and_log "$SSH $SRC_HOST $MD5SUM ${SRC_PATH}_compress/*.tgz > ${SRC_PATH}_compress/backup.md5"
    #--------------md5 end-----------------

    #其中 exec_and_log是另一個公共腳本中定義的。shell中可以通過點(.)的方式將腳本引入。該函數(shù)內(nèi)如下:
    # Executes a command, if it fails returns error message and exits
    # If a second parameter is present it is used as the error message when
    # the command fails
    function exec_and_log
    {
        message=$2

        EXEC_LOG_ERR=`$1 2>&1 1>/dev/null`
        EXEC_LOG_RC=$?

        if [ $EXEC_LOG_RC -ne 0 ]; then
            log_error "Command \"$1\" failed: $EXEC_LOG_ERR"

            if [ -n "$2" ]; then
                error_message "$2"
            else
                error_message "Error executing $1: $EXEC_LOG_ERR"
            fi
            exit $EXEC_LOG_RC
        fi
    }

    # Logs a message, alias to log_info
    function log
    {
        log_info "$1"
    }

    # Log function that knows how to deal with severities and adds the
    # script name
    function log_function
    {
        echo "$1: $SCRIPT_NAME: $2" 1>&2
    }

    # Logs an info message
    function log_info
    {
        log_function "INFO" "$1"
    }

    # Logs an error message
    function log_error
    {
        log_function "ERROR" "$1"
    }

    # This function is used to pass error message to the mad
    function error_message
    {
        (
            echo "ERROR MESSAGE --8<------"
            echo "$1"
            echo "ERROR MESSAGE ------>8--"
        ) 1>&2
    }

    生成的backup.md5內(nèi)容:
    $ md5sum *.tgz > backup.md5 
    2c07174d451a687bc0e401b1dc7d84b8  checkpoint.1376892493.tgz
    57a18d7f6eed36565b9012e519985130  checkpoint.1376903188.tgz
    b652990806e58a81b41dc1b23db9adda  checkpoint.1376904023.tgz
    f4e7adb46a8fde2643e082875cc60e21  checkpoint.1376904289.tgz
    ad2a59902652e2896b35507417b7016f  checkpoint.tgz
    4bd43eac64f238bb35c7194816da7d23  deployment.0.tgz
    ee3d9266cf92f7540cc75a94343bc20a  deployment.7.tgz
    fcd5aae37354b5cb66f4b90544eaa5c3  disk.0.tgz
    c1ef6d911b441660ec2d1e44b5a56f66  disk.1.iso.tgz
    25eae70a31a7c7cff3baade4cd65fe82  disk.1.tgz

    檢查備份文件是否完整:
    exec_and_log "$SSH $SRC_HOST $MD5SUM -c ${SRC_PATH}/backup.md5"

    檢測結(jié)果:
    $ md5sum -c backup.md5 
    checkpoint.1376892493.tgz: OK
    checkpoint.1376903188.tgz: OK
    checkpoint.1376904023.tgz: OK
    checkpoint.1376904289.tgz: OK
    checkpoint.tgz: OK
    deployment.0.tgz: OK
    deployment.7.tgz: OK
    disk.0.tgz: OK
    disk.1.iso.tgz: OK
    disk.1.tgz: OK
    posted on 2013-08-20 11:34 David1228 閱讀(2445) 評論(0)  編輯  收藏 所屬分類: Linux

    <2013年8月>
    28293031123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿(4)

    隨筆分類

    隨筆檔案

    文章檔案

    新聞分類

    新聞檔案

    相冊

    收藏夾

    Java

    Linux知識相關(guān)

    Spring相關(guān)

    云計算/Linux/虛擬化技術(shù)/

    友情博客

    多線程并發(fā)編程

    開源技術(shù)

    持久層技術(shù)相關(guān)

    搜索

    •  

    積分與排名

    • 積分 - 359713
    • 排名 - 154

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 久久99国产亚洲高清观看首页| 国产视频精品免费视频| 亚洲AV永久无码精品成人| 在线观看免费大黄网站| 91青青青国产在观免费影视| a级毛片免费网站| 国产成人va亚洲电影| 亚洲熟女www一区二区三区| 亚洲一卡2卡三卡4卡有限公司| 国产偷窥女洗浴在线观看亚洲| 青青青国产免费一夜七次郎| 国产91免费视频| 无码av免费网站| a色毛片免费视频| 国产成人无码免费看片软件| 国产综合激情在线亚洲第一页| 国产亚洲福利在线视频| 亚洲精品亚洲人成在线播放| 亚洲精品国产啊女成拍色拍| 久久久综合亚洲色一区二区三区| 亚洲女久久久噜噜噜熟女| 亚洲一区二区三区在线视频| 全部免费a级毛片| 国产v片免费播放| 国产一级理论免费版| 国产美女精品视频免费观看| 国产卡一卡二卡三免费入口| 99久久久国产精品免费无卡顿| 最近免费中文字幕大全免费| 人妻无码一区二区三区免费| 99久久精品免费视频| 99久在线国内在线播放免费观看| 8x网站免费入口在线观看| 色欲色香天天天综合网站免费| 亚洲电影免费在线观看| 亚洲免费在线播放| 久草视频免费在线观看| 永久免费AV无码国产网站| 在线不卡免费视频| 日本一道高清不卡免费| 亚洲M码 欧洲S码SSS222|