cron에 등록한 스크립트가 중간에 멈춥니다.
작성자 정보
- 한동희 작성
- 작성일
컨텐츠 정보
- 988 조회
- 0 추천
- 목록
본문
앗!~ 죄송합니다. 제가 질문을 잘못올린듯 싶습니다.
쉘프롬프트를 잘못표기한듯.. 죄송합니다.
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 모드에서는 복사할 디렉토리를 못 찾은 것입니다.
관련자료
-
이전
-
다음