Що адміністратор Linux повинен знати головою?


16

Я не системний адміністратор, але добре знаю Linux, Unix, Windows та обладнання.

Які найпотрібніші теми, які адміністратор Linux повинен знати напам’ять (у момент, коли можна буде виправити, налаштувати, опрацювати його, не максимум читати посібник; перевірка довідкових сторінок, спільних для будь-якого розповсюдження )?

FOCUS Я хотів би, щоб встановити для цього було б з корпоративної мережі для адміністрування сервера , які можуть мати деякі рівні можливості будуть великою частиною часу мають кілька різних них , а також. Наприклад, ви не завжди бачите FTP-сервер для сервера компанії, але, ймовірно, більшість часу бачите Samba ...

Я не кажу "книгу, яку ти повинен прочитати", або подібні речі, але я мав на увазі найнеобхідніші функції, які, ймовірно, знадобляться у твоєму щоденному житті як адміністратора Linux.

Подобається:

  1. Ядро, iptables
  2. Sendmail, Postfix, qmail, exim
  3. Кальмар, Самба, НФС, ЛДАП
  4. Apache, ngxix, lighthttpd
  5. vsftpd, proftpd
  6. зв’язувати
  7. Щоденні проблеми стикаються
  8. Яка функція, якою ви найбільше користувалися протягом дня

Це не список замовлень, ані найнеобхідніший. Це просто назва щось, що прийшло мені в голову.

PS: У мене вже є основні знання, але я не маю щоденного досвіду на місцях. У мене були сервери, зроблено кілька мереж тощо. Далі я навіть маю глибокі знання в деяких частинах цього. Я просто хотів оновити це тут, тому що я сказав, що це більше щоденний перелік життя LINUX SYSADMIN.

Буду вдячний, якщо ви, хлопці / дівчата, зможете перерахувати теми, і наприклад, яке поле всередині нього є найбільш використовуваним чи важливим для запам'ятовування.

Якщо ви вважаєте, що моє запитання є непридатним, просто дайте мені знати про це, і я видалю його самостійно, або якщо ви вважаєте, що це підходить, але його потрібно переробити більше, дайте мені знати, і я постараюся зробити все можливе.

Відповіді:


19

Ви справді впевнені, що дбаєте про повсякденні речі? Особисто я думаю, що речі, які ви повинні запам'ятати, - це те, що вам потрібно буде робити, коли щось зламається, і всі дихають за шию, щоб відновити мережу. Щоденні речі, як правило, змінюються залежно від того, що роблять ваші Linux-коробки у вашій мережі.

Я думаю, що є кілька навичок, які є досить важливими.

  • Ви повинні мати змогу налаштувати мережу за допомогою інструментів просто кліпу, таких як ifconfig, route та ip.

    • Кілька разів клієнт зателефонував, сказавши, що їх скринька Linux не вийшла з ладу. Я мав їх завантажувати livecd. Але сервер був у мережі без DHCP (це був DHCP). Після завантаження системи мені потрібно провести їх через запуск мережі та SSH, щоб я міг віддалено підключитися і допомогти їм діагностувати та виправити те, що було порушено.
    • Ви можете опинитися в точці, коли ви не можете отримати доступ до Інтернету, і вам потрібно знати, як вийти в Інтернет.
  • Я думаю, ви повинні знати, як зробити повне резервне копіювання системи за допомогою tar, rsync або dd. Якщо ви не знаєте, як зробити резервну копію та відновити речі, ви майже напевно не повинні торкатися систем. Вам також потрібно фактично переконатися, що зроблено резервне копіювання перед внесенням системних змін.

  • Я думаю, ви повинні знати, як отримати доступ до файлових систем з livecd на ваших серверах. Це означає, що ви повинні знати, як активувати диски на базі LVM та Software RAID, отримувати доступ до інформації про розділи та монтувати файлові системи.

    • Якщо ваш сервер не може бути завантажений, вам може знадобитися отримати доступ до файлової системи та щось виправити. Буде досить болісно намагатися розібратися, як насправді монтувати речі в надзвичайних ситуаціях. Будьте готові достроково.
  • Ви повинні бути досить добре знайомі з процесом завантаження, щоб мати можливість змінювати речі під час завантаження. Більшість систем використовують GRUB, але ви можете зіткнутися з LILO.
    • Важливо, знати, як завантажуватися на різні рівні запуску, такі як однокористувацький.
  • Я думаю, ви повинні мати хоча б робочі знання про те, як робити основні захоплення за допомогою tcpdump та мати можливість читати результати. Всі приємні функції GUI у Wireshark є приємними, але якщо щось порушено, ви, можливо, не зможете отримати доступ до Wireshark.
    • Існує велика кількість проблем з мережею, які мені вдалося швидко визначити та вирішити, просто запустивши tcpdump.

