그래서 나는 이것을 가지고 있습니다.crontab -e
0 0 * * * /opt/www/backup.sh
파일에는 다음이 있습니다.
#!/bin/bash
FILENAME=$(date +%Y%m%d).tar.gz
tar zcf backups/$FILENAME f
파일은 다음 위치에 있습니다./opt/www
그러나 백업은 전혀 생성되지 않습니다. 수동으로 실행 하면 정상적으로 backup.sh
실행되어 디렉터리의 백업이 생성됩니다 .f
저는 데비안 7.8을 사용하고 있습니다.
답변1
cronjob을 시작할 때 현재(작업) 디렉터리가 /opt/www로 설정되지 않을 수 있습니다. backup.sh 스크립트의 tar...
행 앞에 설정할 수 있습니다.
cd /opt/www
또는 다음을 통해 tar 줄의 전체 경로를 사용할 수 있습니다.
tar zcf backups/$FILENAME /opt/www/f
전체 경로를 사용하는 것이 좋습니다.backups/$FILENAME
답변2
코드를 실행하면 corntab
홈 디렉터리에서 시작하는 상대 경로에서 코드가 실행됩니다.
쉬운 수정:/
스크립트에서 (시작부터) 절대 디렉터리 경로를 사용할 수 있습니다.
다른 방법:이식성을 위해 코드에서 "path_dir"을 사용하십시오.
path=$(readlink -f $0)
path_dir=${path%/*}