Root Cron 作业不执行 chmod

Root Cron 作业不执行 chmod

我有一项root cron任务,在已安装的不同 HDD 中创建一个目录,然后使用rsync它将所有文件从 SOURCE 复制到 TARGET。脚本如下所示:

 date_cmd='date +%Y_%m_%d_%H_%M_%S'
 TS_SUFFIX=`eval ${date_cmd}`
 SOURCE_DIR=/
 TARGET_DIR=/mnt/backup_hdd/system_backup_${TS_SUFFIX}

 LOG_DIR=/shared_utils/logs/backupper
 LOG_FILE=${LOG_DIR}/backupper_${TS_SUFFIX}.log

 mkdir -p ${TARGET_DIR}
 chmod 770 ${TARGET_DIR}
 rsync -a --append-verify --info=progress2 --exclude-from=${EXCLUDE_LIST} ${SOURCE_DIR} ${TARGET_DIR}

问题是chmod 770没有将TARGET目录权限更改为 770。如您所见,它是使用 755 权限创建的。:

drwxr-xr-x  19 root root       4096 Mar 18 11:47 system_backup_2018_03_18_17_57_01/

我的root cron工作:

57 17 * * * umask 007; /path/to/script.sh

如您所见,我在执行脚本之前设置了 umask 007。因此,它在两个方面失败了:

  1. 尽管我将 umask 设置为007,但实际权限并不像预期的那样。
  2. 尽管我明确地将权限(chmod 770)更改为TARGET目录,但权限仍然没有改变。

知道为什么这两种情况不起作用吗?

更新

运行脚本也sudo script.sh不会改变的权限TARGET

答案1

感谢PerlDuckCyrus谜团已经解开。

rsync -a创建具有与源相同权限的 TARGET 目录(在我的情况下为 755)。

相关内容