Bash

我應該如何檢查遠端 smb serv 是否已掛載?

  • July 23, 2012

我很陌生mount。基本上,我在本地網路上有一個遠端 SMB 服務,我想從一個目錄複製圖像,然後每 5 分鐘重複一次。

我認為我需要做的是製作一個腳本來檢查伺服器是否已安裝,如果沒有安裝它,如果是,什麼也不做,然後執行 rsync。

我能夠(第一次)設置 crontab 以刪除目錄中的所有現有文件,然後執行rsync,但我不確定我應該如何處理 SMB 的東西。我應該掛載它,複製文件並解除安裝,還是應該保留連接?

順便說一句,我正在使用 OSX。

如果您的伺服器預計大部分時間都處於啟動狀態並連接,那麼我會說將安裝留在原位。這樣可以避免建立連接的一些成本。另一方面,如果您遇到網路中斷或類似的連接問題,那麼主動掛載可能會導致新寫入文件的數據失去,因為當網路消失時,文件系統不會被完全解除安裝。--checksum在這種意外解除安裝之後添加標誌可能是謹慎的rsync,以便不僅檢查文件修改時間(假設--times)而且檢查文件內容。這應該會減少強制解除安裝的不利影響。

要檢查是否安裝了某些東西,只需grepmount.

還要注意softhard選項mount.cifs,這將決定斷開的連接是否會導致讀取錯誤或程序掛起。我很確定使用該hard選項,即使連接失敗,您也會看到已安裝的遙控器。,soft我完全不確定。如果您看到文件系統仍然掛載,那麼您很有可能在連接恢復後能夠訪問它。但是,如果連接不可用,該hard選項將導致您rsync掛起。

引用自:https://unix.stackexchange.com/questions/43793