Что администратор Linux должен знать по голове?


16

Я не системный администратор, но я хорошо знаю Linux, Unix, Windows и аппаратное обеспечение.

Каковы наиболее необходимые темы, которые администратор Linux должен знать наизусть (в момент, когда можно починить, настроить, отработать, не читая руководство по максимуму; проверить справочные страницы, общие для любого дистрибутива )?

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

Я не говорю «книга, которую вы должны прочитать» или тому подобное, но я имел в виду самые необходимые функции, которые, вероятно, понадобятся вам в повседневной жизни в качестве администратора Linux.

Подобно:

  1. Ядро, iptables
  2. Sendmail, Postfix, qmail, exim
  3. Кальмар, Самба, NFS, LDAP
  4. Apache, ngxix, lighthttpd
  5. vsftpd, proftpd
  6. привязывать
  7. Ежедневные проблемы
  8. Какую функцию вы использовали чаще всего в течение дня

Это не упорядоченный список и не самый необходимый. Это просто называет то, что пришло мне в голову.

PS: у меня уже есть базовые знания, но у меня нет ежедневного опыта на местах. У меня были серверы, несколько сетей и так далее. Кроме того, у меня даже есть некоторые глубокие знания в некоторых частях этого. Я просто хотел обновить это здесь, как я уже сказал, что это больше ЕЖЕДНЕВНЫЙ СПИСОК ЖИЗНИ LINUX SYSADMIN.

Я был бы признателен, если бы вы, ребята / девочки, могли перечислить темы и, например, какое поле внутри него было бы наиболее полезным или важным для запоминания.

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

Ответы:


19

Вы действительно уверены, что заботитесь о повседневных делах? Лично я думаю, что вещи, которые вы должны были запомнить, - это то, что вам нужно будет делать, когда что-то сломано, и все дышат вам в шею, чтобы восстановить сеть. Повседневные вещи, как правило, различаются в зависимости от того, что ваши Linux-блоки делают в вашей сети.

Я думаю, что есть несколько очень важных навыков.

  • Вы должны быть в состоянии настроить сеть, используя только такие инструменты Cli, как ifconfig, route и ip.

    • Несколько раз клиент звонил, говоря, что его окно Linux не удалось. Я заставил их загрузить livecd. Но сервер был в сети без DHCP (это был DHCP). После загрузки системы мне нужно провести их через запуск сети и SSH, чтобы я мог удаленно подключиться и помочь им диагностировать и исправить то, что было сломано.
    • Возможно, вы находитесь в точке, где вы не можете получить доступ к Интернету, и вам необходимо знать, как выйти в Интернет.
  • Я думаю, вы должны знать, как сделать полное резервное копирование системы, используя tar, rsync или dd. Если вы не знаете, как сделать резервную копию и восстановить вещи, вы почти наверняка не должны касаться систем. Вы также должны убедиться, что резервные копии сделаны перед изменениями системы.

  • Я думаю, вы должны знать, как получить доступ к файловым системам из livecd на ваших серверах. Это означает, что вы должны знать, как активировать диски LVM и программный RAID, обращаться к информации о разделах и монтировать файловые системы.

    • Если ваш сервер не загружается, вам может понадобиться получить доступ к файловой системе и что-то исправить. Будет довольно больно пытаться понять, как на самом деле смонтировать вещи в чрезвычайной ситуации. Будьте готовы заранее.
  • Вы должны быть достаточно знакомы с процессом загрузки, чтобы иметь возможность что-то менять при загрузке. Большинство систем используют GRUB, но вы можете столкнуться с LILO.
    • Важно знать, как загружаться на разных уровнях запуска, таких как однопользовательский.
  • Я думаю, что вы должны иметь хотя бы практические знания о том, как сделать некоторые базовые записи с помощью tcpdump, и уметь читать результаты. Все приятные графические функции в 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.
Товарищ

nano и vi / vim обычно доступны повсеместно, хотя я видел системы только с nano
Фахад Сада

11

Знайте, какие инструменты у вас есть

Вы никогда не будете знать все заранее. Но вы можете знать, с чем вам нужно работать. Чем больше инструментов вы знаете, тем больше вы сможете использовать. Если вы знаете, что это за инструмент, что он делает и где можно найти дополнительную информацию о нем, то этого достаточно для начала.

Становитесь действительно знакомыми со manстраницами. Вам не нужно запоминать их, но вы должны знать, где найти то, что вы ищете. manстраницы лучше, чем Google, для поиска деталей синтаксиса, поскольку страницы, установленные в данной системе, отражают различные причуды или информацию о конкретной версии, которая соответствует системе, которую вы просматриваете.

