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.
Jó cucc, gyakran használom….
Remek kis script, tetszik!