질문&답변
클라우드/리눅스에 관한 질문과 답변을 주고 받는 곳입니다.
리눅스 분류

스크립트 실행시 지연시간 설정

작성자 정보

  • 임우빈 작성
  • 작성일

컨텐츠 정보

본문

e스크립트를 실행해서 자동으로 원격서버로 접속해서 데이터를 백업하는 것을 하고 있습니다.

헌데 접속하는 컴퓨터에서 서버로 접속시

expect를 이용한 자동 비밀번호 입력을 되게 할려고 스크립트로 만들어 놨는데

 #!/usr/bin/expect -f
## xxx.xxx.xxx.xx
log_user 0
spawn rsync -avPz --stats -l -t -e ssh root@xxx.xxx.xxx.xx:/xxx/ /backup/xxx/
expect "root@xxx.xxx.xxx.xx's password:"
send "xxxxxxxxxx "
log_user 1
interact

이런식으로 스크립트를 작성했습니다.

문제는 접속하는 부분에서 왜그런지 모르지만.. 시간이 많이 지연되더군요

iptables로  방화벽 구성해놔서 그런데

iptables 초기화 시키면 잘 됩니다.

근데 보안상 그럴수가 없으니 다시 iptables 셋팅하고

저걸 실행하면

rsync 부분에서 한참 지연되다가 expect 부분에 있는 패스워드 묻는 문구가 나오지도 않았는데

send 부분이  입력되고

한참 뒤에 다시 비밀번호 입력하라고 나옵니다.

 

그러니 거기서 이미 send가 지나가버린 상태라 더이상 진행이 안되는 것이지요

이거 스크립트 상에서 시간 지연시킨후 다른 문장이 실행되게 하는 방법이 없는지요?

 

아니면 iptables 설정했을때 왜 지연되는지 알고 싶습니다 .

ㅡ0ㅡ 난감하네요

 

관련자료

댓글 1

지나가다님의 댓글

  • 지나가다
  • 작성일
#!/usr/bin/expect
spawn rsync -avPz --stats -l -t -e ssh root@xxx.xxx.xxx.xx:/xxx/ /backup/xxx/
expect -re "Password:"
sleep 0.2
send "xxxxxxxxxx "
interact


혹은

http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=57578&page=2

공지사항


뉴스광장


  • 현재 회원수 :  60,303 명
  • 현재 강좌수 :  36,968 개
  • 현재 접속자 :  440 명