我要實現的是在本地目錄修改檔案,自動同步更新到服務端去。
更改了的安裝包需要同步部署到其他伺服器去。
我們需要run_rsync.sh和auto_sync.sh兩個指令碼,假定需要同步的目錄在./data目錄下。 我們用rsync來同步,很多系統都自帶了這個工具。
自動輸入密碼
run_rsync.sh
#!/usr/bin/expect
set src [lindex $ar** 0]
set dst [lindex $ar** 1]
set pass [lindex $ar** 2]
#--delete引數刪除多餘檔案
spawn rsync -vazu --progress $src $dst
expect
"password:"
expect eof
if [catch wait] {
puts "rsync failed"
exit 1
exit 0
這裡使用了expect來自動輸入密碼。
隔一段時間執行一次
auto_sync.sh
src=./data
[email protected]:/home/test
pass=***
while true;
do./run_rsync.sh $src $dst $pass > auto_sync.log
sleep 1s
done
每隔一秒鐘同步一次,使用nohup在後台執行
nohup ./auto_sync.sh &
一切很好,再也不用學習難用的vim了。
rsync遠端檔案同步
伺服器端 配置rsyncd.conf.位置 etc rsyncd.conf 密碼檔案 啟動rsync服務 rsync daemon 客戶端 密碼檔案裡只需要記錄密碼,不需要記錄使用者名稱.此密碼需要和伺服器端密碼檔案內密碼一致.chown user group 密碼檔案 chmod 0600 密碼檔...
windows檔案自動同步
windows server 幾大實時同步軟體比較 需求 從windows server 主機a 到 windows server 主機b 之間同步目錄 方案一 使用bat指令碼 計畫任務的方式 1.1 bat指令碼 功能 把主機a的c source目錄,同步到主機a的d backups 如果要同步...
linux 遠端檔案同步 shell
127.0.0.1 username password 192.168.12.12 usename password編寫expect shell usr bin expect f set timeout 1 永不超時,預設為10s set src file lindex argv 0 argv引數讀...