SFTP 서버에서 최신 파일을 복사 할 수있는 스크립트를 만들고 싶습니다. 이름을 가져 와서 파일에 이름을 넣는 스크립트를 만들었 기 때문입니다.
이제 이름이있는 최신 파일을 다운로드하는 다른 스크립트를 만들고 싶지만 내 파일의 내용을 변수에 전달한 다음 해당 파일을 다운로드하는 데 어려움을 겪고 있습니다.
#!/bin/bash
set name "testnamefromfile"
expect << 'EOS'
spawn sftp -P 2222 [email protected]:/var/log/datarecord
expect "[email protected]'s password:"
send "admin\n"
expect "sftp>"
send "get $name\r"
expect "sftp>"
send "bye\n"
EOS
이것은 내 스크립트입니다. 파일의 내용을 $name
변수에 어떻게 할당 할 수 있습니까? 그 파일을 다운로드하는 방법은 무엇입니까?
이 스크립트를 실행하면 아래 오류가 발생합니다.
sftp> can't read "name": no such variable
while executing
"send "get $name\r""
귀하의 스크립트에는
set name "testnamefromfile"
하지만이 변수 설정 $1
을 name
하고 변수 $2
에를 testnamefromfile
.
그런 다음
expect << 'EOS'
으로 'EOS'
인용 어떤 변수 대체는 "히어 닥"에서 발생하지 않습니다.
다음이 더 잘 작동 할 수 있습니다 (암호를 보낼 때 \ n이 \ r로 변경됨).
#!/bin/sh
name="testnamefromfile"
expect << EOS
spawn sftp -P 2222 [email protected]:/var/log/datarecord
expect "[email protected]'s password:"
send "admin\r"
expect "sftp>"
send "get $name\r"
expect "sftp>"
send "bye\n"
EOS
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다