Saya mencoba menggunakan rsync untuk membuat dir remote yang identik dengan versi lokal saya, jadi saya melakukan sesuatu seperti (dengan barang "saya" di bawah diganti dengan sesuai)
rsync -avhe 'ssh -p 7822' --progress --delete \
/mylocaldir myusername@myremotehost:~/myremotedir`
Output dari perintah menunjukkan peringatan tetapi tidak ada pesan kesalahan:
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LC_NUMERIC = "c",
LANG = "fr_FR.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
building file list ...
70 files to consider
Online/index.html
582 100% 0.00kB/s 0:00:00 (xfer#1, to-check=67/70)
sent 2.28K bytes received 48 bytes 665.71 bytes/sec
total size is 919.11K speedup is 394.47
Tetapi ketika saya memeriksa dir remote, tidak ada yang diperbarui. Saya mencobanya beberapa kali. Apa yang terjadi disini ? Setiap bantuan dihargai.
Perbarui, sebagai jawaban atas komentar pertama di bawah ini: di sini adalah isi file / etc / profile saya:
# System-wide .profile for sh(1)
if [ -x /usr/libexec/path_helper ]; then
eval `/usr/libexec/path_helper -s`
fi
if [ "${BASH-no}" != "no" ]; then
[ -r /etc/bashrc ] && . /etc/bashrc
fi
/etc/profile
(atau apa pun) Anda yang menghasilkan output ketika dijalankan di shell non-interaktif. Ini melanggarrsync
protokol. Pada dasarnya Anda perlu mengidentifikasi perintah-perintah itu, dan menjalankannya hanya ketika$-
berisii
.echo $-
, saya mengertihimBH
, jadi saya$-
memang berisii
.$-
memang mengandungi
shell interaktif. Ini tidak terjadi ketika shell (remote) dijalankanrsync
./etc/profile
atau file konfigurasi lainnya.Jawaban:
rsync
sedang berjalan, sehingga pesan kesalahan lokal tidak kritis. Sebagai gantinya, saya menduga bahwa dua definisi direktori Anda tidak seperti yang Anda inginkan, dan Anda mungkin mencari di tempat yang salah untuk file.Anda memiliki sumber
/mylocaldir
dan tujuan~/myremotedir
. Ini akan dibuat~/myremotedir/mylocaldir
pada target, dan di situlah file akan ditempatkan.Jika Anda ingin konten yang
/mylocaldir
akan disalin~/myremotedir
Anda perlu memberikan trailing/
pada direktori sumber, seperti ini:NB Saya sudah membagi perintah menjadi dua baris agar mudah dibaca. Seperti ditulis sintaksis shell yang valid, tetapi hapus
\
karakter pada akhir baris pertama dan bergabung bersama-sama jika Anda suka.Pesan kesalahan perl tentang lokal akan datang dari beberapa program yang dieksekusi sebagai bagian dari proses login Anda. Mungkin
path_helper
, yang tampaknya merupakan aplikasi MacOS jadi saya tidak bisa memberi tahu Anda tentang pentingnya atau jika tidak berkomentar, atau bisa juga sesuatu di dalamnya/etc/bashrc
.Daripada mencoba mengidentifikasi aplikasi yang menyinggung, opsi lain, tentu saja, adalah menginstal file lokal Prancis pada sistem target Anda, sehingga kesalahan tidak lagi dipicu.
sumber