有没有办法为每个远程主机指定默认 rsync 选项?例如我有一个 NAS,地址为 192.168.100.12;它的 rsync 路径是,它的 SSH 端口是 2222。每次调用 rsync 命令时都/opt/bin/rsync
必须手动指定,这很糟糕。--rsync-path=/opt/bin/rsync -e 'ssh -p 2222'
答案1
rsync
没有配置文件。
您可以在以下位置使用别名.bashrc
:
alias nassync="rsync --rsync-path=/opt/bin/rsync -e 'ssh -p 2222'"
答案2
SSH 配置
您可以在以下位置设置任何 ssh 选项~/.ssh/config
:
Host nas
Hostname my-home-nas.duckdns.org
Port 2222
User app
然后,每当您nas
通过使用 SSH 的命令引用时,都会应用这些选项:
rsync -avhP --bwlimit=5000 --size-only ./data/ nas:/backup/data/
小路
在远程系统上,您可以将其设置export PATH=/opt/bin/:${PATH}
为接近顶部,~/.profile
这样/opt/bin
优先于/usr/local/bin
。
作为命令
如果您希望其他用户或没有登录配置文件的命令可以访问该命令,您可以为其余部分创建一个 bash 脚本:
/usr/local/bin/nas-rsync
#!/bin/bash
set -e
set -u
# --size-only so that metadata differences between FAT and EXT3
# or APFS don't cause retransfer
# add --bwlimit=5000 to limit bandwidth to 5MB/s - usefulif you have
# a really dumb switch that won't let other devices communicate when
# one device is maxing out a 100mbps connection
rsync -avhP --size-only -bwlimit=5000 /home/app/data/ nas:/backup/data/