复制到远程计算机上的 NTFS 文件系统,同时保留元数据

复制到远程计算机上的 NTFS 文件系统,同时保留元数据

我想将一堆文件复制到远程计算机上的 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?我不知道了。

答案1

管道技巧似乎可以在本地远程机器上工作。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

答案2

使用 tar 作为容器来保存文件信息是一个好主意。

如果密码不是选项,您可以随时向远程计算机上的 root 帐户添加 ssh 密钥,并进行基于证书的身份验证。

相关内容