Если вы используете apacheмного, то я рекомендую изучить синтаксис конфигурации apache. Если вы используете nginxвместо этого, то изучите это вместо этого. Но в любом случае, вы должны знать, что они оба и как они отличаются.

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

Есть несколько инструментов, которые помогут вам независимо от того, какой тип работы сисадмина вы делаете. Предполагая, что вы знаете основы, например chmod, mountи т. Д., Вот несколько очень полезных инструментов, которые некоторые администраторы не понимают достаточно хорошо:

  • Rsync
  • sar / iostat (часть пакета sysstat)
  • setfacl / getfacl (большинство администраторов считают, что chmod / chown - это все, с чем вам нужно работать)
  • завиток и / или Wget
  • Iptables
  • кто / последний / ж

Командная строка ниндзя

Я бы сказал, что глубокое понимание сценариев оболочки делает чудеса для того, чтобы сделать сложные вещи быстрыми и легкими. Если вам нужно посмотреть синтаксис, то, скорее всего, вы вообще этого не сделаете, поэтому важно знать заранее.

Например, допустим, у вас есть каталог, полный 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, чтобы записать большинство вещей, которые мне нужно сделать с командной строкой, и я могу заверить вас, зная, что это необходимо! Не могли бы вы рассказать о некоторых проблемах, которые вы обычно запускаете? Я хотел бы прочитать об этом также, после прочтения ответа Zoredache, я обнаружил, что многие полезные вещи встречаются в них. Очень ценится!
Prix

9

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


Информационный майнинг - один из моих главных навыков. Я использую это постоянно в процессе работы.
sysadmin1138

ну, у меня уже есть базовые знания, но у меня нет ежедневного опыта работы в этой области, у меня были серверы, я создал несколько сетей и так далее, у меня даже есть некоторые глубокие знания в таких областях ... но я бы хотел чтобы расширить эти знания с помощью того, что действительно ежедневно используется для Linux SysAdm, и оттуда узнать больше ... я больше сосредоточен на том, чтобы получить ЕЖЕДНЕВНЫЙ список жизни из этого :)
Prix

2

В дополнение к другим ответам:

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

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

Я думаю, что вам не нужно осваивать sed (я знаю, по крайней мере), я легко справляюсь с одним из greps (grep, egrep, zgrep и т. Д.). Вы должны знать базовый синтаксис регулярных выражений.

Я думаю, что вы должны знать основные команды для манипулирования и / или мониторинга MTA (postfix или exim) и MDA (dovecot, cyrus, courier), если вы поддерживаете почтовый сервер. Даже если вы не запускаете его, вам нужно будет выполнить основные тесты SMTP на MTA, хотя бы для локальных проблем доставки.

Вы должны знать свой способ использования системы аутентификации (PAM, LDAP). Где хранятся ваши пароли? с помощью каких процедур? Какие приложения используют какие механизмы аутентификации?


iotop :) такой замечательный инструмент, с которым я не могу жить без ps ... Да, это либо те команды, либо такие языки, как perl, python, php, которые вы можете запускать из командной строки, делая то, что вам нужно.
Prix

2

Есть несколько вещей, которые вам абсолютно необходимо знать.

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

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

Вы должны иметь возможность монтировать и размонтировать файловые системы.

У вас должна быть способность быстро усваивать новую информацию. Потому что это навыки, которые вам нужны, когда вся серверная ферма компании рухнула, и у вас есть доступ только через простой консольный сервер (это «консоль», как в последовательном порте) и / или очень медленное VPN-соединение (делая что-либо на основе X11 тоже болезненный). И это произойдет, так что планируйте это.


2

Все приведенные примеры являются отличными ответами, относящимися к серверу .. однако .. Системное администрирование никогда не бывает на 100% компьютерами .. Я бы хотел, чтобы это было!

Вам приходится иметь дело и с людьми, в нашем случае это означает Manglement, Lusers, Contractors и Suppliers .. arg ^ n

Обслуживание клиентов навыков зная , как говорить о том, что вам нужно / хотят / иметь к делать, получать информацию других людей, документацию, все они необходимы в Держа своего сисадмина работы.

Если вы хотите, чтобы ваши проекты финансировались и использовались: Бессмысленно пытаться получить новый сервер, если вы не знаете, как просить деньги, если у вас нет цифр / альтернатив / плана ДР / цитат / плана реализации и т. д. Офисная политика - это B ** CH, деньги всегда: "плотные" ... что бы это ни значило ... это не влияет на автомобили компании execs, но влияет на безопасность вашего сайта и возможность стандартизировать, если вы можете Не впечатлите их своими причинами.

