我想要在我的 LAN 上两台具有 IP 地址192.168.20.9
且192.168.20.10
均运行 Ubuntu 10.10 的计算机之间进行 rsync。
我想尝试两台计算机之间的 rsync 和 ssh 服务。
答案1
我假设您希望能够以这两种方式执行此操作,即您登录用户的用户名在两台机器上是相同的,您乐意让它尽可能快速和简单地工作,并且您不需要使用密钥来执行此操作。
步骤如下:
设置 ssh
您需要安装软件包openssh-client
,openssh-server
然后从 192.168.20.9 检查您是否可以连接到 192.168.20.10
ssh 192.168.20.10
系统将提示您输入 192.168.20.10 上的密码。输入该密码即可继续。当系统询问是否可以连接时,请回答“是”。
以另一种方式重复该过程。
rsync
文件
要将名为 todo.txt 的文件从 192.168.20.10 上的桌面复制到 192.168.20.9,您可以在登录 192.168.20.9 时执行以下操作:
rsync -av 192.168.20.10:Desktop/todo.txt ~/Desktop/todo.txt
或者另一种方式,当登录到 192.168.20.10 时:
rsync -av ~/Desktop/todo.txt 192.168.20.9:Desktop/todo.txt
让事情变得更容易。
在机器 192.168.20.9 上,您可以在 Nautilus 中的文件 > 连接到服务器下将 192.168.20.10 添加为网络位置,然后选择 ssh 并输入您的用户名、密码等。在 192.168.102.10 上以相反的方式进行设置。然后,您可以使用 Nautilus 通过 scp 复制文件,...这很好。
答案2
rsync -av -e 'ssh -o PubkeyAuthentication=no' \
'[email protected]:~/remote/file' 'local/file'
可能更容易设置,因为它不需要传递公钥,并且可以防止“过多的身份验证失败用户名“https://superuser.com/questions/187779/too-many-authentication-failures-for-username
这假设你是192.168.20.9
。两个遥控器之间的传输比较困难:https://unix.stackexchange.com/questions/183504/how-to-rsync-files-between-two-remotes
答案3
已经有很好的答案了,但我想我会添加一些更明确的选项,特别是使用--dry-run
或-n
,-z
压缩,以加快速度,并--exclude
删除不必要的传输:
# Dry run - remove n to actually do it
rsync -anvz --exclude ".vscode" --exclude "GPUCache" --exclude ".pytest_cache" --exclude "pdf_proof" --exclude ".git" --exclude "docker_pdf_output" --exclude "working" --exclude "venv" --exclude ".DS_Store" --exclude "document.egg-info" --exclude "__pycache__" --exclude ".mypy_cache" [email protected]:/remote/path/to/directory/ ~/local/path/to/directory
请注意源上的尾随斜杠和目标上缺少的尾随斜杠 - 这样您就不会将源目录放在目标目录中,而是将源的内容放在目标目录中。