NOC online · 24/7Longview, TX · +1 323 412 0665
KinetikatechServers · Security · Websites
SV

Linux-kommandon och skalfärdigheter

hitta: Linux-sökningen som gör allt

find är det farligaste kommandot på en produktionsserver, och det är precis därför det förtjänar behärskning. Den räknar upp, filtrerar och körs i ett uttryck, och varje klassisk "/var here be dragons"-incident går tillbaka till en förhandsvisning som någon hoppade över. Vanorna är mekaniska: gå med -print eller -ls first, batch med -exec ... +, pipe through -print0 in xargs -0, och behandla -delete som ett andrapassbeslut, aldrig ett första utkast.

Nyckelpunkter

  1. Filtrera på metadata, inte bara namnet: -typ f, -mtime +30, -size +100M och -perm -o+w letar upp de udda filer som både namnkonventioner och åldersrapporter missar.
  2. Förhandsgranska varje destruktiv fråga: hitta /var/www/uploads -name 'core.*' -ls först, byt -ls mot -delete först efter att du faktiskt läst listan; förhandsgranskningen är säkerhetskontrollen, inte ett förslag.
  3. -exec cmd {} + batchar filer till några få anrop och slår \; bildas på stora träd; samma syntax driver "rm varje matchande fil i en process" utan ett argument-lista-för långt fel.
  4. Null-säker utdata som standard: hitta . -namn '*.old' -print0 | xargs -0 rm -v; plain pipes in i xargs är ett känt dataförlustmönster den dag ett filnamn innehåller ett mellanslag.
  5. -xdev och -maxdepth håller vandringen ärlig: de slutar hitta från att följa in i monteringar och ögonblicksbilder, vilket räddar både körtid och dina antaganden om "den här katalogen".
  6. Tidsfönster är exakta om de tillfrågas exakt: -mmin -1440 för de senaste 24 timmarna, -newermt '2026-01-01' för sedan ett datum, och kom ihåg -xtime betyder "för hela 24-timmarsperioder sedan" innan du citerar det i en biljett.
  7. Beskär medvetet: hitta . -path '*/node_modules' -prune -o -name '*.js' -print hoppar över den katalog som annars uppväger resten av trädet i storlek och tid.
  8. Räkna med icke-noll exit på oläsbara kataloger; stderr-rader som "Permission denied" är överhoppade filer, inte data, så skript tolererar antingen finds utgångsstatus eller kontrollerar det explicit istället för att anta rena promenader.

Fältnotis

Vårt värsta fynd -radera berättelse började med ett namnmönster utan citat som det andra skalet utökade till tre ord uppströms efter fyndet. Regeln sedan är enkel: -skriv ut först, citera alltid, och -delete tar aldrig in ett kommando första gången det körs.

Vanliga frågor

Jag hittade filer men nedströmskommandot gjorde ingenting. Varför?

Nästan alltid citerande eller tom input: mönstret utökades med skalet innan hitta såg det, eller så fick xargs ingenting. Citera mönster och para ihop -print0 med xargs -0 varje gång.

-radera eller rm efter hitta?

-delete är direkt, snabbt och oförlåtande; det kan inte blandas med -exec i samma uttryck. Kör matchande -print först och läs den; det är hela disciplinen.

Varför hittar man utskriftsbehörighetsfel i systemkataloger?

Komponenter som du inte kan läsa utskriftsfel till stderr och få utgången från noll; filtrera med 2>/dev/null för interaktiv komfort och tolka aldrig dessa fel som frånvaro av filer.

Skillnad mellan -mtime och -ctime igen?

-mtime är innehållsändring, -ctime är metadataändring (behörigheter, byt namn, antal hårdlänkar); en chown eller ett drag stöter ctime utan att röra mtime, vilket förvirrar exakt en rapport i kvarten.

Så hjälper Kinetikatech dig med linux-kommandon och skalfärdigheter

Det här är vad vi gör varje dag: Kommandon och skriptvanor som avgör om en administratör driver en server eller bekämpar den: sök, transformera, överföra och övervaka text och processer med verktygen som finns i varje basinstallation. Vår Linux-serversäkerhet och Serverhantering-tjänst täcker hela kedjan, bedömning, genomförande, övervakning dygnet runt och akutinsats inom 30 minuter.

Prata med en ingenjör

Serverproblem? Hackad webbplats? Långsam sida?

Kritiska incidenter besvaras inom 30 minuter — dygnet runt, 7 dagar i veckan.

Begär akutsupport support@kinetikatech.com