Копирование в файловую систему NTFS на удаленном компьютере с сохранением метаданных

432
Lemming

Я хочу скопировать кучу файлов в раздел NTFS на удаленном компьютере, предварительно сохранив даты файлов. Сохранение метаданных в локальной копии уже сложно для файловой системы NTFS:

$ cp -p testfile /windows/c/ cp: die Zeiten für '/windows/c/testfile' werden beibehalten: Vorgang nicht zulässig 

(Перевод: «сохранение времени не допустимо»)

Работает только при копировании с правами root:

$ sudo cp -p testfile /windows/c/ 

Это уже странно, но я пока не знаю лучшего решения.

Но как скопировать на удаленную машину? Я хотел бы сделать:

$ scp -p testdir root@remote:/windows/c/ 

Но на удаленной машине есть только «sudo», нет доступа к паролю для «root». Я хочу оставить это так. Я мог бы сделать:

$ tar testdir | ssh remote sudo tar x --directory=/windows/c 

но я не могу ввести пароль 'sudo' таким образом. Я тоже пробовал

remote$ mkfifo /tmp/channel.tar remote$ sudo tar xf /tmp/channel.tar --directory=/windows/c $ mkdir /tmp/remote-tmp $ sshfs remote:/tmp /tmp/remote-tmp $ tar cf /tmp/remote-tmp/channel.tar testdir 

но ничего не происходит на удаленной машине. Может быть, sshfs не поддерживает FIFO? Я понятия не имею больше.

0

2 ответа на вопрос

1
Lemming

Трюк, похоже, работает на удаленной машине локально. SSHFS кажется блокировщиком. Я нашел рабочий путь без SSHFS:

remote$ mkfifo /tmp/channel.tar remote$ sudo tar xf /tmp/channel.tar --directory=/windows/c $ tar c testdir | ssh remote dd of=/tmp/channel.tar 
0
user2629074

Использование tar в качестве контейнера для сохранения информации о файле - хорошая идея.

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

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