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

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

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

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

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

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

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

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

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.)

  • изменить дату символической ссылки на bindfs
  • Есть ли способ создать ссылку, которая действует как ярлык?
  • не может создать символическую ссылку на CentOS 5.6 - Ошибка файла
  • Ссылка 2 существующих файла
  • Как я могу получить вывод `ls -l` для ссылки рекурсивно, пока не достигнут исходный файл?
  • Можно ли заменить каталог символической ссылкой без разрешения на запись в родительском?
  • OpenSSH отказался от каталога .ssh с символической ссылкой
  • Как restorecon обрабатывает ссылки?
  • команда cp, которая частично разрешает символические ссылки
  • Есть ли способ не создавать сим-ссылку, если существует папка
  • Как подойти к планированию иерархии файловой системы файлового сервера BSD
  • Interesting Posts

    Реинсталляция библиотеки NSS в CentOS (Amazon AMI)

    Как обходить фильтрацию маршрутных маршрутов (для ping)?

    При компиляции я могу использовать файл для параметров ./configure?

    доступ к USB-накопителю, поврежденный после смены uid

    Как можно использовать `dd` для блоков данных с правом сдвига?

    Перенос Linux-установки на новый компьютер

    TP-Link Archer T4u: невозможно перейти в режим мониторинга

    Может ли Linux поддерживать Mirror Bootable Disk с LVM, например, IBM-AIX / HP / Solaris UNIX?

    Удаление Grub из Windows 10 + Zorin Dual Boot

    Функции в ~ / .bash_profile не найдены в интерактивной оболочке

    Исполняемый файл Etcd получает разрешение от имени root

    Изоляция строки в / etc / passwd, которая содержит «строку», используя grep

    Доля NFS на Centos 7 Не удается автоматизировать

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

    Как получить сертификат на сервере с сервера центра сертификации с использованием запроса OpenSSL?

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