2

Я использую rsync для резервного копирования на моем устройстве Android для резервного копирования некоторых файлов с моего устройства на мой * nix сервер. Это работает, за исключением того, что целевой каталог и все файлы в нем имеют свои флаги режима файлов, установленные на 075, что делает их недоступными для владельца (меня).
Я предполагаю, что недостаток заключается в резервном копировании rsync, но я не нашел способа исправить это.
Есть ли способ запустить задание, когда файлы передаются через ssh?

Мой текущий обходной путь заключается в том, чтобы задание cron устанавливало флаги файлов на 755 с регулярным интервалом.

Я использую следующую команду rsync:

rsync -rptgo --progress --delete-after -e "ssh -y -p 22  -i '/sdcard/dss_key'" /sdcard/myfolder user@server:~/

1 ответ1

1

Возможно, разрешения на вашем мобильном устройстве (источник) установлены на 075 . При вызове с параметром -p rsync сохраняет разрешения.

Когда эта опция отключена, разрешения устанавливаются следующим образом:

o Существующие файлы (включая обновленные файлы) сохраняют свои существующие разрешения, хотя параметр --executability может изменить только разрешение на выполнение для файла.

o Новые файлы получают свои "нормальные" биты разрешений, установленные для разрешений исходного файла, маскируемых с помощью разрешений по умолчанию для директории принимающего (либо umask принимающего процесса, либо разрешений, указанных через ACL по умолчанию для целевого каталога), и их специальные биты разрешений отключаются за исключением случая, когда новый каталог наследует бит setgid от своего родительского каталога.

с man-страницы rsync

Итак, вы, вероятно, должны использовать

rsync -rtg --progress --delete-after -e "ssh -y -p 22 -i '/sdcard/dss_key'" /sdcard/myfolder user@server:~/

Я также опустил флаг -o (сохранить владельца), который эффективен только в том случае, если вы входите в пункт назначения как root , чего не делаете, согласно данной команде.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .