用dd,tar+管線來實線遠端解壓tar,磁帶

觀念:
1.ssh可以直接對遠端主機下批次指令
2.tar 可以用 - 代表從Console來的訊息

情境1:將tar送到遠端並解壓,已知A主機的user1有一個tar檔名為file.tar,要送到B主機的user2帳號家目錄中並解壓,指令如下:

user1@A[~]$ cat file.tar | (ssh user2@B ' cd /home/user2; tar xf -')
上面的式子會將tar檔用 pipe送給B主機,並且在上面解壓完,其中 cd /home/user2可以不加,如果要解到特定目錄則補上

情境2:A主機上有1磁帶裝置 /dev/st0,且user1有權限讀取,B主機的user2要直接將磁帶中的檔案取得,指令如下:
user2@B[~]$ ssh user1@A ' dd if=/dev/st0 bs=65536' | tar xvf -
上面的式子會將A的 磁帶 透過pipe送到B,並直接在B解壓
其中bs的值如果太小可能會發生"Cannot allocate memory"的錯誤,該值必須大於磁帶最小的區塊才行

留言

這個網誌中的熱門文章

[Linux] 如何 hex 字串 與 文字互轉

記下 openssh 中 sftp的log

[linux]用指令來做音量控制