728x90
[expect 명령어]
자동화 업무를 하다보니 reboot하고 mysql에 자동으로 로그인하는 설정이 필요했습니다. 자동화를 한다고 했을 때 일반 shell 파일을 실행하면 password를 입력할 때 사용자의 입력이 없어 막히게 되는데요. 이때 쓸 수 있는것이 expect 명령어 입니다. expect를 사용하면 git, ssh, apt-get install (all yes) 등을 사용할 때 id, password를 입력하는 과정을 사용자의 입력 없이도 자동화할 수 있습니다.다음 명령어를 주어 설치할 수 있습니다.
sudo apt-get update -y
sudo apt-get install expect
아래와 같은 shell 파일을 작성한 후 expect 명령어로 shell파일을 실행하면 자동화가 됩니다.
#!/usr/bin/expect
set timeout 5 # 로그인 후 대기 시간
set PW "password"
spawn mysql -u dinnercoding -p
expect {
"password:" {
send -- "${PW}\n"
}
}
다음 crontab 설정으로 다음과 같이 설정해줍니다.
@reboot sh ~/home/ubuntu/mysql_login.sh
cron service를 재시작합니다.
service cron restart
728x90