Інструменти адміністратора Unix не можуть жити без [закритого]


33

Після адміністрування Unix або Unix-подібних серверів, які інструменти (бажано командного рядка), на вашу думку, ви не можете жити?

Відповіді:



34

Деякі я знаю, що не можу жити без ...

  • tee - дозволяє одночасно записувати в STDOUT (стандартний вихід) і файл. Відмінно підходить для перегляду інформації та реєстрації її на потім.

  • top - менеджер завдань UNIX, дає чудовий огляд системи.

  • хвост -f - дозволяє переглядати додані дані в міру зростання файлів, що чудово підходить для моніторингу файлів журналів на сервері.

  • grep - Global Regular Expression Print, відмінно підходить для пошуку системи в даних у файлах.

  • df - повідомляє про використання диска поточних файлових систем.

  • du - повідомляє про використання диска певного файлу / каталогу.

  • менше - потрібно для перегляду сторінок чоловіка! також корисний для перегляду результатів команд у легкодоступному вигляді.

  • vim / Emacs / nano / pico / ed - незалежно від обраного вами текстового редактора, пояснюючи, чому це потрібно.


Для тих, хто не знає, "менше" - це оновлена ​​версія "більше". більше обмежує, оскільки ви можете рухатись лише вперед по файлу, тоді як менше може прокручуватися і назад. Ах гумор ... :-)
Ієн Холдер

8
Ще одна корисна, але маловідома менша особливість - це те, що ви завжди можете скористатися командою 'v', щоб почати редагувати файл, який ви зараз переглядаєте. Мнемонічне значення 'v' означає 'vi'.
dr-jan

А якщо вам не подобається moreабо less, ви завжди можете спробувати most.
сухі змагання

Мій кращий PAGER зараз насправді w3m. Він має всі функції менше, і може подвоюватися як текстовий веб-браузер :-) Я також використовував функцію bash, щоб використовувати vim в режимі лише для читання (таким чином, я отримую красиво кольорові відмінності, наприклад). Функція bash використовується лише для того, щоб вирішити, надавати "-" (для читання stdin) чи ні (на випадок, якщо ми пишемо файл). Працює як шарм, за винятком сторінок man, на яких nroff
переступає

1
htopє "кращою" версією top.
Олександр Птах

26

lsof, щоб визначити, для яких процесів використовується файл чи каталог (корисно, коли намагаєтеся з’ясувати, що заважає пристрою бути umount'd)

netstat, щоб визначити, які процеси використовують мережеві з'єднання (особливо корисно, намагаючись розібратися, який демон пов'язаний з певним портом)


1
Якщо у вас lsof, вам не потрібен netstat. Просто використовуйте lsof -i
vartec

lsof -n - це моя улюблена інвокація. Я перекладаю його на греп, щоб збити його
Метт Сіммонс

19

Вивчіть усі основні інструменти, але вивчіть Perl.

Perl ідеально підходить для маніпулювання текстом, і оскільки оператори un * x живуть на текстових файлах, трубах, введеннях та вихідних даних, Perl - це чудова підходить.

Додатковий бонус - Perl - це кросплатформна платформа, і якщо вам доведеться виконати певну роботу над вікном Windows, ви можете легко встановити (просто киньте каталог Perl на сервері), який ви вже знаєте.

І в той потяг думки прибери і Цигвіна. Якщо ви адміністратор UN * x і вам доводиться працювати на вікні Windows (навіть на робочому столі) з ls, rm, grep, sed, хвостом тощо, економте багато часу при переключенні ОС.


18
  • sed
  • awk

Забуті діди сучасних системних сценаріїв. Я знаю, що Perl отримує більшу частину любові (разом із сценаріями Bash, Python, Ruby і [вставте сюди свою улюблену мову сценаріїв]), і не зрозумійте мене неправильно, я люблю Perl. Я цим користуюся майже щодня.

Але sed і awk не слід забувати, не помічати або ігнорувати. Для багатьох випадків найкращі інструменти для роботи - sed і awk. Короткі приклади - фільтрація командного рядка за допомогою sed та швидка та брудна обробка журналу з awk. І те й інше можна зробити в Perl, але це вимагатиме більше часу на роботу та розробку.


13

