0
expect/SH 스크립트에서 SFTP를 수행하기 때문에이 사이트에 잠시 동안 숨어있었습니다. SSH keygen은 우리가 원격 서버에 액세스 할 수 없기 때문에 옵션이 아니므로 SFTP에 암호 인수를 제공 할 것으로 기대하고 있습니다.expect에서 sucessful 인 경우 SFTP 전송을 캡처하는 방법
여기에 제가 작업하고있는 스크립트가 있습니다. 전송 ("mput")이 성공적으로 완료되면 출력 파일에 캡처하거나 로그하려는 경우를 제외하고는 모든 것이 여기에서 작동합니다. 이후에 expect_out (버퍼)을 추가하면 "mput"뒤에 오는 코드에 대한 조언이 실패합니다.
#!/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