rsync -avP /home/user/.profile hpux3:/home/user/.profile
bash: rsync: command not found
如果我通过 ssh 连接到 hpux3 机器
rsync
version 3.1.1 protocol version 31
Copyright (C) 1996-2014 by Andrew Tridgell, Wayne Davison, and others.
Web site: http://rsync.samba.org/
output truncated
我已经设置PATH
了$HOME/.profile
和$HOME/.bashrc
。我应该将其设置在/etc/profile
文件中吗?
答案1
.profile
仅当您以交互方式登录时才会读取您的信息。当rsync连接到另一台机器执行命令时,/etc/profile
并~/.profile
不会被读取。
如果您的登录 shell 是 bash,则~/.bashrc
可能会被读取(这是 bash 的一个怪癖 —~/.bashrc
由非登录交互式 shell 读取,在某些情况下由登录非交互式 shell 读取)。但这并不适用于所有版本的 bash。
使 rsync 工作的最简单方法可能是传递选项--rsync-path
,例如
rsync --rsync-path=/home/elbarna/bin/rsync -avP /home/user/.profile hpux3:/home/user/.profile
如果您使用基于密钥的身份验证通过 SSH 登录,则可以PATH
通过~/.ssh/authorized_keys
.看通过 ssh 的 sh 启动文件有关如何.profile
在使用密钥通过 SSH 登录时安排加载的说明。
答案2
如果远程端未安装 rsync,则尝试将文件和目录从远程计算机同步到本地系统时也可能会发生此错误。
rsync -zarvh [email protected]:/var/www/html/release /var/www/html/release
bash: rsync: command not found
在远程端安装 rsync 将解决这种情况