리눅스 expect 활용 sftp 자동화 하는 방법

expect는 질의 응답 형태인 interactive 방식으로 만들기 위한 패키지로 요청을 처리할 수 있게 만들 수 있는 스크립트 프로그램입니다. 요즘 사용하는 프로그램을 예시로 들면 챗봇이라고 생각하시면 편할 것 같습니다.

오늘은 리눅스 CentOS에서 expect 패키지를 사용해서 자동화하는 방법에 대해서 알아보도록 하겠습니다.

 

sftp 자동화 방법(Expect)

 

리눅스 Expect 사용

- CLI 상호작용 자동화

- SSH, SFTP 등 자동화 작업

 

상호작용의 예시

#! /usr/bin/expect
expect "hello"
send "world"

 

hello 명령어가 입력되면 world를 출력해 줍니다.

expect 스크립트의 확장자는 .exp 확장자를 가지고 있을 경우가 많습니다.

 

 

expect 패키지 설치

expect 패키지 설치

# yum -y install expect

yum으로 expect 패키지를 설치해 줍니다.

만약 yum이 정상적으로 되지 않는다면 아래의 글을 참고해 주세요

[IT/리눅스(Linux)] - [Linux] yum 실행 안될 때 cannot find a valid baseurl for repo

 

[Linux] yum 실행 안될 때 cannot find a valid baseurl for repo

cannot find a valid baseurl for repo base/7/x86_64 Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock error was 14: curl#6 - "Could not resolve host: mirrorlist.centos.org; 알 수 없는 오류" One of th

coconuts.tistory.com

 

set timeout

기본 타임아웃 시간을 지정합니다. Default 값은 10초입니다.

 

spawn

명령어를 그대로 실행

spawn telnet ip port

 

expect

특정 문자열이 들어오면 실행됩니다.

expect "hello"

send "world"

hello 메시지가 들어오면 world 라는 메시지를 출력해 줍니다.

 

-nocase 옵션

expect -nocase "password:"

대소문자 상관없이 문자열을 수신합니다.

 

 

파일전송 자동화

파일전송 자동화 기능을 사용하기 위해서는 먼저 ftp, sftp 로직을 알아야 합니다.

ftp 자동화

[root@localhost docker]# sftp IP

root@IP's password:
Connected to IP.

sftp>
sftp> put test
Uploading test to /root/test
test 100% 0 0.0KB/s 00:00

sftp> bye

 

먼저 sftp 하는 과정을 파악해 줍니다.

sftp IP로 접속을 시도하고 패스워드를 입력한 후 파일을 전송합니다.

여기서 출력되는 메시지와 내가 입력한 메시지를 나눠야 합니다.

 

#!/usr/bin/expect -f

spawn sftp IP
expect "password:" { send "PASSWORD\r" }

expect "sftp>" { send "put test\r" }

expect "sftp>" { send "bye\r" }

interact

순서대로 내가 접속을 하고 패스워드를 입력을 하고 파일을 보내는 과정을 작성해 주시면 됩니다.

bye 명령어가 나오면 End 시킵니다.

 

[블로그, 애드센스, 수익] - Vultr 서울 서버 워드프레스 설치하기(무료 100달러)

 

Vultr 서울 서버 워드프레스 설치하기(무료 100달러)

클라우드웨이즈에서 Vultr 서버를 사용하려고 하는데 서울 서버가 사라지는 경우가 종종 있습니다. 클라우드웨이즈 측에서는 서울 서버가 많이 다운되어서 서비스를 없애 버렸다고 말하기는 하

coconuts.tistory.com

[IT/아이폰,아이패드,애플워치(ios)] - 맥북 누끼따기 이미지 배경제거 3가지 방법

 

맥북 누끼따기 이미지 배경제거 3가지 방법

아이폰, 아이패드에서 이미지의 배경제거 기능이 iOS16에서 새롭게 공개되었습니다. 그것을 맥북에서도 사용할 수 있을까 해서 맥북에서 시도를 해봤지만 비슷하게 클릭만으로 이미지의 배경은

coconuts.tistory.com

 

댓글

Designed by JB FACTORY