Как сделать резервную копию через rsync на удаленном компьютере, сохраняя разрешения и права собственности?

Диск A – 2 ТБ в шкафу у себя дома.

Привод B – 2 ТБ в моем офисе на работе.

Я бы хотел, чтобы диск A был тем, который я использую регулярно, и иметь rsync-зеркало от A до B ночное время / в неделю.

Проблема, с которой я сталкиваюсь, заключается в том, что у нескольких пользователей есть вещи на A

У меня есть root run rsync -avz от A до $MYNAME:B

Корень, безусловно, может читать все на A , но не имеет разрешения на запись материала не $MYNAME на B

Как я должен это делать? Должен ли я иметь секретный ключ без пароля в A который записывается в root на B ? Это кажется очень опасным.

Кроме того, я бы предпочел использовать rsnapshot, но похоже, что они требуют, чтобы я рисовал из B в A используя секретный ключ без пароля для учетной записи root, на которую я так напуган.

  • Каковы последствия перезапуска sshd для существующих сеансов ssh?
  • Использование Rsync для SSH и поиска файлов
  • Изменить путь по умолчанию для того, когда я подключу SSH к серверу CentOS?
  • ssh-ключ не работает для одного сервера, но работает для другого
  • ssh authentification без пароля больше не работает
  • Как предотвратить смерть программы, когда ее сеанс ssh умирает?
  • Как получить вывод `yum list` для останова на одной строке при получении вывода через удаленную команду ssh?
  • Перезагрузка заставляет меня потерять ключи без пароля на других машинах
  • 3 Solutions collect form web for “Как сделать резервную копию через rsync на удаленном компьютере, сохраняя разрешения и права собственности?”

    Если он предназначен как резервная копия (я смотрю на тег), а не как удаленную копию рабочего каталога, вы должны рассмотреть возможность использования таких инструментов, как dar или good old tar . Если какой-то важный файл удаляется, и вы его не заметите, у вас не будет возможности восстановить его после недельной синхронизации.

    Второе преимущество заключается в том, что использование tar / dar позволит вам сохранить права собственности на файлы.

    И третий – вы будете экономить полосу пропускания, потому что вы можете сжимать контент.

    Существует --fake-super которая хранит атрибуты, которые нельзя установить в расширенных атрибутах (что означает, что целевая FS должна поддерживать расширенные атрибуты).

    Чтобы проверить поддержку расширенных атрибутов, вы можете сделать это с помощью setfattr или rsync. Затем он демонстрирует, как это работает:

     ~$ rsync --fake-super /bin/ls . ~$ getfattr -dm- ./ls # file: ./ls user.rsync.%stat="100755 0,0 0:0" 

    Обратите внимание: -a не сохраняет все, вам могут понадобиться -H, -A, -X, -numeric-ids.

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

    Альтернативный Rdiff-резерв на основе Rsync

    Возможно, стоит попробовать резервное копирование Rdiff .

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

    В качестве бонуса он также предоставляет дифференциальные резервные копии, поэтому вы можете вернуться «назад во времени». Однако rdiff-backup может работать медленнее из-за характера дифференциальных резервных копий.

    О ключах SSH и безопасности

    Как я должен это делать? Должен ли я иметь секретный ключ без пароля в A, который записывается в root на B? Это кажется очень опасным.

    Если вы боитесь этого, что является разумной вещью, чтобы быть здесь, может быть полезно следующее. Подготовьте следующее в одной строке с открытым ключом, который вы настраиваете на машине, которую вы хотите создать резервную копию ( /root/.ssh/authorized_keys ):

     command="rdiff-backup --server --restrict-read-only /",from="hostname.or.ip.address.to.allow",no-port-forwarding,no-X11-forwarding,no-pty ssh-rsa AAAA.... and the rest of your key in the same line. 

    Это пример использования ключа RSA. Измените его на свои нужды.

    При желании, настройте SSH-демона для приема только ключей с forced-commands для root . В sshd_config установите PermitRootLogin forced-commands-only .

    Это обеспечивает некоторую безопасность:

    • Forced command login только для root, в этом случае выполняется rdiff-backup в режиме только для чтения.
    • Разрешает только подключение из определенного источника (хоста).
    • Не разрешено использование портов TCP и X.
    • Нет.

    Однако,

    • Возможные уязвимости безопасности в Rdiff-резервном копировании могут быть использованы.
    • Всегда держите ключи в надежном месте. (Например, исключите их из своей резервной копии!)
    Interesting Posts

    Недопустимое MIT-Magic-Cookie на собственной машине с каждым новым Wi-Fi-соединением

    Почему расширение параметра bash не работает внутри системных файлов systemd?

    Я хотел бы удалить весь архив архива, кроме сохранения последнего сгенерированного архивного журнала

    Цитирование файлов листинга в UNIX

    Определить, какая программа заблокирована брандмауэром

    Howto Tell, если система аутентифицируется только с паролем или через PAM

    сжимать логротат

    Невозможные результаты pmap

    Использование mget для загрузки нескольких файлов из sftp

    Как выполнить двоичный файл, присутствующий в другом каталоге?

    Автоматически запускать команду на каждом узле при запуске с помощью cssh?

    Создание средней загрузки CPU / GPU / памяти

    Как я могу найти git commit в репо, который больше похож на указанную ветвь?

    Как использовать адрес содержимого в sed в osx без ошибки «ожидаемый контекстный адрес»

    Круговое соединение с Ethernet-соединением не работает, когда 1-й интерфейс

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