쉘 스크립트를 작성하고 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
테스트를 해보지 않았으니 참고해주세요