Pourquoi rsync est-il introuvable?

16
rsync -avP /home/user/.profile hpux3:/home/user/.profile
bash: rsync: command not found

Si j'ai fait ssh sur la machine 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

J'ai mis PATHdans $HOME/.profileet $HOME/.bashrc. Dois-je le mettre dans le /etc/profilefichier?

elbarna
la source
La rsynccommande doit être présente sur votre ordinateur local.
ott--
1
Bien sûr, est présent dans les deux machines
elbarna

Réponses:

26

Votre .profileest lu uniquement lorsque vous vous connectez de manière interactive. Lorsque rsync se connecte à une autre machine pour exécuter une commande /etc/profileet ~/.profilen'est pas lu.

Si votre shell de connexion est bash, alors il ~/.bashrcpeut être lu (c'est une bizarrerie de bash - ~/.bashrcest lu par des shells interactifs sans connexion, et dans certaines circonstances par des shells non interactifs de connexion). Cela ne s'applique cependant pas à toutes les versions de bash.

Le moyen le plus simple de faire fonctionner rsync est probablement de passer l' --rsync-pathoption, par exemple

rsync --rsync-path=/home/elbarna/bin/rsync -avP /home/user/.profile hpux3:/home/user/.profile

Si vous vous connectez via SSH avec une authentification par clé, vous pouvez définir la PATHvariable d'environnement via votre ~/.ssh/authorized_keys. Voir sh startup files over ssh pour des explications sur la façon d'organiser le chargement .profilelors de la connexion via SSH avec une clé.

Gilles 'SO- arrête d'être méchant'
la source
7
Remarque: --rsync-pathest utilisé pour définir le chemin d'accès de rsyncsur l' ordinateur distant . (à première vue, je me demandais comment était-il possible de spécifier le chemin vers rsyncen lançant rsyncsur la même machine)
AL
@Gilles 'SO- arrêtez d'être méchant' Une idée pourquoi je dois faire ça? Bash n'est pas mon shell par défaut. Ksh est mon shell par défaut. Je me connecte avec ksh puis passe à bash.
cokedude
@cokedude Si rsync est installé sur votre compte plutôt qu'au niveau du système, vous devez faire une configuration sur votre compte pour pouvoir l'utiliser. Il ne suffit pas de placer le rsyncbinaire quelque part: vous devez également organiser sa recherche.
Gilles 'SO- arrête d'être méchant'