У меня есть a 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
полномочия dir к 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 прежде, чем выполнить сценарий. Так, это перестало работать на 2 передних сторонах:
007
, фактические полномочия не как ожидалось.chmod 770
) к TARGET
dir, полномочия все еще не изменяются.Какие-либо идеи, почему эти 2 случая не работают?
ОБНОВЛЕНИЕ
Запущение скрипта с sudo script.sh
не изменяет полномочия TARGET
, также.
Благодаря PerlDuck
и Cyrus
тайна решена.
rsync -a
создает ЦЕЛЕВОЙ dir с теми же полномочиями как ИСТОЧНИК (в моем случае 755).