Root Cron 作業不執行 chmod

Root Cron 作業不執行 chmod

我有一項root cron工作,在安裝的不同硬碟中建立目錄,然後使用rsync我將所有檔案從來源複製到目標。腳本如下圖所示:

 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。

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建立具有與 SOURCE 相同權限的 TARGET 目錄(在我的例子中為 755)。

相關內容