0
我爲sftp編寫了一個腳本。它的工作很好,幾秒鐘。但幾秒後退出。我嘗試了很多方法,但無法找出問題所在。這是我的代碼。期待 - 一段時間後產卵退出
#!/usr/bin/expect
set now [clock seconds]
set now [expr {$now - 3600}]
set date [clock format $now -format {%Y%m%d%H}]
set SOURCE "/home/sms/SMSC-Sec-2.0.7.0_MT/cdrs/"
spawn sftp [email protected]
expect "password:"
send "teledna\r"
sleep 1
expect "sftp>"
send "cd /home/sms/CDRS-Noida \r"
expect "sftp>"
send "pwd \r"
expect "sftp>"
send "mput $SOURCE/DNA-AegisGw-CDR_PREPAID_$date*.log \r"
expect -exact "sftp>"
send "quit \r"
send "I am here"
輸出:
spawn sftp [email protected]
[email protected]'s password:
Connected to 10.167.xx.xx.
sftp> cd /home/sms/CDRS-Noida
sftp> pwd
Remote working directory: /home/sms/CDRS-Noida
sftp> mput /home/sms/SMSC-Sec-2.0.7.0_MT/cdrs//DNA-AegisGw-CDR_PREPAID_2017031618*.log
Uploading /home/sms/SMSC-Sec-2.0.7.0_MT/cdrs//DNA-AegisGw-CDR_PREPAID_201703161800_499_10.170.xx.xx_AS.log to /home/sms/CDRS-Noida/DNA-AegisGw-CDR_PREPAID_201703161800_499_10.170.xx.xx_AS.log
/home/sms/SMSC-Sec-2.0.7.0_MT/cdrs//DNA-AegisGw-CDR_PREPAID_201703161800_499_10.170.xx.xx_AS.log 2% 1088KB 104.3KB/s 06:39 ETA[[email protected] admin]#
幾秒鐘後退出的說5那樣
這意味着你說它不會等到它「sftp>」? –
命令'expect -exact「sftp>」'將在它看到預期模式時結束(意味着它將運行下一個命令),或者它等待模式超時。 – pynexj
無論如何要等到sftp完成了嗎?我不能依靠硬編碼的價值,因爲有些天它需要10分鐘和一些天還有兩個小時.. –