SSH 配置

SSH 配置

有没有办法为每个远程主机指定默认 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/

相关内容