<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算法常常被用來驗證網絡文件傳輸的完整性,防止文件被人篡改。MD5 全稱是報文摘要算法(Message-Digest Algorithm 5),此算法對任意長度的信息逐位進行計算,產生一個二進制長度為128位(十六進制長度就是32位)的“指紋”(或稱“報文摘要”),不同的文件產生相同的報文摘要的可能性是非常非常之小的。
    在linux或Unix上,md5sum是用來計算和校驗文件報文摘要的工具程序。一般來說,安裝了Linux后,就會有md5sum這個工具,直接在命令行終端直接運行。
    1、使用md5sum來產生指紋(報文摘要)命令如下:
    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
    然后如果驗證成功,則會輸出:正確結果。
    實戰案例:
    需求:虛擬機存在多份備份,當進行備份恢復時,要求檢查源備份壓縮文件的完整性。那么可以通過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中可以通過點(.)的方式將腳本引入。該函數內如下:
    # 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內容:
    $ 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"

    檢測結果:
    $ 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 閱讀(2440) 評論(0)  編輯  收藏 所屬分類: Linux

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

    常用鏈接

    留言簿(4)

    隨筆分類

    隨筆檔案

    文章檔案

    新聞分類

    新聞檔案

    相冊

    收藏夾

    Java

    Linux知識相關

    Spring相關

    云計算/Linux/虛擬化技術/

    友情博客

    多線程并發編程

    開源技術

    持久層技術相關

    搜索

    •  

    積分與排名

    • 積分 - 358616
    • 排名 - 154

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 永久免费精品影视网站| 少妇太爽了在线观看免费视频| 亚洲精品无码久久毛片| 免费看无码特级毛片| 亚洲国产精品人久久电影| 国产精品免费视频播放器| 中文字幕在线视频免费| 亚洲国产福利精品一区二区 | 国产免费卡一卡三卡乱码| 两个人看的www免费高清| 亚洲一区动漫卡通在线播放| 亚洲精品专区在线观看| 久久九九兔免费精品6| 日本永久免费a∨在线视频| 亚洲一区二区三区首页| 四虎精品亚洲一区二区三区| 最近最新高清免费中文字幕| 国产精品久久亚洲一区二区| 亚洲老熟女@TubeumTV| 亚洲人成无码网WWW| 三年片在线观看免费大全| 久久国产美女免费观看精品| 亚洲日本va一区二区三区| 亚洲无线观看国产精品| 日韩免费毛片视频| 三年片在线观看免费观看大全动漫| 亚洲日韩精品无码专区加勒比| 亚洲VA成无码人在线观看天堂| 在线免费不卡视频| 91精品手机国产免费| xxxxx做受大片在线观看免费| 亚洲色精品VR一区区三区| 亚洲不卡中文字幕无码| 免费大片黄手机在线观看| 青青草国产免费久久久下载| 67pao强力打造高清免费| 大地资源网高清在线观看免费| 美女被免费网站在线视频免费 | 亚洲伊人色欲综合网| 蜜桃精品免费久久久久影院| 亚洲免费观看网站|