我必须复制一个大目录树,大约 1.8 TB。都是本地的。出于习惯,我会使用rsync,但是我想知道是否有很多意义,以及我是否应该使用cp.
我担心权限和 uid/gid,因为它们必须保留在副本中(我知道 rsync 会这样做)。以及符号链接之类的东西。
目的地是空的,所以我不必担心有条件地更新一些文件。都是本地磁盘,所以不用担心ssh或网络。
我不想使用 rsync 的原因是因为 rsync 可能做的比我需要的多。rsync 校验和文件。我不需要那个,我担心它可能需要比 cp 更长的时间。
那你怎么看,rsync或者cp?
我已经搜索过这个选项,但只找到了涉及自定义补丁的解决方案。它没有显示在 --help 中并且找不到更多信息的事实可能表明答案是“否”,但我希望看到这一点得到确认。
是否可以使用 rsync显示总文件传输进度?
我知道您可以在使用 rsync 时使用-a或--archive激活存档模式。不幸的是,我不知道归档模式应该做什么,并且手册页根本没有明确说明这是什么:
等于 -rlptgoD(无 -H、-A、-X)
您能解释一下这些选项 ( rlptgoD) 的含义以及我使用它们时 rsync 的行为吗?
任何unix:
我有以下 cmd 行可以正常工作。
rsync -avr -e ssh /home/dir user@example.com:/home/
Run Code Online (Sandbox Code Playgroud)
但是我现在需要将它设置为 rsync 到只有一个 FTP 服务器的远程服务器。我该怎么做?
我查看了 rsync 帮助,但很快就迷路了(我不经常做这些事情)。
谁能澄清rsync--checksum和--ignore-timesoptions之间的区别?
我的理解如下:
--checksum
如果文件大小和时间匹配,它会在两端做一个校验和,看看文件是否真的相同。
--ignore-times
'传输'每个文件,不管两端的文件时间是否相同。由于它仍将使用增量传输算法,如果文件实际上是相同的,则不会传输任何内容。
这是技术上的区别,但据我所知,它们在语义上是相同的。
所以,我想知道的是:
我有一个目录,其中包含指向位于我系统上不同媒体上的其他目录的符号链接:
/opt/lun1/2011
/opt/lun1/2010
/opt/lun2/2009
/opt/lun2/2008
/opt/lun3/2007
Run Code Online (Sandbox Code Playgroud)
但符号链接显示为:
/files/2011
/files/2010
/files/2009
/files/2008
/files/2007
Run Code Online (Sandbox Code Playgroud)
如何执行rsync遵循符号链接的操作?
例如:
rsync -XXX /files/ user@server:/files/
我在 Linux 服务器上有一个远程文件系统的 sshfs 连接设置。我正在从本地服务器到 ftpfs 文件系统进行 rsync。由于此设置的性质,我无法chown对 sshfs 文件系统进行任何操作。
当我执行 rsync 时,它会在传输文件后尝试 chown 所有文件。这会导致 chown 错误,即使它可以很好地传输文件。
使用 rsync,有没有办法告诉它不要尝试 chown 文件?如果我 rsync 像 1000 个文件,我最终会得到 1000 个chown: permission denied (error 13)错误的日志。我知道得到这些错误不会有任何伤害,因为文件的所有权是由 sshfs 配置本身决定的,但最好不要得到它们。
按照此处给出的说明进行 rsync 备份时:http : //troy.jdmz.net/rsync/index.html
我收到错误消息“协议版本不匹配——你的外壳干净吗?”
我在某处读到我需要使提示 (PS1="") 和 motd (.hushlogin) 显示静音才能解决这个问题。我这样做了,提示和登录横幅(MOTD)不再出现,但运行时仍然出现错误:
rsync -avvvz -e "ssh -i /home/thisuser/cron/thishost-rsync-key" remoteuser@remotehost:/remote/dir /this/dir/
Run Code Online (Sandbox Code Playgroud)
ssh 客户端和 sshd 服务器都使用协议的第 2 版。
可能是什么问题呢?
[编辑] 我发现http://www.eng.cam.ac.uk/help/jpmg/ssh/authorized_keys_howto.html 指示有时需要“通过使用 -2 标志强制 v2 到 ssh 或 slogin
ssh -2 -i ~/.ssh/my_private_key remotemachine"
Run Code Online (Sandbox Code Playgroud)
目前尚不清楚这是否解决了问题,因为我认为我在错误更改后进行了此更改,但事实是错误已演变为其他内容。当我了解更多信息时,我会更新这个。我当然会尝试在 emacs shell 中运行它的建议 -
当我运行此命令时
rsync -avzp --del -e "ssh -p myport" user@hostname:/var/www/tests /var/www/tests
Run Code Online (Sandbox Code Playgroud)
文件会同步,但不是将文件保存在/var/www/tests.
/var/www/tests/tests
Run Code Online (Sandbox Code Playgroud)
并将文件放在那里。如何告诉 Rsync 不要创建新目录?