SFTP 서버에 EXPECT 및 PUT을 사용하는 쉘 스크립트

SFTP 서버에 EXPECT 및 PUT을 사용하는 쉘 스크립트

쉘 스크립트를 작성하고 SFTP 서버에 백업 파일을 보내려고 합니다.

remotepath=/backup/
expect -c "
spawn sftp [email protected]
expect "password:"
send "password123\r"
expect "sftp>"
send "put /back_up/bkp_2022.tar.gz $remotepath\r"
expect "sftp>"
send "bye\r"
"

이것은 파일을 전송하지 않고 얻은 출력입니다. 단지 "?send put" 및 "?send byer?"가 생성됩니다.

-rw-r-----. 1 admin admin 1267 Aug 17 11:14 script.sh
-rw-r-----. 1 admin admin    0 Aug 17 11:15 ?send put
-rw-r-----. 1 admin admin  167 Aug 17 11:15 ?send byer?

도울 수 있니?

답변1

내부 따옴표( ")를 이스케이프 처리하거나 여기에서 문서 구문을 사용하십시오.

remotepath=/backup/
expect <<EOF
spawn sftp [email protected]
expect "password:"
send "password123\r"
expect "sftp>"
send "put /back_up/bkp_2022.tar.gz $remotepath\r"
expect "sftp>"
send "bye\r"
EOF

테스트를 해보지 않았으니 참고해주세요

관련 정보