crontab 을 통한 ftp 전송에 있어서 질문 드립니다.
글쓴이: choi8608 / 작성시간: 월, 2014/06/30 - 2:43오후
안녕하세요 저는 서버 어드민 쪽 업무를 맡고 있는 1년차 사원입니다.
이번에 정기적인 사내 파일 이동에 대해 자동화 스크립트를 만드는 도중에 문제가 생겨서 질문 드립니다.
### send_invititationletter ### 30 9 * * 1-5 /BEST/spool/anj/sendfiles/send_invititationletter.sh > /BEST/spool/anj/sendfiles/letterlog
// 위는 제가 crontab 을 등록한 것 입니다. 평일 09:30 분에 send_invititationletter.sh 가 실행되고 동일 폴더에 log 를 남기는 명령입니다.
"send_invititationletter.sh" 23 lines, 320 characters #!/bin/sh TARGET_HOST=21.98.249.60 TARGET_DIR=/BEST/eit/spool/anj/sendfiles SOURCE_DIR=/BEST/spool/anj/sendfiles ID= PASSWORD= sendfile=`ls -lrt | tail -1 | awk '{print $9}'` echo "before" echo $sendfile ftp -in $TARGET_HOST << UPLOAD user $ID $PASSWORD cd $TARGET_DIR put $sendfile bye UPLOAD echo "after"
// 위는 해당 쉘의 전문입니다.
쉘의 실행 위치에서 가장 최근에 생긴 파일 1개를 sendfile 에 넣고
TARGET_HOST 의 TARGET_DIR 로 보내는 쉘입니다.
쉘을 만들고 저는 별 문제가 없을 것이라고 생각했는데 실제로는 실행이 안되더군요
로그를 찍어 확인을 해보니
proc : not a plain file
이라고 나왔습니다.
그리고 sendfile 을 echo 해줬을 때도 제가 원하는 파일이 아닌 'proc' 이라는 것이 나왔구요
위 쉘을 그냥 제가 들어가서 실행하면 제대로 전송이 되는데
crontab 으로 실행을 하면 sendfile 이 proc 으로 들어가는 문제가 있음을 발견했습니다.
문제는 발견했는데.. 왜 proc 이라는 파일 이름이 생기는건지 이해할수가 없습니다;;
awk 를 사용하는 문구에 제가 잘못넣은건지.. 문제는 찾았지만 원인이나 그결과를 찾을수가 없어 스크립트를 다 만들어놓고
운영에 반영을 못하고 있습니다...
고수 분들의 조언을 요청드립니다. (__)
Forums:
sendfile=`ls -lrt | tail -1 | awk '{print $9}'`
실행될때 ls가 / 로 타겟된것 같습니다만.
절대경로 주시면 될것같습니다.
소곤소곤
답변 감사합니다.
말씀하신대로 루트 최상위로 가보니까 proc 이라는 파일이 있네요..
ls 가 root 최상위에서 실행된게 맞는거 같습니다
쉘 수정하고 내일 아침에 다시한번 돌려봐야 겠네요
답변 감사드립니다 (__)
댓글 달기