crontabバックアップディレクトリ

crontabバックアップディレクトリ

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

関連情報