Копирование большого дерева с одной машины на другую, сохранение права собственности

Я пытаюсь скопировать большую структуру папок между машинами. Я хочу сохранить права собственности / права во время копирования, так как неразумно «исправлять» привилегированных лиц впоследствии.

Поэтому я использую следующую команду для tar файла с неприкосновенными личными данными и передачи данных на машину назначения. Те же пользователи существуют на обеих машинах.

tar cfzp - foldertocopy | ssh me@machine "cat > /applications/incoming/foldertocopy.tar.gz" 

Передача работает нормально, и следующим шагом является su для запуска на удаленном компьютере и разворачивания файла.

Проблема в том, что на диске недостаточно места для хранения сжатых и несжатых данных одновременно .

Я мог бы использовать rsync / recursive scp, но у моего пользователя нет прав на создание файлов с правильными привилегиями, и root не может войти в систему удаленно.

Какие у меня варианты? Исходным устройством является RHEL4, а местом назначения является RHEL5.

  • cp: не может stat: нет такого файла или каталога
  • как узнать ip ssh HostName
  • Сценарий для копирования файла на удаленный хост и его переименования
  • Почему scp не работает, когда я запускаю его на удаленном сервере для копирования обратно на локальный компьютер?
  • Передача файлов с помощью SSH и переключателя
  • Скрипты на несколько серверов одновременно
  • Однострочный трафик SCP для загрузки файла в конце строки
  • Транспортировка тара, чтобы разделить трубопровод на scp
  • 3 Solutions collect form web for “Копирование большого дерева с одной машины на другую, сохранение права собственности”

    Как root, настройте именованный канал:

     # mkfifo /tmp/fifo # chmod o+w /tmp/fifo 

    Затем передайте свои данные me :

     $ tar cfzp - foldertocopy | ssh me@machine "cat > /tmp/fifo" 

    Но прочитайте его как root :

     # tar -xfzp /tmp/fifo 

    Одним из решений проблемы является то, что ssh запускает разворот напрямую:

     tar cfzp - foldertocopy | ssh me@machine "cd rightplace; tar xzf -" 

    Почему вы не используете архив rsync?

     rsync -avzHAX foldertocopy user@remoteserver:/file/path/to/copy 

    Таким образом, вы можете сохранить каждую деталь в файле, а также с помощью «z» rsync сжимает поток «на лету».

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