Дуже приємні моменти, викладені в питанні мережі та файлової системи, цінуємо відповідь :)
Prix

Are you really sure you care about the day-to-day things?ммммм, але проблеми, які трапляються частиною повсякденного життя одного? які приведуть вас до функцій, які використовуються, наприклад, у мережі ifconfig dhcp, як ви сказали ... налагодження, на якому рівні трапляється проблема і т. д.
Prix

10
Хороші бали. Також у цьому рядку: Ви повинні знати основи редактора vi. Незалежно від того, якщо ви використовуєте joe, pico, emacs або MS Word для щоденного редагування, вони не будуть доступні у системі порятунку, а vi відрізняється ;)
Sven

1
Дякую, я шукав привід витратити час на навчання більше, ніж на: q! командування в vi.
Tovare

Нано та vi / vim зазвичай є універсально доступними, хоча я бачив системи лише з нано
Fahad Sadah

11

Знайте, які у вас інструменти

Ви ніколи не дізнаєтесь все достроково. Але ти можеш знати, з чим ти маєш працювати. Чим більше інструментів ви знаєте, тим більше ви зможете використовувати. Якщо ви знаєте, що таке інструмент, що він робить, і де знайти більше інформації про нього, тоді це досить добре для початку.

Ознайомтеся зі manсторінками. Не потрібно їх запам'ятовувати, але ви повинні знати, де знайти те, що шукаєте. manсторінки краще, ніж Google, щоб шукати деталі синтаксису, оскільки сторінки, встановлені в певній системі, відображають різні химерності або інформацію, що стосується версії, що відповідає системі, яку ви шукаєте.

Якщо ви apacheбагато використовуєте , то рекомендую вивчити синтаксис конфігурації apache. Якщо ви використовуєте nginxзамість цього, то навчіться цього. Але в будь-якому випадку, ви повинні знати, що таке і чим вони відрізняються.

Системні інструменти

Існує кілька інструментів, які допоможуть вам незалежно від того, яким типом роботи системної адміністрації ви займаєтесь. Якщо припустити, що ви знаєте основи, наприклад chmod, mountтощо, ось декілька дуже корисних інструментів, які деякі адміністратори не розуміють досить добре:

  • rsync
  • sar / iostat (частина пакету sysstat)
  • setfacl / getfacl (більшість адміністраторів вважають, що chmod / chown - це все, з чим потрібно працювати)
  • завиток та / або wget
  • iptables
  • хто / останній / ж

Командний рядок Ninja

Я б сказав, що чітке розуміння сценаріїв оболонок творить чудеса для того, щоб робити важкі речі швидко і легко. Якщо вам доведеться шукати синтаксис, то, швидше за все, ви цього не зробите, тож знаючи достроково важливо.

Наприклад, скажімо, у вас є каталог, наповнений mysqldumpфайлами ".sql", кожен з яких представляє базу даних, яку потрібно імпортувати на сервер. Ви імпортуєте всі 35 з них вручну? Якщо ви добре знайомі зі сценаріями оболонок, просто швидко набрати одну команду, а потім перехопити трохи кави:

Примітка: я розділив його на окремі рядки для читабельності; якщо залишити крапки з комою, ви можете поставити все це в один рядок. Інакше крапки з комою не потрібні в кінці кожного рядка.

 for FILE in *.sql; do 
   NAME=${FILE%.sql}; 
   mysql -e "create database $NAME"; 
   mysql $NAME < $FILE; 
 done

Крім того, я рекомендую наносити чистку на використання sed. Подумайте про це як про спосіб застосувати регулярні вирази де завгодно. http://www.grymoire.com/Unix/Sed.html

Скажіть, ви змінили свій номер телефону і вам потрібно оновити всі свої веб-сторінки відповідно (і збережіть резервну копію у випадку, якщо ви зіпсуєте).

sed -i.bak 's/555-1234/555-4321/' *.html

Знання, як правильно ланцюг існуючих інструментів для створення нових справ, може бути дуже корисним. Скажіть, що вам потрібно зробити те саме, що вище, але також шукати всередині підкаталогів -

find public_html -name '*.html' -print0 | xargs -0 sed -i.bak 's/555-1234/555-4321/'

Також корисно мати певний досвід роботи perl. Можливо, вам не потрібно буде писати з цим жодних серйозних програм, але він був розроблений для того, щоб робити багато справ, які sedі awkроблять, лише, можливо, трохи гнучкіше.

