scp 沒辦法,scp會直接覆蓋。rsync沒辦法,會讓兩個檔案同步變成一模一樣...
這時候就只好用ssh 原始操作方式
ssh user@remote "要處理的指令"
那麼就簡單了,如果要抓取遠端的檔案,附加到本地,那就在遠端使用cat
指令,然後用>>
修改資料串流附加到本地的檔案不就行了嗎?沒錯
ssh user@remote "cat filename" >> /LocalPath/FileName
那我就舉一反三,資料串流改用>
就是複製!!! ... 對不起,脫褲子放屁了,直接用scp
或rsync
不就好了... 這邊就是發現scp
或rsync
只能複製,我們才去找可以附加檔案的方式,別又把這個方法,重新拿回去當複製的的功能用,有句名言當你手上拿著鎚子,你就覺得任何東西都像釘子
好,剛剛是抓遠端檔案附加到本地,那反過來,抓本地檔案附加到遠端呢?我上查到了一個很神奇的用法
cat local-source-file-name | ssh user@some.domain “cat >> remote-target-file-name“
得改用管線的指令,如果用ssh user@some.domain “cat >> remote-target-file-name“ < cat local-source-file-name
,一定失敗,因為那串指令會通通送到遠端去執行,cat local-source-file-name
這個指令也是在遠端執行,根本不是cat
你本地的資料。
總結:
- 遠端到本地,直接ssh 遠端 cat 檔案
>>
本地檔案 - 本地到遠端,要做管線,cat 本地檔案 | ssh 遠端 cat >> 檔案
沒有留言:
張貼留言