expect [ -dDinN ] [ -c cmds ] [ [ -[f|b] ] cmdfile ] [ args ]
script 파일에 포함할 때 위 구문으로 시작
/usr/local/bin/expect에는 expect가 설치된 정확한 위치 지정.
expect 명령어 사용
keyword
spawn : 명령어 실행
expect “특정문자열” : “if 특정 문자열이 나타나면” 의미
send “보낼문자열\r” : 문자열을 전송한다. \r은 엔터키를 의미한다.
interact : 이제는 expect를 끝내고 사용자에게 제어권을 넘긴다.
set 변수 [lindex $argv 0] : 0번째 명령행 인자를 변수에 지정한다.
send “$변수” : 변수에 저장된 문자열을 전송한다.
expect eof : expect 종료
재정리
option
-nocase : 대소문자 구별안함
실행시키는 방법
sh sample.exp port targetId targetIp targetPass worksPath targetPath
=======================sample.exp=====================
#!/sh/expect
toDay=todayValue= `date +%Y%m%d`
#하루전
yesterdayValue= `TZ=KST+15;date +%Y%m%d`
#하루전 + 24시간
yesterdayValueAddOneDay= `TZ=KST+39;date +%Y%m%d`
port=$1
hostId=$2
hostIp=$3
targetPass=$4
worksPath=$5
targetPath=$6
expect -c "
spawn sftp -oPort=$port BatchMode=\"no\" $hostId@$hostIp
expect -nocase \"*password:\" { send \"targetPass\r\"; }
expect -nocase \"sftp>\" { send \" get $targetFileName \r\"; }
expect -nocase \"sftp>\" { send \" exit \r\"; interact }
"
exit
cd $worksPath
mkdir $targetPath/$todayValue
mv $worksPath/* $targetPath/$todayValue/
==================================================
2020.12.11 SSH Key ssh-keygen (0) | 2020.12.11 |
---|---|
2020.12.11 unix linux day control (일자조정방법) (0) | 2020.12.11 |
2020.11.30 umask 란 unix ,linux 에서 file이나 directory 생성 할 때 기본 권한을 주는 방법(접근 제어 방법 umask ) (0) | 2020.11.30 |
2020.11.27 file descriptor 수를 확인 하는 방법 (0) | 2020.11.27 |
2020.11.27 netstat 데이터 의미 (0) | 2020.11.27 |
댓글 영역