2017-12-21 2 views
0

나는 코드가있는 sh 스크립트를 호출하는 cron 작업을 실행하고 있습니다. 나는 때때로 그것이 작동하지만, 때로는 내가 0KB 파일을 받고있는 것으로 나타났습니다. 나는이 0KB를 일으키는 원인이 될 수있는 것이 무엇인지 또는이 문제를 해결하기 위해 무엇이 될 수 있는지 전혀 모른다.mysqldump가 때때로 empy 파일을 반환합니다.

DATE=`date +%Y-%m-%d-%H-%m` 
NAME=bkp-server-207-$DATE.sql.gz 
mysqldump -u root [email protected] xxxx | gzip > /media/backup_folder/$NAME 
+0

mysqldump가 성공했는지 확인해야한다. 암호가 잘못되었거나 명명 된 데이터베이스가 존재하지 않는 등의 오류가 발생하면 stdout에 출력이 없으므로 gzip은 0 바이트를 생성합니다. 종료 상태 ('$?')가 0이 아닌 것으로 리턴되면 오류가 표시됩니다. –

+0

또 다른 가능성 : 덤프는 백업을 시도 할 때 작성한 파일 시스템이 가득 찼기 때문에 0KB 파일로 작성되었습니다 (보았을 때 더 이상 가득 차지 않아도). 원인에 상관없이 백업 스크립트에 오류 검사를 구현하는 것이 중요합니다. –

+0

대다수의 시간 동안 성공하기 때문에 스크립트는 문제가되지 않습니다. 나는 그것을 매일 밤마다 한 번씩 달린다. 일주일 만에 5 회 성공했고 실패 (0KB)했습니다. 디스크 공간도 문제가되지 않습니다. 단지 몇백 킬로바이트에 불과하며 디스크에는 여유 공간이 몇 개 있습니다. 다른 추측은? 오류 검사를 도와 주시겠습니까? – yurividal

답변

0

당신은 명령이 실패하는 이유 을 찾아야합니다. cron 작업의 기본 출력은 파일로 재 지정하고 나중에 확인하지 않는 한 손실됩니다.

당신은 크론 수준을 기록 할 수있는 2>&1 주름은 표준 출력에 stderr에, 그래서 모두 저장됩니다

59 23 * * * /home/john/bin/backup.sh >> /home/john/logs/backup.log 2>&1 

(http://www.thegeekstuff.com/2012/07/crontab-log/ 참조).

아니면 당신이 당신의 스크립트에서 특정 명령을 기록 할 수 있습니다 : 오류 출력을 일단

echo "Creating $NAME" >>/home/john/logs/backup.log 
mysqldump -u root [email protected] xxxx 2>>/home/john/logs/backup.log | gzip > /media/backup_folder/$NAME 

, 당신은 실패의 원인에 대한 중요한 단서를해야한다.

관련 문제