- WordPress의 자동 백업을 위해 wp-content 와 DB 서버를 구축한 뒤 Crontab Scheduling 작업을 진행하였다.
- 원활한 Crontab 스케줄링 작업을 위해 Password를 입력 받아야 하는 작업의 자동화 Script를 제작해 보았다.
1. Expert 설치, 설치 확인
- Password 등 사용자의 입력 값을 받아 수행되는 명령어의 자동 수행을 위해서는 몇 가지 방법이 있지만 이 글에서는 Expert를 사용해 보기로 하였다.
- Expect 설치 확인
# apt-get install expect
# expect -version
- Expect 5.45버전 설치 확인
만약 자신의 컴퓨터에 expect가 설치되지 않았다면 다음의 경로에서 설치해주면 된다.
# expect http://www.nist.gov/el/msid/expect.cfm tcl http://tcl.sourceforge.net/
expect 사용법
- spwan : 입력한 어플레키이션 실행
- send : 명령을 실행
- expect -re : 기대 값 설정
- interact : 스크립트 종료
기본적으로 저번에 제작한 스크립트는 #!/bin/bash로 실행하게 만들었다 여기에 expect 코드를 작성해 실행하게 되면 command not found 오류가 뜨게 되기 때문에 기본적으로 쉘 내부에 expect << EOL 을 넣어주어 사용하게 된다.
이전 스크립트 코드
해당 스크립트에 expect 코드를 추가해 작성해보았다.
수정 후 스크립트
빨간 글씨로 바뀔때부터 뭔가 이상하다 싶었더니 실행결과 바로 에러메시지를 볼 수 있었다..
해당 문제는 clock 변수를 활용해서 해결할 수 있지만 어차피 스크립트 안에 비밀번호를 제시하는건 똑같으니 그냥 mysqldump 명령어에 비밀번호 입력받아 덤프하는 옵션을 추가해주었다.
스크립트 실행 시 비밀번호를 입력받지 않고 지정된 경로에 잘 백업되는 것을 확인하였다.