expect實現定時scp

大半夜的進行異機數據遷移,由於數據量比較大,導出需要幾個小時。
爲了節約時間,想導出後就把備份文件scp到目標機器上,又不想等,於是搞了個定時scp的腳本:

[root@BJ-FT-1F-121-30 hysjb_20_249_250]# cat scp.exp 
set timeout -1
spawn scp 112.33.18.211:/apps/back/* .
match_max 100000
expect "password:"
send "mypassword\r"
expect eof

將mypassword修改爲目標機器的密碼即可。執行的命令:scp 192.168.66.65:/apps/back/* .
將腳本加到crontab裏,計算一下導出需要的時間,設置定時任務。

參數:
timeout:默認的超時時鐘設的是10秒,但可以自己設定.通過”set timeout 30”,可以將超時時鐘設定爲30秒.如果設定爲-1的話,那麼超時時鐘將是無窮大。
match_max:在讀取輸出進行匹配時,超過2000字符將會強制將前面的字符丟棄。這個數目可以通過match_max來改變。(但太大的數目會降低匹配的效率)。

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