Scp

TCL 腳本 - 期待 scp 完成時

  • August 31, 2016

我目前有一個將 .tar.gz 發送到遠端伺服器的 tcl 腳本。

spawn scp -r "file_to_send.tar.gz" $user@$host:/
set timeout 10

spawn ssh $user@$host
expect "password: "
send -- "$passwd\r"

send -- "tar -zxvf /file_to_send.tar.gz\r"
sleep 1

但是,我的提取似乎不起作用,因為 scp 沒有完全完成。有沒有辦法以程式方式檢查 scp 何時完成?

您可以通過跟隨它來等待第一個生成完成

expect eof

或者,如果您願意,您可以擷取並測試返回碼

catch wait result
if [lindex $result 3] { send_user "fail\n";  exit 1 }
send_user "ok\n"

引用自:https://unix.stackexchange.com/questions/307006