Я бы сказал самое важное, что нужно помнить: НЕ ДОВЕРЯЙТЕ ТО, ЧТО ПОЛЬЗОВАТЕЛЬ говорит . Имейте это в виду, когда отвечаете на телефонные звонки. Независимо от того, что они говорят, вам все равно придется выяснить это для себя, потому что это в конечном итоге ваша задница, а не их, и они, как правило, понятия не имеют. То, что они могут составить абзац с модным словом, чтобы запутать вашего босса, не означает, что они действительно знают, что они только что сказали.

Другие мысли:

  • Убедитесь , что у вас есть достаточно времени на ИБП закрыть все вниз Когда питание не

  • Мониторинг, убедитесь, что вы ЗНАЕТЕ, что он отключился .. не ждите, пока лузеры позвонят.

  • РЕЗЕРВНОЕ КОПИРОВАНИЕ РЕЗЕРВНОЕ КОПИРОВАНИЕ ... многопользовательские системы подвержены сверхурочной работе, если у вас нет хорошей резервной системы ... сверхурочные - это плохо (не для вашего кармана, а для вашего бюджета и профессионализма).

  • НИКОГДА НЕ ИЗМЕНЯЙТЕ НИЧЕГО В ПЯТНИЦУ или за день до праздника. Вам позвонят в выходные, вам придется это исправить, у вас будет действительно плохое время.

  • Стандартизируйте и автоматизируйте ... столько, сколько вы можете! Если вы можете написать это, почему нет?

  • Узнайте, как использовать / установить систему службы поддержки, заставлять пользователей регистрировать звонки через нее, это позволит вам отслеживать ваши действия, предоставлять руководителям стимулы платить вам больше за работу, которую вы делаете, и позволять вам записывать ваши ответы (defacto KB) .. все время информируя пользователя о прогрессе. Гарантирует, что пользовательские запросы / проблемы не теряются в потоке .. (Spiceworks бесплатен, есть много других)

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


1

Linux - администратор должен понимать права доступа к файлам полностью, а также использование инструментов , таких как Су и Sudo , CHMOD и Чаун и т.д., как добавить пользователя в группу или создать новых пользователей, как дать привилегии SSH для определенных пользователей или групп.



0

Узнайте sed, grepи awk: многое из того, что я делаю ежедневно в качестве системного администратора Linux, - это огромный список файлов / компьютеров / пользователей / и т. Д. и преобразовать вход в другой набор выходов для использования другой программой.

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

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


0

Как системный администратор я считаю себя цифровым врачом (или, в зависимости от дня, иногда хирургом мирового уровня).

Когда все работает, у вас будет достаточно времени, чтобы улучшить свои навыки и системы, которыми вы управляете.

Когда что-то не получается, вам необходимо сразу же диагностировать проблему и понять, как ее устранить.

Таким образом, вам необходимо изучить / запомнить основы (а также, в некоторой степени, внутренние компоненты) серверов и приложений, которые вы администрируете. Допустим, в вашей компании есть веб-сайт с корневым веб-сайтом, обслуживаемым через NFS. Внезапно все узлы www начинают тревожиться, и сайт перестает отвечать на запросы. Что подозревать? Ах-ха! Сервер NFS просто вышел из строя, и отказоустойчивая кластеризация по какой-то причине тоже не работала.

Другим важным аспектом изучения является базовая нагрузка на администрируемые вами серверы. Научитесь запоминать их среднюю загрузку, использование процессора, использование памяти и тому подобное. Хорошо, вам не нужно на самом деле запоминать все это - графики, созданные с помощью Cacti или net-snmp + mrtg, могут очень помочь, но если ваш пейджер сигнализирует о том, что сервер X ведет себя странно, и в то же время служба поддержки звонит вам, рассказывая о некоторых других Помешанные на сервере или услуге, вы можете объединить эти две вещи и исправить ситуацию, даже не взглянув на журналы, историю аварийных сигналов или графики.

Также будьте готовы к худшему: подумайте, что бы вы сделали, если бы весь ЦОД отключился из-за отключения электроэнергии. Как вы загрузите все после того, как электричество снова станет доступным? Что бы вы сделали, если бы что-то не запустилось? Как бы вы восстановили резервные копии? Или что бы вы сделали, если бы кто-то предупредил вас о взломщике, который только что проник на ваши серверы? (Подобные вещи должны быть задокументированы как контрольный список, но хорошо иметь некоторую интуицию тоже)


И, как уже упоминалось, продолжайте и пишите сценарии, которые должны выполняться (полу) автоматически. Учитесь и играйте с оболочкой / Perl, они действительно ваши лучшие друзья и могут очень часто решать очень сложные проблемы с помощью нескольких команд, собранных вместе.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.