rsync 到同一 wifi 内的另一台机器

rsync 到同一 wifi 内的另一台机器

我经常将书籍备份到同一 Wi-Fi 内的另一台电脑上,

rsync -avlu --exclude=".git" ~/Documents/Books [email protected]:~/Documents/Books
rsync -avlu --exclude={.git,.DS_Store}" ~/Documents/Books [email protected]:~/Documents/Books

每次我都应该记住目标机器的 IP 地址。

尝试了@local 和@localhost 但失败了。

我怎样才能使用名称而不是一系列数字?

答案1

为此,您需要设置文件:~/.ssh/config

touch ~/.ssh/config
chmod 600 ~/.ssh/config

该文件的内容应如下所示:

Host my-destination-host
    HostName 192.168.31.90
    IdentityFile ~/.ssh/id_rsa
    User beta
    Port 22

Host another-example
    HostName 222.222.22.222
    User another-user
    IdentityFile ~/.ssh/another-path/id_rsa
    Port 2233
    RemoteForward 6900 127.0.0.1:5900
    RemoteForward 3389 192.168.100.115:3389
    Compression yes
    CompressionLevel 6

# etc.

一旦文件保存完毕,你就可以[email protected]通过以下命令进行 ssh 连接:

ssh my-destination-host

或者对于另一个示例 - 请注意 Tab 补全适用于主机名:

ssh 另一个示例Tab ↹

分别来说,大多数使用 ssh 的命令都可以使用配置文件。例如rsync

rsync -avlu --exclude=".git" ~/Documents/Books my-destination-host:~/Documents/Books

~/.ssh/config该文件的使用参考和更多示例:

答案2

为什么不直接使用“点本地”主机名?

rsync -avlu --exclude=".git" ~/Documents/Books [email protected]:~/Documents/Books

在接收机器上,转到“系统偏好设置”->“共享”。在“计算机名称”旁边单击“编辑”。然后复制地址。例如,我的地址是“terminal-36.local”。

还请考虑指定--rsh=/usr/bin/ssh -o AddressFamily=inet。将 .local 主机名解析为 IPv6 总是让我很烦恼(但也许你会更幸运)。

相关内容