저는 데비안 7 서버를 사용하고 있습니다. 매일 mysqldump를 저장하기 위해 crontab에서 실행되는 쉘 스크립트를 만들었습니다.
mysqldump *database* -u *mysql-user* -p*mysql-password* > /backup/mysql_backup/*filename*.sql
명령줄에 직접 입력하면 모든 것이 잘 작동합니다. 그러나 쉘 스크립트 자체(./backup.sh)를 실행하면 결과 파일은 나오지 않지만 오류는 없습니다. 폴더 권한은 777이고 쉘 스크립트는 실행 가능합니다. 스크립트가 명령줄에서 실행되지도 않을 때 스크립트를 crontab에 넣으려는 시도조차 하지 않았습니다.
무엇을 해야할지 아는 사람 있나요?
답변1
추가 #!/bin/bash
작업을 수행했는데 해당 줄을 추가하는 것을 잊어버렸습니다. 쉘에서는 왜 작동하지 않는지 알 수 없지만 이제 스크립트와 cronjob 내에서는 작동합니다. 귀하의 의견에 감사드립니다.
답변2
crontab에는 bash 쉘, 특히 $PATH에 로그인할 때와 동일한 환경 변수가 없으므로 crontab과 관련된 명령에 대한 전체 경로를 사용하는 습관을 들이십시오.
/usr/bin/mysqldump > /full/path/backup/