Telnet 로그인 후 파일 실행
저는 웹 개발자 입니다.
신규 프로젝트에 투입되어 개발과 함께 각 고객에게 배포를 맡게 되었습니다.
배포는 배포서버에서 스크립트로 되어 각각 서버로 배포가 되도록 되어있습니다. 제가 쉘 프로그래밍을 해본적이 없어 이렇게 질문 남깁니다.
#!/bin/sh
test() {
sleep 2; echo 'ID'
sleep 2; echo 'PW'
sleep 2; echo '/path/xxx.sh' ; sleep 50; echo 'nohup /path/xxx.sh &'
sleep 1; 'exit'
}
test | telnet xxx.xx.x.xx
이런식으로 100여대에 서버에 텔넷 접속하여 쉘 스크립트를 실행합니다.
질문 1) 만약 해당 서버에 리소스나 프로세스 때문에 sleep 시간이 넘게 되어 버리면 해당 쉘은 실행되지 않게 되는지..
만약 실행되지 않는다면 화면이 뜨면 명령어가 입력되고 또 다음 화면이 뜨면 명령어가 입력되고 넘어 간다던가 하면 좋을듯한데요..
그러려면 어떻게 수정해야할지요..
질문 2) 이런식으로 되어 있으면 각 고객의 서버에 패스워드가 바뀌게 되면 일일히 바꿔야 하는데 해결방안은 없을까요??
질문 3) 혹은 해당 쉘이 수행되지 않으면 retry를 1회 하는 방법이라도 있을까요?
또한 인터넷을 찾다보니
#!/bin/csh
set source_list = /path/serverlist.list
set total = `cat $source_list | wc -l`
@ i = 1
while($i<=$total)
set IP = `sed -n ${i}, ${i}p $source_list | awk -F '' '{print$1}'
set ID = `sed -n ${i}, ${i}p $source_list | awk -F '' '{print$2}'
set PW = `sed -n ${i}, ${i}p $source_list | awk -F '' '{print$3}'
echo $IP $ID $PW
@ i++
end
#rm source_list
이런식으로 IP, ID, PW를 serverlist.list에 넣은다음 한줄씩 처리하는 방식인듯 한데요.
이렇게 리뉴얼 하고싶은데 어떻게 해야하나요..
질문이 너무 많았네요 ;; 여태까지 저렇게 배포를 하고 있었다는데 100대에 배포를 하면 30대 이상은 제대로 처리되지 않아
일일히 텔넷 접속하여 수동으로 쉘을 수행했다고 합니다..
그래서 리뉴얼 혹은 기존 스크립트를 수정해서 제대로 처리하고 싶습니다.
고수분들의 도움 부탁드리겠습니다.
아.. 참고로 서버는 AIX입니다.
아.. 참고로 서버는 AIX입니다.
댓글 달기