rsync, особливо в концерті з ssh. Це дозволяє просто ефективно копіювати файли з хоста на хост. Як ми колись справлялися без ssh та rsync? :-)


12

Netcat.

  • Перевірте, чи слухають служби TCP.
  • Виконуйте транзакції проти протоколів простого тексту, таких як SMTP.
  • Швидка небезпечна передача даних між машинами.
  • Емуляція клієнта Telnet

Мережа швейцарського армійського ножа, як кажуть.


Нещодавно я почав використовувати socat в якості заміни netcat, і я був вражений кількістю варіантів, які він дає вам. Однозначно варто перевірити, незважаючи на жахливу кількість комутаторів і дивний синтаксис.
Marcin

12

Зверніться до цього - рано чи пізно ви також матимете справу з мережею. mtr , tcpdump і tshark дійсно корисні для того, щоб побачити, що відбувається.


9

Швидкі сценарії, автоматизація тощо:

  • баш
  • перл

Щоб підключитися до вашого сервера * NIX:

  • Відкрити SSH (клієнт Linux)
  • Putty (клієнт Windows)

+1 за ... ну все це насправді, але особливо Perl. * nix, Windows або Mac, я не уявляю, що б я зробив без цього.
Джон Гарденєр

9

Я використовую більшість інструментів, які вже були перераховані, але ось ще жодного не торкнувся:

Лялька - система автоматизації завдань системного адміністрування



6

Більшість стандартних містяться в інших відповідях, тому я перейду до нестандартних:

  • htop - чудово підходить для управління процесами;
  • pinfo - рись, як браузер для інформації та чоловічих сторінок.

6

Кілька зручних інструментів, про які я ще не бачив:

  • dstat - nocolor (огляд використання процесора, диска, мережі)
  • iftop (хороший динамічний огляд мережевого трафіку)
  • ccze (красиво кольорові логісти )
  • ssh тунелі (можуть бути корисні час від часу; див. посібник; -R)
  • очікуйте (автоматизуйте інтерактивні інтерфейси, балаканину діалогію, приємно, якщо ви перебуваєте в крайній частині)

+1 "хвіст -f <file> | ccze" = дивовижний спосіб читання файлів журналів.
Лін


+1 для dstat. Найкраща заміна для vmstat, iostat тощо.
Крістофер Кашелл

5

КластерSSH

ClusterSSH контролює ряд вікон xterm через одне вікно графічної консолі, щоб дозволити командам інтерактивно запускатися на декількох серверах через ssh-з'єднання.


... а оскільки ClusterSSH написаний на Perl, можливо, ви повинні вивчити Perl.
Бред Гілберт

Яка різниця між екраном ClusterSSH та GNU? чи це різні втілення однієї і тієї ж концепції?
Олександр Птах


4

pv: Відображає хід довгих операцій, які можна переспрямувати. http://www.ivarch.com/programs/pv.shtml

Корисно тоді ви хочете контролювати те, що збирається віками, наприклад, копіювання / стискання необмеженого блокового пристрою через мережу (саме тому я беру резервні копії мого нетбука 8Gb перед тим, як познайомитись із чимось важливим, як налаштування параметрів файлової системи).

Також: Я буду другими голосами за ssh, rsync, screen, htop та netcat, як згадували люди вище - всі вони важливіші за pv, але pv ще не згадувалося. Насправді, ПВ часто є корисним доповненням під час передавання матеріалів до мережі Netcat.


