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

Polecenia systemu Linux i umiejętności powłoki

find: Wyszukiwarka systemu Linux, która robi wszystko

find to najniebezpieczniejsze polecenie na serwerze produkcyjnym i właśnie dlatego zasługuje na mistrzostwo. Wylicza, filtruje i wykonuje w jednym wyrażeniu, a każdy klasyczny przypadek „/var here be Dragons” prowadzi do pominiętego podglądu. Nawyki są mechaniczne: najpierw chodź z -print lub -ls, wsadowo z -exec ... +, potokuj przez -print0 do xargs -0 i traktuj -delete jako decyzję drugiego przejścia, nigdy pierwszą wersję roboczą.

Kluczowe punkty

  1. Filtruj według metadanych, a nie samej nazwy: -type f, -mtime +30, -size +100M i -perm -o+w lokalizują dziwne pliki, które są pomijane zarówno w konwencjach nazewnictwa, jak i raportach dotyczących wieku.
  2. Podgląd każdego destrukcyjnego zapytania: znajdź /var/www/uploads -name 'core.*' -ls najpierw, zamień -ls na -delete dopiero po przeczytaniu listy; podgląd jest kontrolą bezpieczeństwa, a nie sugestią.
  3. -exec cmd {} + dzieli pliki na kilka wywołań i pokonuje \; tworzą się na dużych drzewach; ta sama składnia umożliwia „usuwanie każdego pasującego pliku w jednym procesie” bez błędu „zbyt długa lista argumentów”.
  4. Domyślnie wyjście bezpieczne z wartością null: find . -name '*.old' -print0 | xargs -0 rm -v; zwykłe potoki do xargs są znanym wzorcem utraty danych w dniu, w którym nazwa pliku zawiera spację.
  5. -xdev i -maxlength utrzymują uczciwość spaceru: powstrzymują find przed podążaniem za wierzchowcami i migawkami, co ratuje zarówno środowisko wykonawcze, jak i twoje założenia dotyczące „tego katalogu”.
  6. Okna czasowe są dokładne, jeśli zostaną dokładnie zadane: -mmin -1440 przez ostatnie 24 godziny, -newermt '2026-01-01' od daty i pamiętaj, że -xtime oznacza 'n pełnych 24-godzinnych okresów temu' przed podaniem tego w zgłoszeniu.
  7. Przycinaj celowo: znajdź . -path '*/node_modules' -prune -o -name '*.js' -print pomija jeden katalog, który w przeciwnym razie przewyższa resztę drzewa pod względem rozmiaru i czasu.
  8. Oczekuj niezerowych wyjść w nieczytelnych katalogach; Linie stderr, takie jak „Odmowa uprawnień”, są pomijanymi plikami, a nie danymi, więc skrypty albo tolerują status wyjścia find, albo sprawdzają go jawnie, zamiast zakładać, że przejdziesz bez problemu.

Notatka z praktyki

Nasza najgorsza historia o find -delete zaczęła się od niecytowanego wzorca -name, który druga powłoka rozwinęła do trzech słów poprzedzających find. Zasada jest prosta: -print najpierw, zawsze cytuj, a -delete nigdy nie pojawia się w poleceniu przy pierwszym uruchomieniu.

Częste pytania

Moje wyszukiwanie znalazło pliki, ale dalsze polecenie nic nie dało. Dlaczego?

Prawie zawsze cytuję lub puste dane wejściowe: wzorzec został rozwinięty przez powłokę, zanim find go zobaczył, lub xargs nic nie otrzymał. Cytuj wzorce i za każdym razem łącz -print0 z xargs -0.

-usuń lub rm po znalezieniu?

-delete jest bezpośrednie, szybkie i bezlitosne; nie można go mieszać z opcją -exec w tym samym wyrażeniu. Najpierw uruchom pasujące polecenie -print i przeczytaj je; to jest cała dyscyplina.

Dlaczego wyszukuje błędy dotyczące uprawnień do drukowania w katalogach systemowych?

Komponenty, których nie można odczytać błędów drukowania na stderr i sprawić, aby find exit był różny od zera; filtruj za pomocą 2>/dev/null dla wygody interaktywnej i nigdy nie interpretuj tych błędów jako braku plików.

Znowu różnica między -mtime i -ctime?

-mtime to zmiana zawartości, -ctime to zmiana metadanych (uprawnień, zmiana nazwy, liczba twardych łączy); chown lub ruch uderza w ctime bez dotykania mtime, co powoduje zamieszanie dokładnie w jednym raporcie na kwartał.

Jak Kinetikatech pomaga w polecenia systemu linux i umiejętności powłoki

Szczerze mówiąc, większość zespołów trafia do nas po samodzielnych próbach: Polecenia i nawyki związane z tworzeniem skryptów, które decydują o tym, czy administrator obsługuje serwer, czy z nim walczy: przeszukuje, przekształca, przesyła i nadzoruje tekst i procesy za pomocą narzędzi znajdujących się w każdej podstawowej instalacji. Nasza usługa Bezpieczeństwo serwerów Linux i Zarządzanie serwerami istnieje po to, aby nie musieli Państwo poznawać polecenia systemu linux i umiejętności powłoki na własnych błędach — zajmujemy się konfiguracją, monitoringiem i niespodziankami o 3 w nocy.

Porozmawiaj z inżynierem

Problem z serwerem? Zhakowana strona? Wolna witryna?

Incydenty krytyczne w 30 minut — 24 godziny na dobę, 7 dni w tygodniu.

Poproś o wsparcie alarmowe support@kinetikatech.com