上传更新后的文件 use scp

关于服务器与本地文件同步, 使用md5文件校验,把新的文件上传上去

#!/bin/bash

mk_md5_file() {
    for line in `ls $1`; do
        if [[ -d $line ]]; then
            mk_md5_file $1/$line
        else if [[ $line == "update.sh" ]] || [[ $line == "Makefile" ]]; then
            continue
        fi
            md5sum $1/$line >> .md5
        fi
    done
}


update_to() {
    mv .md5 .md5_old

    mk_md5_file .

    diff -y .md5 .md5_old | while read line ; do
        is_new_or_update=`echo $line | awk '{ print $3 }'`

        if [ $is_new_or_update == '|' ] || [ $is_new_or_update == '<' ]; then
            filename=`echo $line | awk '{ print $2 }'`

            echo "$filename is uploading..."
            scp -B $filename root@127.0.0.1:/usr/share/nginx/www/$filename 2>./.error.log

            EXIT_STATUS=$?

            if [ $EXIT_STATUS -eq 0 ]; then
               continue
            else
                mv .md5_old .md5
                echo "connect error, rollback..."
                break
            fi
        fi
    done

    if [ -f ".md5_old" ]; then 
        rm -f .md5_old .error.log
    fi
}

if [[ `pwd` == "/mnt/d/work/html" ]]; then 
    update_to 
else
    echo 'path error please goto dir "/mnt/d/work/html"'
fi

加上一个Makefile就可以直接使用make了, 妈妈再也不用担心我少上传文件了

.PHONY: update

update:
        -@./update.sh

.PHONY: clean
clean:
        -@rm -f .md5 .md5_old .error.log
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值