[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
(本頁面已被瀏覽過 659 次)