Perl можна використовувати для виконання магії командного рядка за допомогою -eпараметра. За допомогою -p, -nі -i, ви можете швидко писати прості фільтри, щоб робити дійсно корисні речі. Наприклад, скажіть, що вам потрібно знайти IP-адресу кожного, хто отримав доступ до "/admin.php" у вересні:

perl -ne '
  /([^ ]+).*\[..\/Sep\/2010.*\] "GET \/admin.php / and print "$1\n"' < access_log

Побачити? Це було не так вже й погано. Як системний адміністратор, ви повинні знати, як це робити.


+1 @tylerl дуже приємні моменти, зроблені тут ... Я часто використовую Perl, щоб прибити більшість речей, які мені потрібно зробити з командного рядка, і я можу запевнити вас, знаючи, що це обов'язково! Чи не заперечували б ви надсилати якісь проблеми, з якими зазвичай запускаєте трю? Я хотів би прочитати про це також, прочитавши відповідь Зоредаче, я виявив, що багато корисних речей з'являється в них. Дуже вдячний!
Prix

9

Я адміністратор Windows, який трохи намагається в Linux, тому не можу безпосередньо відповісти на питання. Однак, на мою думку, як тільки ти маєш гідне розуміння основ, єдине найважливіше, що повинен знати адміністратор, незалежно від ОС, - де і як знайти відповіді.


Інфо-майнінг - одна з моїх найкращих навичок. Я користуюсь ним постійно під час чергування.
sysadmin1138

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

2

Окрім інших відповідей:

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

  • основні знання, де знайти речі в / проц
  • ps, top, vmstat та деякі їх більш складні віджимання (ntop, htop тощо)
  • знати, як інтерпретувати вихід хоча б одного хорошого інструмента моніторингу, як nagios (можливо, надмірність) або munin.

Я думаю, що вам не потрібно опановувати sed (я коу, я не принаймні), мені вдається легко обійтись одним із грепів (grep, egrep, zgrep тощо). Ти повинен знати основний синтаксис регулярного вираження.

Я думаю, ви повинні знати основні команди для маніпулювання та / або відстеження MTA (postfix або exim) та MDA (голубник, цирус, кур'єр), якщо ви підтримуєте поштовий сервер. Навіть якщо ви не запустили жодного, вам доведеться мати змогу запускати основні тести SMTP на MTA, якщо тільки для місцевих проблем із доставкою.

Ви повинні знати свій шлях навколо системи аутентифікації, яку використовуєте (PAM, LDAP). Де зберігаються ваші паролі? використовуючи які процедури? Які програми використовують які механізми аутентифікації?


iotop :) Настільки чудовий інструмент, що я не можу жити з ps pswell ... Так, це можна за допомогою команд або такої мови, як perl, python, php, з командного рядка виконуючи те, що вам потрібно.
Prix

2

Є кілька речей, які вам НЕОБХІДНО знати.

Вам потрібно добре зрозуміти свою оболонку (як вона аналізує аргументи, як вона розширює підстановку, де розташовані випадкові куточки).

Ви повинні мати можливість редагувати файли без запуску X11.

Ви повинні мати змогу монтувати та демонтувати файлові системи.

Ви повинні мати можливість швидко поглинати нову інформацію. Оскільки це вміння, які вам потрібні, коли вся ферма серверів компанії зазнала аварії, і ви маєте доступ лише через серверний консольний консоль (це "консоль", як у послідовному порту) та / або дуже повільне VPN-з'єднання (що робить що-небудь на основі X11 також болісно). І це станеться, тому плануйте це.


2

Наведені приклади - це чудові відповіді, пов’язані із сервером .. однак .. Системне адміністрування ніколи не є 100% комп’ютерами .. Я хочу, щоб це було!

Ви також маєте справу з людьми, в нашому випадку це означає зловживання, люзери, підрядники та постачальники .. arg ^ n

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

Якщо ви хочете отримати свої фінансування та використати проекти: Немає сенсу намагатися отримати новий сервер, якщо ви не знаєте, як просити гроші, якщо у вас немає цифр / альтернатив / плану DR / котирувань / плану реалізації тощо. Офісна політика - це B ** CH, гроші завжди: "тісно" .. що б це не означало .. це не впливає на службові автомобілі execs, але це вплине на безпеку вашого сайту та можливість стандартизувати, якщо зможете Не вражаю на них своїх причин.

Я б сказав, що найважливіше, що потрібно пам’ятати: НЕ ВІДПОВІДАЙТЕ, ЩО ВИКОРИСТОВУЄ ПОТРІБНИК . Майте це на увазі, коли ви відповідаєте на телефон .. незалежно від того, що вони говорять, вам все одно доведеться розібратися в цьому для себе, адже в кінцевому підсумку це ваша дупа, а не їхня, і вони взагалі не мають уявлення. Тільки тому, що вони можуть скласти абзац, навантажений модним словом, щоб бамбувати вашого боса, це не означає, що вони насправді знають, що вони сказали.

