だから私はこれを持っています。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
私はDebian 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%/*}