Bash

Rsync 似乎與 .bashrc 不兼容(導致“你的 shell 乾淨嗎?”)

  • March 27, 2022

事實證明 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 進行臨時更改。

引用自:https://serverfault.com/questions/304125