從腳本中使用 Netcat(無需登入目標)

從腳本中使用 Netcat(無需登入目標)

我有一個備份方法,將家裡的所有 Unix 設備設定為 tar|pv|pigz|nc 到本地伺服器。正如我從眾多範例中看到的,它們都要求您首先讓目標電腦偵聽連接埠(例如,在實體上或透過 ssh)

nc -w 60 -l 19001 > /dir/to/backup.tgz

然後開始從當前機器發送流

tar -cpf - /dir/to/backup | pv | pigz | nc -w 10 dest.i.p.addr 19001

我正在嘗試編寫此腳本,以避免在此過程中必須在主機上打開多個終端,並使其幾乎一鍵單擊。通常透過 ssh 發送命令來執行是

ssh -f [email protected] "nc -w 60 -l 19001 > /dir/to/backup.tgz"

但是,當連接埠開啟並且資料正在傳輸和接受時,backup.tgz 檔案不會被填入:始終讀取為空。這讓我相信透過 ssh 在一行中發送命令不會保持偵聽連接埠開啟。

是否有其他我沒有看到的路線,或者我總是需要登入目標電腦來建立偵聽會話?

相關內容