关于服务器与本地文件同步, 使用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