Mengapa rsync tidak ditemukan?

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

Jika saya melakukan ssh ke mesin 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

Aku telah menetapkan PATHdi $HOME/.profiledan $HOME/.bashrc. Haruskah saya mengaturnya di /etc/profilefile?

elbarna
sumber
The rsyncperintah harus hadir pada komputer lokal Anda.
ott--
1
Tentu saja hadir di kedua mesin
elbarna

Jawaban:

26

Anda .profilehanya dibaca ketika Anda masuk secara interaktif. Ketika rsync terhubung ke komputer lain untuk menjalankan perintah, /etc/profiledan ~/.profiletidak dibaca.

Jika shell login Anda adalah bash, maka ~/.bashrcdapat dibaca (ini adalah quirk of bash - ~/.bashrcdibaca oleh shell interaktif non-login, dan dalam beberapa keadaan oleh shell login non-interaktif). Ini tidak berlaku untuk semua versi bash.

Cara termudah untuk membuat rsync berfungsi adalah dengan melewatkan --rsync-pathopsi, mis

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

Jika Anda masuk melalui SSH dengan otentikasi berbasis kunci, Anda dapat mengatur PATHvariabel lingkungan melalui Anda ~/.ssh/authorized_keys. Lihat sh startup file over ssh untuk penjelasan tentang cara mengatur memuat .profileketika masuk melalui SSH dengan kunci.

Gilles 'SANGAT berhenti menjadi jahat'
sumber
7
Catatan: --rsync-pathdigunakan untuk mengatur jalur rsyncpada komputer jarak jauh . (pada pandangan pertama saya bertanya-tanya bagaimana mungkin menentukan jalan ke rsyncsaat meluncur rsyncdi mesin yang sama)
AL
@Gilles 'SANGAT berhenti menjadi jahat' Ada gagasan mengapa aku harus melakukan ini? Bash bukan shell default saya. Ksh adalah shell default saya. Saya login dengan ksh lalu beralih ke bash.
Cokedude
@cokedude Jika rsync diinstal pada akun Anda dan bukan pada level sistem, Anda harus melakukan beberapa konfigurasi pada akun Anda untuk dapat menggunakannya. Tidak cukup meletakkan rsyncbiner di suatu tempat: Anda juga perlu mengaturnya agar dapat ditemukan.
Gilles 'SANGAT berhenti menjadi jahat'