轉自:https://blog.csdn.net/work_msh/article/details/8473847
某些生產系統在沒有NBU等備份軟件的情況下,需要把備份的文件拷到另外的服務器上進行存儲,為了節省不必要的時間,我們可以使用腳本實現自動拷貝:
我們會在腳本里使用到一個軟件:expect
首先需要在服務器安裝,掛載介質,打開/Package
rpm -ich expect-5.44.1.15-5.el6_4.x86_64.rpm
#!/usr/bin/expect
set passwd "123456"
spawn scp root@172.18.31.26:/soft/p13390677_112040_Linux-x86-64_2of7.zip /opt
expect {
"密碼:"
{
send "$passwd\n"
}
"pass"
{
send "$passwd\n"
}
"yes/no"
{
sleep 5
send_user "send yes"
send "yes\n"
}
eof
{
sleep 5
send_user "eof\n"
}
}
set timeout 3000
send "exit\r"
expect eof
當檢測到”pass“ 或者 ”密碼:“字樣后 使用send 發送 密碼給scp程序,這里邊send_user 的意思是輸出到控制台 這樣我們就可以將遠程服務器上的備份文件拷貝到本地而且也不需要輸入密碼了 。