환경
A서버 - a.sh 파일 존재 (DB서버)
B서버 - b.sh 파일 존재 (웹서버)
스크립트 파일 내용
a.sh :: A서버에서 DB를 백업하여 FTP를 이용 B서버로 전달
b.sh :: B서버는 A서버로부터 백업파일이 도착하면 그것을 가공하여 자신의 DB에 입력
문제 : B서버에서 crontab 사용이 불가능한 계정. A서버에서 B서버의 b.sh를 작동시켜줘야함.
sshpass 를 이용하여 진행해야하는데, sshpass를 yum으로 설치하거나 centos 등의 경우 yum으로 설치가 불가능하니 아래 링크를 참고하여 설치해야 합니다.
(sshpass 설치는 아래 링크들을 참고하시라)
1. CentOS 64bit 에서 sshpass 설치
http://blog.naver.com/eastee?Redirect=Log&logNo=20172253168
(32bit의 경우 경로를 바꿔주면 됩니다.)
2. 페도라 계열 sshpass 설치
http://jmnote.com/wiki/Sshpass_%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0
a.sh 파일 하단에 이런 내용 추가
sshpass -p PASSWORD ssh -T -oStrictHostKeyChecking=no ID@HOST <<'ENDSSH'
cd 스크립트파일위치
sh b.sh
ENDSSH
그냥 sshpass로 해당 명렁을 바로 실행 했을 경우엔 b.sh가 실행되면서 B서버의 db로 접속하는게 아니라 A서버의 db와 경로를 찾아다니는 경우가 있음.
'프로그래밍 > 셸 스크립트' 카테고리의 다른 글
쉘 스크립트 이용하여 mysql 쿼리문 변수에 넣기, 한줄씩 출력하기 등 (0) | 2013.05.11 |
---|---|
셸 스크립트로 날자 가지고 놀기 (0) | 2013.05.10 |
셸 스크립트에서 mysql 쿼리 날리기 (0) | 2013.05.10 |
셸 스크립트를 이용해서 ftp 로 다른 서버에 백업하기 (3) | 2013.05.09 |