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%/*}

相关内容