IT Blok

kutilovo živobytí kromě www.msi-elektro.cz

Jak v Linuxu zazipovat soubor do jiného adresáře

Možnost zabalení souboru do jiného adresáře se hodí, mimo jiné v okamžiku, kdy potřebujeme vyčistit logovací adresář nějaké aplikace. Když je adresář (a jeho FS) zaplněný, není možné zip soubor vytvořit.

Proto je dobré použít následující příkaz (samozřejmě mluvím o příkazové řádce – prompt):

michell@server01:~$ zip -r /adresar/kam/se/ulozi/soubor.zip /zdrojovy/adresar
  • /zdrojovy/adresar — cesta, kde se nachází soubory k zazipování (může to být i cesta k celému adresáři). Pokud jsme nastaveni v tomto adresáři stačí napsat . (tečku – pro zabalení všeho) nebo přímo název souboru pro zabalení tohoto souboru.
  • /adresar/kam/se/ulozi/soubor.zip — cesta, cílového adresáře, kam se uloží soubor.zip
  • r — parametr pro rekurzivní průchod všemi adresáři a podadresáři (v případě zipování samotného souboru není nutné používat.

Pro více informací ohledně programu zip, si můžete projít manuál k tomuto programu zadáním příkazu:

michell@server01:~$ man zip

 

Jak na Linuxu spočítat položky v adresáři

Samozřejmě mluvím o příkazové řádce, v grafickém rozhraní Linuxu to uděláte úplně stejně jako na pinďousech.

Takže v přiazové řádce stačí zadat tento jednotuchý příkaz:

michell@server01:~$ ls -l | wc -ls

Jako výsledek se zobrazí počet položek v adresáři (soubory i adresáře dohromady).

Pokud chceme zobrazit pouze počet souborů, musíme použít příkaz find:

michell@server01:~$ find . -type f | wc -ls

Parametr -type f zahrne do počítání jenom soubory a vynechá případné adresáře. Místo . (tečky) můžeme zadat cestu k jinému adresáři, např. /home/muj-adresar.

Jak na linuxu smazat soubory starší než x dnů

Tento příkaz se vám bude hodit, když čistíte např. logovací adresář na linuxovém serveru. Standardně většina aplikací logy v noci zaarchivuje a vytvoří nový čistý soubor, do kterého loguje další den. Nebo by to tak mělo fungovat.
V logovacím adresáři pak vzniká velké množství různě velkých souborů. Ty je třeba čas od času promazat. Buď můžete nastavit nějakou archivaci, kdy se logy odlijí na nějakou zálohovací pásku a odmažou se. Nebo ručně.

Ručně můžete smazat buď vše, co se ve adresáři nachází (zpravidla při vypnuté aplikaci). Další možností je vybrat soubory, které jsou starší než několik dnů, ty smazat a novější ponechat.
Ideálně k tomuto slouží příkaz find

find /cesta/k/souborum/* -mtime +5 -exec rm {} \;

V příkazu je zásadní parametr -mtime kterému zadáme počet dnů které má vynechat a na všem ostatním spustí příkaz za parametrem -exec.

Tento příkaz by měl fungovat na většině linuxových distribucích. Problém může nastat na některých exotičtějších, ale s těmi se většina lidí nesetká.