pvможе бути корисним інструментом, але будьте обережні. Передача даних через них абсолютно впливає на продуктивність (усі дані повинні проходити через іншу програму). На моїй останній роботі ми багато робили обробку журналів. Один з хлопців вирішив почати вводити pv у всі сценарії обробки журналу, поки ми не виявили, що це додало приблизно 15% до часу обробки для них. Тепер він використовується лише для завдань, які займають менше декількох хвилин, або які мають існуюче обмеження ресурсів (наприклад, перетинання повільного мережевого з'єднання).
Крістофер Кашелл

Хороший момент Крістофер, хоча я ніколи не бачив, щоб це спричинило зміну продуктивності на 15% (тоді, знову ж таки, більшість того, що я використовую, pvє дисковий або мережевий введення / виведення, а не пов'язаний з процесором / пам'яттю). Ця ж аргументація є ключовою проти надмірного використання catзанадто часто (я іноді використовую кішку, коли насправді не потрібно просто для того, щоб речі читалися добре зліва направо, але додаткове копіювання даних у пам'ять через трубу та переключення контексту може мати вимірюваний вплив на ефективність).
Девід Спіллетт

Так, я роблю те саме. Більшість мого надмірного catвикористання починається з початку cat foo, після чого натискаю стрілку "вгору", а потім додаючи | [command]до попереднього рядка. Я знаю, що я отримую (невеликий) показник виконання, тримаючи кота там, але залишати його потрібно менше зусиль, ніж переписання / перезапис команди [command] < foo. Не викликає занепокоєння щодо (більшості) роботи спеціального командного рядка, але не ідеально підходить для сценаріїв (так само, як я вважаю pv, напевно).
Крістофер Кашелл



3

Деякі, про які раніше не згадували:

  • голова / хвіст
  • розл
  • pstree
  • дьоготь
  • gzip / bzip
  • дивитися

+1 pstree - це дуже мило.
Лін

3

смоляна труба!

передача виводу tar на іншу утиліту, для використання tar на тій же коробці або tar для запуску через SSH - це мій улюблений хід Unix для перенесення файлів з одного місця в інше.

Це також дає вам можливість в стилі Windows копіювати одну папку в іншу і закінчувати всіма файлами в каталозі джерела та призначення.



3

iotop - це подібна програма для контролю доступу до вводу / виводу на ваші диски.


Доступний лише на нових ядрах, але надзвичайно приємно.
Шон Рейфшнайдер

3

Більшість цих інструментів робляться набагато потужнішими, використовуючи Bash "програмоване завершення" - так що ви можете виконати вкладки, такі як параметри командного рядка, або сказати назву пакета за допомогою "apt-get install". Це також обмежить те, що ви можете виконати на вкладці для відповідних файлів - наприклад, "unzip" завершить лише підтримувані файли архіву.

Це насправді є мутри - якщо ви ніколи не пробували її, вам, ймовірно, просто потрібно обміняти ваш .bashrc:

if [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
 fi

Звичайно, це стосується Ubuntu та Debian. Можливо, вам знадобиться отримати пакет у деяких дистрибутивах Linux.



2

Кілька речей, що нехтували, я хотів згадати.

  • vim -d розділена консоль екрана, що дозволяє дуже легко бачити відмінності у файлі
  • pdsh дозволяє вам легко запускати команду над якоюсь кількістю систем, наскільки ви хочете, або послідовно, або паралельно (я адміністратор кластера. Я не можу функціонувати без цього.)
  • nmon - як вершина на тріщині. Це дає прекрасне уявлення про те, що відбувається в системі на одному екрані. Ви можете бачити введення / виведення диска, використання мережевого вводу / виводу процесора та використання пам'яті в режимі реального часу. Принаймні, справжню цікаву річ, з якою потрібно грати, коли профілювати систему.

О, і я забув згадати, під час написання сценарію я вважаю, що ви завжди повинні використовувати Корн. Я ненавиджу Корна (Не група. Я люблю гурт :-P), але це буквально скрізь. Ви можете взяти скрипт і перемістити його між Solaris, AIX та Linux і не турбуватися про те, чи був у адміністратора пристойність встановити Bash чи ні.


2

Одним із інструментів, який часом дуже зручний, є нохуп. Я використовую його для запуску сценаріїв, які тривають довгий час, використовуючи віддалені клієнти SSH.


2

man - для читання сторінок man.

elinks - щоб перевірити google, бо я впевнений, що пекло все не пам'ятає.

І увагу до деталей та завзятість, бо без них я просто марную час.


+1 для уваги до деталей та завзятість
cop1152

2

екран є обов'язковим, особливо з хорошим .screenrc файлом. У мене він налаштований візуально відображати, у якому вікні я перебуваю і можу переміщуватися між ними за допомогою Ctrl + Arrow. Для одного сеансу ssh та декількох оболонок це економія життя.



2

Я люблю AWK, а також "за" в командному рядку.

Особливо, щоб скласти список команд, які я хочу запустити, а потім виконати їх усі відразу.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.