tar használata SSH-n keresztül

A minap gépet telepítettem, ami Gentoo esetén annyiból áll, hogy ki kell csomagolni a tar.gz-t. A telepítendő gépet felbootoltam PXE-vel hálózaton keresztül, azonban a tar.gz-t nem akartam (és nem is tudtam volna) hova másolni, így marad az egyszerű megoldás: SSH-n keresztül kell kicsomagolni.

Kicsomagolás

Azon a gépen, ahová ki szeretnénk csomagolni a távoli gépen lévő tar.gz fájlt, csak a következő parancsot kell futtatni:

ssh root@tavoli.gep "cat /ahol/fajl.tar.gz" | tar zxvf -

Mit is csinál a parancs?
SSH-n bemegy a távoli gépre, ahol cat-tal az STDOUT-ra (standard outpu) kiírja a fájl tartalmát. Azonban ezt egy pipeal ( | ) átküldjük a helyi gépre, ahol a tarnak a – jel használatával megmondjuk, hogy ne fájlbó, hanem az STDIN-ről (standard input) olvassa be a kitömörítendő dolgot.

Becsomagolás

A fenti elgondolást követve fordítva is csinálhatjuk, tehát becsomagolunk egy mappát távoli gépre.

tar zcvf - /www | ssh root@masikgep "cat > /ahol/fajl.tar.gz"

A parancs hatására a tar elkezdi tömöríteni a /www mappát, azonban az eredményt nem fájlba írja, hanem a pipe-on keresztül átmegy a másik gépre, ahol a cat segítségével beolvassuk és fájlba írjuk azt.

Az alábbi kimenetet látjuk majd becsomagoláskor:

tar: Removing leading `/' from member names
/www/
/www/mappa1/
/www/mappa1/almappa/
.....
Password:

Természetesen rengeteg módszer létezik, ez csak egy a sok közül.

3 hozzászólás


  1. Jó cucc, gyakran használom….


Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöljük.