질문&답변
클라우드/리눅스에 관한 질문과 답변을 주고 받는 곳입니다.
리눅스 분류

cron에 등록한 스크립트가 중간에 멈춥니다.

작성자 정보

  • 한동희 작성
  • 작성일

컨텐츠 정보

본문

앗!~ 죄송합니다. 제가 질문을 잘못올린듯 싶습니다.
쉘프롬프트를 잘못표기한듯.. 죄송합니다.
backup_data.sh의 첫줄이 당연히 #!/bin/bash 입니다.

다시한번 보자면.. 이렇습니다..
복사할 디렉토리를 못찾은 걸까요?

 

[root@ns2 /]# ls -l /usr/lib/backup_data.sh
-rwx------    1 root     root          669  3월 30 18:02 /usr/lib/backup_data.sh*
[root@ns2 /]#
[root@ns2 /]#
[root@ns2 /]#
[root@ns2 /]# more /usr/lib/backup_data.sh
#!/bin/bash

#Backup Script for SC5200

export backupdir=SC5200_`date '+%y%m%d'`
rm -rf /home/_backup/*
mkdir /home/_backup/$backupdir

#Apache Server Backup
tar zcvpf /home/_backup/$backupdir/apache.tar.gz /usr/local/apache

#etc Backup
tar zcvpf /home/_backup/$backupdir/etc.tar.gz /etc

#var/named Backup
tar zcvpf /home/_backup/$backupdir/varnamed.tar.gz /var/named

#var/qmail Backup
tar zcvpf /home/_backup/$backupdir/varqmail.tar.gz /var/qmail

#MySQL DB Backup
/usr/local/mysql/bin/mysqldump --all-databases > /home/_backup/$backupdir/mysqldata.sql

#/home Backup
tar zcvpf - /home --exclude=/home/_backup | split -b 640m - /home/_backup/$backupdir/home.tar.gz
[root@ns2 /]#
[root@ns2 /]#
[root@ns2 /]#

============================================================

# ls -l backup_data.sh
-rwx------    1 root     root          669  3월 30 18:02 backup_data.sh*

#
#
#
# more backup_data.sh
#!/bin/bash

--> #!/bin/bash 가 화일의 첫줄에 나와야 합니다. 그렇지 않고 그냥 쉘 스크립트라고 해서 실행 권한만 주었다면 전체 스크립트가 아닌 이 부분에서 서브쉘이 생성됩니다.....

#Backup Script for SC5200

export backupdir=SC5200_`date '+%y%m%d'`

--> export 해봐야 안됩니다. 아까 생성된 서브 쉘인지 /bin/bash 실행 전의 쉘인지?

rm -rf /home/_backup/*
mkdir /home/_backup/$backupdir

#Apache Server Backup
tar zcvpf /home/_backup/$backupdir/apache.tar.gz /usr/local/apache

#etc Backup
tar zcvpf /home/_backup/$backupdir/etc.tar.gz /etc

#var/named Backup
tar zcvpf /home/_backup/$backupdir/varnamed.tar.gz /var/named

#var/qmail Backup
tar zcvpf /home/_backup/$backupdir/varqmail.tar.gz /var/qmail

#MySQL DB Backup
/usr/local/mysql/bin/mysqldump --all-databases > /home/_backup/$backupdir/mysqldata.sql

#/home Backup
tar zcvpf - /home --exclude=/home/_backup | split -b 640m - /home/_backup/$backupdir/home.tar.gz

#
#
#

=============================================

crontab은 다음과 같습니다.

#
#
#
#crontab -e

40 03 * * * /usr/lib/backup_data.sh

#
#
#

=============================================

/var/log/cron 을 보면 정상적으로 실행한 것으로 나타납니다.
그런데, 실제로 실행된 결과 해당디렉토리에 6개의 파일이 생성되지 않고 apache.tar.gz 만 생깁니다.
그러니까 그 뒤로는 실행하지 않았다는 얘기죠..

그런데 telnet 접속해서 명령어를 직접 실행하면 모두 정상적으로 실행되어서 6개의 파일이 얌전히 생성됩니다.
왜 그런걸까요? 해결방법은 무엇일까요?

OS는 wowlinux 7.3 입니다. (커널 2.4.18)

--> 이제 알겠지요? batch 모드에서는 복사할 디렉토리를 못 찾은 것입니다.

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,137 명
  • 현재 강좌수 :  36,186 개
  • 현재 접속자 :  240 명