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

Команди Linux і навички оболонки

grep: пошук у Linux як професіонал

grep витримує кожне оновлення ланцюжка інструментів, тому що робота ніколи не змінюється: знайдіть важливі рядки всередині тексту, який росте швидше, ніж хтось його очищає. Його справжньою силою є словник прапорців, який перетворює пошук у відповідь: навколишній контекст, списки імен файлів, інвертовані збіги та коди виходу, на які сценарій оболонки може розгалужуватися. Коли сервер поводиться неправильно, розслідування починається з grep, і частіше, ніж хтось визнає, на цьому воно також закінчується.

Головне

  1. Рекурсивний пошук із метою: grep -rni 'fail2ban' /var/log --include='*.log' самостійно пропускає двійкові файли та стиснені архіви; Голий grep -r над /var/log повільно викладає цей урок.
  2. Контекст робить збіги читабельними: -A 3 показує рядки після, -B 3 перед, -C 5 обидва; -l перераховує лише назви файлів, -c підраховує збіги для кожного файлу, а -L інвертує список до того, чого бракує.
  3. Коди виходу є частиною контракту: 0 означає збіг, 1 означає відсутність збігу, 2 означає помилку; сценарій, який запускає grep -q і ігнорує цю відмінність, трактує успіх і мовчання однаково.
  4. Списки файлів ланцюжка безпечно нульові: grep -rlZ 'ssl_protocols' /etc/nginx --include='*.conf' | xargs -0 -r ls -l; відпустіть сполучення Z і -0, і перше ім’я файлу з пробілом порушує конвеєр.
  5. Використовуйте -E як рівень регулярних виразів за замовчуванням для читабельного чергування, а використовуйте -P (перегляд, \d класи) лише тоді, коли ви приймаєте, що це розширення GNU. BSD grep не передаватиме.
  6. -F розглядає шаблон як буквальний текст: швидше та захищено від метасимволів регулярних виразів, які прокрадаються зі змінних, вставлених прямо з квитка.
  7. --exclude-dir=.git і --exclude-dir=node_modules запобігають рекурсивному пошуку в існуючих каталогах, щоб уповільнити їх; чітко вказувати імена в сценаріях, оскільки розгортання дужок є зручністю bash, а не функцією grep.
  8. Тримайте звички розділеними: --color=auto для інтерактивного комфорту, без кольору в сценаріях (вихідні послідовності пошкоджують журнали) і -n (номера рядків), щоб наступна особа могла знайти місце, яке ви вставили.

Польова нотатка

Одного разу я запустив простий grep -r по всій лог-фермі клієнта о 2 годині ночі і отримав сорок хвилин мовчання за свої проблеми; додавання --include='*.log' і -l завершило заявку на місці. Звички коду включення та виходу тепер з’являються перед шаблоном.

Часті запитання

Чому grep іноді друкує «збіги двійкових файлів» замість мого рядка?

Байт NUL біля збігу змушує GNU grep розглядати файл як двійковий; додайте -a, щоб увімкнути текстовий режим, або -I, щоб повністю пропустити двійкові файли, що є правильним за умовчанням для змішаних каталогів журналу.

Чи варто замість цього використовувати ripgrep?

ripgrep є швидшим і пропускає двійкові та приховані файли за замовчуванням, але grep існує в кожному вікні, до якого ви коли-небудь входите через SSH, включаючи рятувальні зображення. Спочатку вивчіть grep; дістаньтеся до rg, де він встановлений.

Як шукати у ротованих стиснутих журналах?

zgrep прозоро шукає файли .gz, а zstdgrep охоплює нові компресори, на які перейшло чергування; вчорашня голка зазвичай живе в одній із них, тому інструменти вважаються елементарною гігієною.

Як зіставити слово, але не довше слово, що його містить?

Використовуйте -w для збігу всього слова та -x для повного рядка; коли шаблонам потрібні частини слів, класи символів, такі як [Ss]erver, дають точне керування без зведення регістру скрізь.

Допомога Kinetikatech: команди linux і навички оболонки

Чесно: більшість команд приходить до нас, попередньо спробувавши все самі: Команди та сценарії, які вирішують, чи керує адміністратор сервером, чи бореться з ним: шукайте, трансформуйте, пересилайте та контролюйте текст і процеси за допомогою інструментів, які присутні в кожній базовій установці. Служба Безпека серверів Linux та Адміністрування серверів існує, щоб не доводилося опановувати команди linux і навички оболонки гірким досвідом — налаштування, нагляд і нічні сюрпризи о третій беремо на себе.

Поговорити з інженером

Проблема із сервером? Зламаний сайт? Повільна сторінка?

Критичні інциденти — відповідь за 30 хвилин, цілодобово, 7 днів на тиждень.

Запросити екстрену підтримку support@kinetikatech.com