Bash
Rsync 似乎與 .bashrc 不兼容(導致“你的 shell 乾淨嗎?”)
事實證明 rsync 不能與具有 .bashrc 文件的遠端伺服器一起使用?
在本地客戶端,我在執行 rsync 時得到:
protocol version mismatch -- is your shell clean? (see the rsync man page for an explanation) rsync error: protocol incompatibility (code 2) at compat.c(180) [sender=3.0.7]
正如這裡建議的那樣,刪除伺服器上的 .bashrc 解決了這個問題。如何在不刪除 .bashrc 文件(暫時)的情況下解決它?
.bashrc
如果遠端伺服器上的 向終端輸出任何內容,您可能會遇到問題。Rsync 可能沒有預料到,因此可能會出現問題。您可以通過刪除該輸出文本中的任何命令
.bashrc
或通過管道將任何輸出傳送到 /dev/null 來解決此問題。
.bashrc 確實不是生成輸出的正確位置,因為它會導致此類問題。但是,很多人都僥倖成功,直到他們嘗試執行 rsync :-)
任何需要的輸出(以及相關的邏輯和命令)都應該移動到您的 .bash_profile 中(例如,請參閱伺服器故障問題“.profile vs. .bash_profile vs. .bashrc”以進一步討論文件之間的差異)。
這樣,您無需在登錄時犧牲獲取輸出,也無需在要使用 rsync 時對 .bashrc 進行臨時更改。