Архивирование домашней папки пользователя на удаленный сервер без каких-либо символических ссылок?

Нам нужно сделать однократное копирование архивных копий домашних папок пользователей на сервер архива (до окончательного удаления), когда они уйдут, если позже они обнаружат, что им могут потребоваться некоторые из их файлов (хотя мы, конечно, очень сильно побуждайте их брать за собой все необходимое, прежде чем они захотят).

Мы использовали scp для этого, но теперь он случайно попал в ловушку у прежнего пользователя, который установил некоторое программное обеспечение, которое создало необычную структуру символической ссылки в одной из своих папок, что, казалось, привело к тому, что scp выглядел постоянно, а затем пытался копировать скорее, чем ожидалось, до того, как их остановили.

К сожалению, оказывается, что scp, похоже, всегда следит за символическими ссылками и, похоже, не имеет возможности предотвратить это.

Я ищу альтернативный способ резервного копирования папки пользователя, которая позволяет избежать этой проблемы (и в идеале не сложнее, чем это абсолютно необходимо).

tar может быть возможностью, но я немного обеспокоен тем, что создание tarball локально, прежде чем копировать его на сервер архива, может использовать не несущественный объем пространства для хранения и может создавать определенные трудности в том случае, если наш файловый сервер станет более полным в какой-то момент в будущем.

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

Может ли кто-нибудь предложить надежную и простую альтернативу scp для этого?

  • Местоположение Java из / usr / bin / java
  • Если символическая ссылка на NFS указывает на локальный диск, будет ли потерян локальный диск?
  • Могу ли я сделать символическую ссылку на разные местоположения на разных машинах?
  • Есть ли легкая файловая система, которая реализует символические ссылки и разрешения файлов поверх другой файловой системы, которая не поддерживает их?
  • Сценарий разрешения FS
  • Что такое точка точка (..)? Почему его поведение отличается от символических ссылок?
  • Заменить файл жесткой ссылкой на / dev / null
  • cd и ls ведут себя по-разному, когда внутри softlink к директории
  • 2 Solutions collect form web for “Архивирование домашней папки пользователя на удаленный сервер без каких-либо символических ссылок?”

    Если вам нравится tar за исключением временного файла, это легко: не используйте временный файл. Используйте трубу.

     cd /home ; tar cf - user | gzip | ssh archivehost -l archiveuser 'cat > user.archived.tar.gz' 

    Замените xz или все, что вы предпочитаете для gzip . Или переместите его на другую сторону соединения, если сохранение циклов ЦП на главном сервере более важно, чем сохранение пропускной способности сети (и центрального процессора на сервере архива)

     cd /home ; tar cf - user | ssh archivehost -l archiveuser 'gzip > user.archived.tar.gz' 

    Вы тоже можете вставить gpg . Имейте пару ключей, которые предназначены только для этих архивов, зашифруйте с помощью открытого ключа при хранении, используйте закрытый ключ, когда вам нужно что-то восстановить.

    Более подробная информация по запросу:

    Я хочу, чтобы user был пользователем, чей домашний каталог /home/user вы архивируете. archivehost – это сервер, на котором вы собираетесь хранить архивы, а archiveuser – это учетная запись на сервере архива, которая будет владеть архивами.

    tar cf - user означает «создать tar-архив user и записать его в stdout». -c – «create», а -f - «использовать stdin / stdout в качестве файла». Вероятно, он будет работать только tar c user поскольку -f - вероятно, будет по умолчанию, но первоначально по умолчанию действие tar состояло в том, чтобы читать или записывать ленточное устройство. Использование явного -f - может быть просто признаком того, что я стар.

    Флаг tar z был бы прекрасен, за исключением того, что я не мог показать, как переместить его на другую сторону ssh . (Кроме того, соединение gzip и tar с явным каналом является одной из тех вещей «старых людей» – у tar не всегда была xz -3v опция.) Плюс я могу заменить bzip2 , lzop , xz -3v или любую другую программу сжатия без необходимости для запоминания соответствующих параметров tar .

    Я никогда не слышал о --checkpoint раньше, так что вам просто придется полагаться на свои собственные тесты для этого.

    Rsync – разумный выбор. Нет ничего плохого в использовании rsync для одноразовой передачи.

    Тар также является разумным выбором. Вам не нужно хранить архив локально, вы можете напрямую подключить его к SSH .

    Другая возможность – установить серверный каталог через SSHFS . Однако будьте осторожны, что SSHFS не сохранит все метаданные, такие как разрешения. (Tar и rsync могут не сохранять все метаданные, но они могут сделать лучшую работу – pass --acls --xattrs – GNU tar, pass --acls --xattrs – rsync.)

    Interesting Posts

    mysql workbench для linux deepin 15.3

    Как остановить ./configure script?

    Попытка получить конкретную информацию из массива

    Обработка текста и экспорт содержимого на лист Excel

    псевдо-интерактивный скрипт ssh

    Как мне получить xargs, чтобы показать мне строки команд, которые он генерирует, не запуская их?

    Есть ли способ сделать sed неудачным, если шаблон не найден?

    Обрезать SVG-чертеж до размера холста в командной строке

    Как копировать символические ссылки при сохранении правильности ссылки?

    Как указать дополнительные параметры для опции -compress-program для GNU sort?

    Ошибка при запуске безгласного firefox через Selenium

    Символы внутри установленных cifs отображаются как каталоги

    Можно ли обновить заголовки окон терминала во время выполнения процесса?

    Как напечатать имя строки, если максимальное значение выше, чем медианное значение других

    Как использовать OverlayFS для защиты корневой файловой системы?

    Linux и Unix - лучшая ОС в мире.