Інші думки:

  • Переконайтесь, що у вас є достатньо часу на ДБЖ, щоб вимкнути все, коли вимкнеться живлення

  • Контролюйте, переконайтесь, що ви ЗНАЄте, що вона знизилася. Не чекайте, коли люзери зателефонують.

  • РЕКЛАМИ РЕКЛАМИ РЕКЛАМИ РЕКЛАМИ .. багатокористувацькі системи схильні до понаднормових робіт, якщо у вас немає гарної системи резервного копіювання .. понаднормовий час поганий (не для кишені, а для вашого бюджету та зовнішнього вигляду професіоналізму).

  • НІКОЛИ НЕ ЗМІНУЙТЕ НІЧОГО В П’ятницю, або за день до свята .. Вас подзвонять у вихідні, вам доведеться це виправити, у вас буде справді поганий час ..

  • Стандартизуйте та автоматизуйте .. стільки, скільки зможете чухати! Якщо ви можете це написати, то чому б це не зробити?

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

  • Я купив копію: Практика системного адміністрування , від Limoncelli, дуже рекомендую.


1

Адміністратору Linux необхідно глибоко зрозуміти права доступу до файлів , а також використовувати такі інструменти, як su i sudo , chmod і chown тощо, як додати користувача до групи або створити нових користувачів, як надати SSH правам певним користувачам або групи.



0

Дізнайтеся sed, grepі awk: багато з того, що я роблю щодня в якості системного адміністратора Linux, - це спускати величезний список файлів / комп'ютерів / користувачів / тощо. і перетворити вхід в інший набір виходів для використання іншою програмою.

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

Крім того, вам неодмінно доведеться знати верхні межі оболонки, яку ви використовуєте. Найчастіше, якщо вам доведеться знищити купу застарілих файлів, ви, швидше за все, наткнетеся на папку з файлами 30k +. rm *не працюватиме, оскільки зірочка розшириться до списку, що містить понад 30 тис. записів, а оболонка, яку ви використовуєте, швидше за все, не зможе вмістити список такого розміру. Спосіб вирішення цього питання полягає в тому, xargsщоб: замість цього rm *, ви б використовували ls | xargs -i{} rm {}, який буде працювати.


0

Як сисадмін я вважаю лікарем-цифровим лікарем (або, залежно від дня, іноді хірургом мозку світового класу).

Коли все працює, у вас буде достатньо часу для вдосконалення власних навичок та систем, якими ви керуєте.

Якщо щось не вдається, вам потрібно буде мати можливість негайно діагностувати проблему та зрозуміти, як її виправити.

Отже, вам потрібно вивчити / запам'ятати основи (а також до певного моменту внутрішніх справ) серверів та програм, якими ви керуєте. Скажімо, ваша компанія розміщує веб-сайт, на якому веб-корінь обслуговується через NFS. Раптом всі www-вузли починають тривожно, і сайт перестає реагувати. Що підозрювати? А-ха! Сервер NFS просто знизився, і кластеризація відмов також не працювала.

Ще один важливий аспект, який потрібно дізнатися, - це базове навантаження серверів, якими ви керуєте. Навчіться запам'ятовувати їх середнє навантаження, використання процесора, використання пам'яті тощо. Гаразд, вам не потрібно насправді запам’ятовувати все це - графіки, створені за допомогою кактусів чи net-snmp + mrtg, можуть допомогти дуже багато, але якщо ваш пейджер тривожить про те, що сервер X поводиться дивно, і в той же час служба технічної допомоги закликає вас розповідати про якісь інші серверні або сервісні бондери, можливо, ви зможете поєднати ці дві речі і перейти до виправлення речі, перш ніж навіть переглядати журнали, історію тривоги чи графіки.

Будьте також готові до найгіршого: подумайте, що б ви зробили, якщо весь центр обробки даних відключиться через відключення електроенергії. Як би ви завантажили все після того, як електроенергія знову стала доступною? Що б ви зробили, якщо щось не пуститься? Як би відновити резервні копії? Або що б ви зробили, якби хтось попередив вас про зловмисника, який щойно зламався на ваших серверах? (Такі речі повинні бути задокументовані як контрольний список, але добре мати інтуїцію теж)


І, як зазначають інші, продовжуйте та розробляйте сценарій того, що має працювати (напів-) автоматично. Навчіться та грайте з оболонкою / Perl, вони справді є вашими найкращими друзями і дуже часто можуть вирішити дуже складні проблеми за допомогою лише декількох команд, з’єднаних разом.

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