0
因爲我在expect/SH腳本中執行SFTP,所以我在此站點潛伏了很長一段時間。由於我們無法訪問遠程服務器,所以我們正在考慮使用expect來爲SFTP提供密碼參數,因此SSH keygen不適用於我們。如何從預期成功捕獲SFTP傳輸
這是我正在處理的腳本,除了我想要捕獲或記錄到輸出文件(如果我的傳輸(「mput」)成功完成),一切都在這裏工作。任何有關在「mput」之後放置什麼代碼的建議,因爲如果我在之後添加expect_out(緩衝區),它將失敗。
#!/bin/ksh
DIRROOT=/apps/gen/e2k/sys/bpp
COPYDIR=$DIRROOT/SENT
FILEHASH=TEST.SOME.FILE.*
if [ ! -f $COPYDIR/$FILEHASH ]; then
echo "No File"
fi
# New FTP credential from GIC
FTPSERV=**********
FTPUSER=**********
FTPPWD=**********
FTPDIR=/to-scs
/usr/local/bin/expect -f - <<EOFEXPECT1
#exp_internal 1
set timeout -1
set log [open "/dir/dir1/dir2/MIKETEST.txt" w]
spawn sftp -oPort=10022 [email protected]$FTPSERV
expect "password:"
send "$FTPPWD\r";
expect "sftp> "
send "lcd $COPYDIR \r";
expect "sftp> "
send "cd /recipient \r";
expect "sftp> "
send "mput TEST.SOME.FILE.*\r";
put $log $expect_out(buffer)
close $log
expect "sftp> "
send "bye\r";
expect eof
EOFEXPECT1
if [ $? -eq 0 ]
then
echo "success"
else
echo "fail"
fi