Upload souborů na FTP přes terminál
Jednou za čas se naskytne určitě každému správci nějakého serveru (nebo jen linuxovému maniakovi co vše ovládá v textovém prostředí) potřeba něco nahrát na FTP. Samozřejmě ideálně aniž by musel instalovat něco navíc. I já se dostal do této situace, přesněji jsem potřeboval zazálohovat všechny stránky na jednom serveru a výsledek nějak dostat na disk na jiném serveru. Hlavní problém byl v mojí pomalé přípojce, kopírovat ze serveru k sobě a od sebe na nový server bylo nemyslitelné. Po chvilce Googlení však není žádný problém neřešitelný. Proto se s Vámi teď o něj podělím…
Přes příkazový řádek odeslat vnořené složky s tisíci soubory je přece jenom trochu oříšek. Klasický klient totiž nepodporuje rekurzivní kopírování. Řešení je snadné. Prvně vytvoříme .tar.gz archív (něco jako zip). Najedeme si do složky ze které budeme chtít odeslat soubor, nebo kde bude uložen vytvořený archív.
Použijte tento příkaz, jen si soubor pojmenujte a zadejte cestu ke složce, již chcete sbalit do jednoho souboru.
$ tar -pczf nazev.tar.gz /cesta/ke/slozce
Následně se připojíme k FTP
$ ftp dopln_adresu
(na vyzvání zadáte login a heslo)
Vejdeme do složky kam chceme archív uložit. Normálně použijeme klasické příkazy z linuxu jako v terminálu. příkaz mput * pak překopíruje všechny soubory ze složky, ve které se aktuálně nacházíte a splňují kritéria. V tomto případě * znamená, že půjde o všechny soubory.
ftp> cd zvolena/slozka
ftp> mput *
Kopírování by mělo být po chvíli úspěšně dokončeno. Pro sofistikovanější řešení (rekurzivní kopírování, synchronizaci, …) použijte třeba lftp nebo ncfp. Jsou to mnohem silnější nástroje tomu uzpůsobené.