同臺服務器目錄之間的文件同步

應用背景:

公司一臺阿里雲服務器,上面既搭建測試環境,也有正式環境,現需要將測試環境測試好的程序無差異同步到正式環境中

此處本來可以用cp搞定的,老闆說怕哪一天我不在公司其他人不會,所以讓寫個腳本,還有就是出於責任問題,同步的時候要產生同步日誌。


#!/bin/sh

. /etc/init.d/functions


update=`date`

STTY_RESTORE=$(stty -g)


while true

do

echo -n "username:"

read username

echo -n "password:"


stty -echo cbreak


while true

do

        character=$(dd if=/dev/tty bs=1 count=1 2>/dev/null)


        case $character in

        $(echo -e "\n"))

                break

                ;;

        $(echo -e "\b"))

                if [ -n "password" ];then

                        echo -n -e "\b \b"

                        password=$(echo "$password"|sed 's/:$//g')

                fi

                ;;

        *)

                password=$password$character

                echo -n '*'

                ;;

        esac

done


stty $STTY_RESTORE

if [ "$username" == "woniu" ] && [ "$password" == "woniu" ]

        then

        /bin/rm -rf /web/html/app.ori

        /bin/cp -af /web/html/app /web/html/app.ori

       /usr/bin/rsync -az --delete --password-file=/etc/rsyncmima.password /web/svn/php/php/ [email protected]::woniu

        echo "$username update the directory at $update" >> /var/log/updatewww.log

        echo -e "\n請稍等"

        echo -e "copying..............."

        sleep 3

        /usr/bin/diff /web/svn/php/php /web/html/app >/dev/null 2>&1

        if [ `echo $?` == 0 ];then

                action "copy directory" /bin/true

        else

                action "copy directory" /bin/false

        fi

                exit 0

else

        echo -e "\n用戶名或密碼錯誤,請重新輸入!"

fi


done


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章