![rsync 每个站点的配置文件?](https://linux22.com/image/1411050/rsync%20%E6%AF%8F%E4%B8%AA%E7%AB%99%E7%82%B9%E7%9A%84%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%EF%BC%9F.png)
我知道如何为 ssh 配置每个站点的条目,但是是否有任何类型的 rsync 客户端配置允许每个站点的配置选项和别名或类似的快捷方式,如 .ssh/config?
我很好奇,因为我的 Android 手机上安装了一个最小的 ssh 服务器,并且还有一个最小的 rsync 工具。我已经厌倦了必须以 root 身份登录到手机并将两个工具符号链接到 Android 操作系统寻找可执行文件的标准位置,因为 ssh 服务器是基本框架,并且有一个典型的 *bear 多链接二进制文件用于基本的 unix 命令(不包括 rsync)
每次我想对手机上的文件进行 rsync 时,我最终都必须包含 --rsync-path=/path/to/rsync/android/files/rsync,但此路径始终相同。与此同时,我使用 shell 脚本包装器中的 glob 方法解决了这个问题,但这有时会限制我使用 rsync 调用可以进行的自定义。
我只是想知道是否有类似于 .ssh/config 文件的东西,我可以在其中为我的手机创建一个别名(例如“android”),其中指定 rsync android:/mnt/sdcard 将自动假定 --rsync-path=/blah/blah/blah --no-g --no-p --no-t 等等。
特雷`
答案1
查看ssh forced-commands
。它易于使用,并强制目标主机运行某个命令。要点如下:
- 创建一个新的密钥对。
- 将公钥放入 android 用户的 authorized_keys 文件中,行首包含以下内容:`command="/path/to/rsync $SSH_ORIGINAL_COMMAND"
- 将此参数添加到 rsync 命令 `-e "/path/to/ssh -i /path/to/private_key"
这将强制 Android 运行指示的程序,SSH_ORIGINAL_COMMAND 参数将被任何其他选项替换。谷歌搜索“rsync forced-command”,你会找到很多方法。