[Linux] 使用 cat 和 ssh 傳送檔案到遠端 Linux 上

[Linux] 使用 cat 和 ssh 傳送檔案到遠端 Linux 上

今天想要用 scp 把檔案傳到另一台 Linux 上,

發現那一台沒有裝 scp 所以不能傳…

不過那台 Linux 也不是一般的 CentOS、Ubuntu 之類的,

沒有 yum 和 apt-get 這類方便的套件管理工具可以用,

所以也不曉得要怎麼在上面裝 scp…

 

後來想想,可以把我本機 Linux 上的 scp 傳過去,

不過 scp 現在還不能用,要怎麼傳呢?

想起曾看過同事用過 pipe + ssh 的一招,

上網找了一下 + 自己嘗試,果真是可以成功的~

 

下面的例子,就是先用 cat 將本機的 /usr/bin/scp 內容印出到 stdout,

再經由 | pipe 轉向給 ssh 的 stdin,

而 ssh 就在遠端 Linux 上,把 ssh 的 stdin 的內容,

藉由 /bin/cat 轉到 /tmp/scp 這個檔案上。

以最終結果來說,就是把本機 /usr/bin/scp 傳到 /tmp/scp 上:

cat /usr/bin/scp | ssh root@172.22.2.2 "/bin/cat - > /tmp/scp"

 

這個技巧可以學起來,感覺在不同的地方也可以用呢~

 

參考資料:Can I pipe stdout on one server to stdin on another server? – Unix & Linux Stack Exchange

(本頁面已被瀏覽過 15 次)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料