Распакуйте файлы когда rsync'in

Используя простые шарики POSIX:

ls -d -- [0-9].txt *[!0-9][0-9].txt
1
13.02.2014, 01:22
2 ответа

Насколько я знаю, что rsync не имеет той возможности. Я не рекомендовал бы распаковать прежде, чем передать файлы, если Ваш клиент не является действительно медленным по сравнению с дополнительным сетевым временем трансфера прежде, чем сделать распаковку.

Если Вы в программирование лучшего совета, я могу дать, должен смотреть на rdiff-backup, который является основанной на Python программой сверху libsync1 библиотека. Необходимо смочь зависнуть в тесте и распаковке на каждом файле, переданном там.

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

1
27.01.2020, 23:38

Я не могу думать о простом способе усилить rsync и выполнить распаковку. Можно сделать распаковку через пользовательскую предварительно загруженную библиотеку или пользовательскую файловую систему FUSE (на удаленной стороне, стороне с gzipped файлами), но это было бы большой работой.

Если можно предположить, что метка времени сжатого файла соответствует метке времени gzipped файла, и приемлемо передать целые файлы в случае модификации, то Вы не должны усиливать возможности инкрементного обновления rsync. То же идет, если файлы никогда не изменяются после того, как они создаются.

Первое препятствие - то, что это - удаленная копия. Устраните проблему путем монтирования удаленного каталога с SSHFS так, чтобы это было доступно как локальная файловая система.

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

mkdir server1
sshfs test@server1:/var/www/html/reports server1
cd server1
find . \( -type d -o -type f -name .gz \) -exec sh -c '
  for x; do
    if [ -d "$x" ]; then
      [ -d "$0/$x" ] || mkdir "$0/$x"
    else
      zcat "$x" >"$0/$x"
      touch -r "$x" "$0/$x"
    fi
  done
' /home/myself/reports {} +
1
27.01.2020, 23:38

Теги

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