Linuxové příkazy
find: Linux Search, který umí všechno
find je nejnebezpečnější příkaz na produkčním serveru, a právě proto si zaslouží zvládnutí. Vypočítává, filtruje a provádí v jednom výrazu a každý klasický incident '/var here be dragons' se vrací zpět k náhledu, který někdo přeskočil. Zvyky jsou mechanické: nejprve procházet s -print nebo -ls, dávkovat s -exec ... +, procházet -print0 do xargs -0 a považovat -delete za rozhodnutí při druhém průchodu, nikdy ne jako první návrh.
Klíčové body
- Filtrujte podle metadat, nikoli pouze podle názvu: -type f, -mtime +30, -size +100M a -perm -o+w najděte liché soubory, které pojmenování a zprávy o stáří postrádají.
- Prohlédněte si každý destruktivní dotaz: najděte /var/www/uploads -name 'core.*' -ls nejprve, zaměňte -ls za -delete až poté, co si skutečně přečtete seznam; náhled je bezpečnostní kontrola, nikoli návrh.
- -exec cmd {} + dá soubory do několika vyvolání a překoná \; forma na velkých stromech; stejná syntaxe umožňuje 'rm každý odpovídající soubor v jednom procesu' bez chyby argument-list-too-long.
- Ve výchozím nastavení bezpečný výstup null: find . -name '*.old' -print0 | xargs -0 rm -v; plain pipes do xargs jsou známým vzorem ztráty dat v den, kdy název souboru obsahuje mezeru.
- -xdev a -maxdepth udržují procházku upřímnou: přestanou hledat v mountech a snapshotech, což zachrání jak běhové prostředí, tak vaše předpoklady o 'tomto adresáři'.
- Časová okna jsou přesná, pokud jsou dotázáni přesně: -mmin -1440 za posledních 24 hodin, -newermt '2026-01-01' od data, a pamatujte, že -xtime znamená 'před celými 24 hodinami', než to uvedete na tiketu.
- Schválně prořezávejte: najděte . -path '*/node_modules' -prune -o -name '*.js' -print přeskočí jeden adresář, který jinak převažuje nad zbytkem stromu co do velikosti a času.
- U nečitelných adresářů očekávejte nenulové ukončení; Řádky stderr jako 'Povolení odepřeno' jsou přeskočené soubory, nikoli data, takže skripty buď tolerují stav ukončení hledání, nebo jej explicitně kontrolují místo toho, aby předpokládaly čisté procházky.
Poznámka z terénu
Náš příběh o nejhorším nálezu – vymazání začal vzorem necitovaného jména, který se druhá skořápka rozšířila na tři slova proti proudu nálezu. Pravidlo je od té doby jednoduché: -print first, vždy citovat a -delete nikdy nezadá příkaz při prvním spuštění.
Časté dotazy
Můj find našel soubory, ale downstream příkaz neudělal nic. Proč?
Téměř vždy citace nebo prázdný vstup: vzor byl rozšířen shellem, než ho find viděl, nebo xargs neobdržel nic. Citujte vzory a pokaždé spárujte -print0 s xargs -0.
-smazat nebo rm po nalezení?
-delete je přímé, rychlé a neúprosné; nelze jej smíchat s -exec ve stejném výrazu. Nejprve spusťte odpovídající -print a přečtěte si jej; to je celá disciplína.
Proč se v systémových adresářích objevují chyby oprávnění k tisku?
Komponenty, které nemůžete číst tiskové chyby do stderr, a najít konec nenulový; filtrujte pomocí 2>/dev/null pro interaktivní pohodlí a nikdy tyto chyby neinterpretujte jako absenci souborů.
Rozdíl mezi -mtime a -ctime znovu?
-mtime je změna obsahu, -ctime je změna metadat (oprávnění, přejmenování, počet pevných odkazů); chown nebo pohyb narazí na ctime, aniž by se dotkl mtime, což zmate přesně jednu zprávu za čtvrtinu.
Jak Kinetikatech pomáhá s linuxové příkazy
Nemusíte se stát odborníkem na linuxové příkazy: Příkazy a skriptovací návyky, které rozhodují o tom, zda správce provozuje server nebo s ním bojuje: prohledávejte, transformujte, přenášejte a dohlížejte na text a procesy pomocí nástrojů, které jsou součástí každé základní instalace. Přesně proto existuje Zabezpečení linuxových serverů a Správa serverů: zprovoznění, zpevnění, monitoring a člověk ve službě dnem i nocí.