Как восстановить разрешения с помощью BackInTime/rsync?

Hice un truco feo de una sola línea:

 ip link | awk -F' ' '{print $2 $17}' | paste -d " "  - - | grep -v lo:

Si cuenta los campos usando espacios como separadores, verá que los campos que necesita son el 2 y el 17.

Pero se imprimirán uno debajo del otro, la pasta coloca las líneas adyacentes como columnas. La corrección de pegado que coloca líneas adyacentes una al lado de la otra en una línea. No pude encontrar una forma inteligente de evitar obtener la línea lo, así que la excluí antes de imprimir con grep

Probando aquí:

ip link | awk -F' ' '{print $2 $17}' | paste -d " "  - - | grep -v lo:
enp2s0: 50:9a:4c:b5:af:ea
wlp3s0: e8:9e:b4:66:e3:ea
3
29.08.2017, 13:33
2 ответа

GNUchmodможет взять справочный файл:

--reference=RFILE
use RFILE's mode instead of MODE values

Если структура папок на задней панели осталась прежней, вы можете сделать что-то вроде:

cd /path/to/backup
find. -exec chmod --reference={} --changes /source/of/{} \;

/source/of— это путь, с которого была сделана резервная копия.

Теперь вы можете использовать тесты findдля работы только с нужными файлами/каталогами.

Поскольку вы говорите, что он использует rsync, я думаю, что структура каталогов должна быть сохранена, и у вас должна быть возможность монтировать удаленную систему локально с помощью SSHFS и т. д., так что в принципе это должно работать.

5
27.01.2020, 21:11

Список файлов с измененными правами можно получить с помощью rsync -ani

rsync -ani newFile new/ | awk {'print $2'}

затем мы можем передать вывод в chmod и использовать вывод для эталонного файла из резервной копии в исходный файл, в котором были изменены разрешения:

rsync -ani newFile new/ | awk {'print $2'} | xargs -I@ chmod --reference=new/@ @

Я попытался воспроизвести экземпляр, создав файл и выполнив rsync для нового каталога, а затем изменил права доступа к исходному файлу:

[pijain@kuliza370 testing]$ ll
total 0
drwxrwxr-x. 2 pijain pijain 21 Aug 29 16:56 new
-rwxrwxrwx. 1 pijain pijain  0 Aug 29 16:56 newFile(origial file with 777)
[pijain@kuliza370 testing]$ ll new
total 0
-rw-rw-r--. 1 pijain pijain 0 Aug 29 16:56 newFile(backup with 644)
3
27.01.2020, 21:11

Теги

Похожие вопросы