Я не системный администратор, но хорошо разбираюсь в Linux, Unix, Windows и оборудовании.
Каковы наиболее необходимые темы, которые администратор Linux должен знать наизусть (с точки зрения возможности исправить, настроить, решить эту проблему без необходимости читать руководство по максимуму; проверка страниц руководства, которые являются общими для любого дистрибутива )?
В ФОКУС Я бы хотел установить, чтобы это было от корпоративной сети до администрирования сервера, которое может иметь одни и те же функции, но в большинстве случаев также будут иметь другие. Например, вы не всегда увидите FTP-сервер для сервера компании, но, вероятно, большую часть времени увидите Samba ...
Я не говорю «книга, которую вы должны прочитать» или что-то в этом роде, но я имел в виду самые необходимые функции, которые, вероятно, понадобятся вам в повседневной жизни в качестве администратора Linux.
Подобно:
Это не упорядоченный список и не самый необходимый. Он просто называет то, что пришло мне в голову.
PS: У меня уже есть базовые знания, но у меня нет ежедневного опыта в этой области. У меня были серверы, созданы сети и так далее. Более того, у меня даже есть некоторые глубокие познания в некоторых ее частях. Я просто хотел обновить это здесь, как я уже сказал, это больше похоже на ЕЖЕДНЕВНЫЙ СПИСОК ЖИЗНИ SYSADMIN LINUX.
Я был бы признателен, если бы вы, ребята / девушки, могли перечислить темы и, например, какое поле внутри него наиболее часто используется или важно для запоминания.
Если вы считаете, что мой вопрос не подходит, просто дайте мне знать об этом, и я удалю его сам, или, если вы считаете, что он подходит, но требует повторной обработки, дайте мне знать, и я постараюсь изо всех сил.
Вы действительно уверены, что заботитесь о повседневных вещах? Лично я думаю, что то, что вы должны запомнить, - это то, что вам нужно будет делать, когда что-то сломается, и все дышат вам в шею, чтобы восстановить сеть. Повседневные вещи, как правило, зависят от того, что ваши Linux-машины делают в вашей сети.
Я думаю, что есть несколько очень важных навыков.
Вы должны иметь возможность настраивать сеть, используя только инструменты cli, такие как ifconfig, route и ip.
Думаю, вам следует знать, как сделать полную резервную копию системы с помощью tar, rsync или dd. Если вы не знаете, как делать резервную копию и восстанавливать вещи, вам почти наверняка не следует трогать системы. Вам также необходимо убедиться, что резервное копирование выполнено, прежде чем вносить изменения в систему.
Я думаю, вы должны знать, как получить доступ к файловым системам с livecd на ваших серверах. Это означает, что вы должны знать, как активировать LVM и диски на основе программного RAID, получить доступ к информации о разделах и смонтировать файловые системы.
Ты никогда не узнаешь все раньше времени. Но ты жестяная банка знаете, с чем вам нужно работать. Чем больше инструментов вы знаете, тем шире вы сможете их использовать. Если вы знаете, что это за инструмент, для чего он нужен и где найти дополнительную информацию о нем, этого достаточно для начала.
Познакомьтесь с man
страниц. Вам не обязательно их запоминать, но вы должны знать, где найти то, что ищете. man
страницы лучше, чем Google, для поиска деталей синтаксиса, поскольку страницы, установленные в данной системе, отражают различные особенности или информацию, относящуюся к конкретной версии, которая соответствует системе, на которую вы смотрите.
Если вы используете apache
много, то рекомендую изучить синтаксис конфигурации apache. Если вы используете nginx
вместо этого научитесь этому. Но в любом случае вы должны знать, что они собой представляют и чем они отличаются.
Есть несколько инструментов, которые помогут вам независимо от того, какой тип работы системного администратора вы выполняете. Если вы знаете основы, например chmod
, mount
и т. д., вот несколько очень полезных инструментов, которые некоторые администраторы недостаточно хорошо понимают:
Я бы сказал, что хорошее понимание сценариев оболочки творит чудеса, позволяя быстро и легко решать сложные задачи. Если вам нужно найти синтаксис, то, скорее всего, вы вообще этого не сделаете, поэтому заранее знать это крайне важно.
Например, допустим, у вас есть каталог, полный 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
Видеть? Это было не так уж и плохо. Как системный администратор, вы должны знать, как это делать.
Я администратор Windows, который немного балуется Linux, поэтому не могу напрямую ответить на этот вопрос. Однако, на мой взгляд, как только вы освоите основы, единственная самая важная вещь, которую должен знать администратор, независимо от ОС, - это где и как чтобы найти ответы.
В дополнение к другим ответам:
Я думаю, вы также должны знать, как обрабатываются процессы:
Я думаю, вам не нужно осваивать sed (по крайней мере, я знаю, что не знаю), мне легко удается обойтись одним из grep (grep, egrep, zgrep и т. Д.). Однако вы должны знать базовый синтаксис регулярных выражений.
Я думаю, вам следует знать основные команды для управления и / или мониторинга MTA (postfix или exim) и MDA (dovecot, cyrus, courier), если вы обслуживаете почтовый сервер. Даже если вы его не запускаете, вам придется запускать базовые тесты SMTP на MTA, хотя бы для устранения проблем с локальной доставкой.
Вы должны хорошо разбираться в системе аутентификации, которую используете (PAM, LDAP). Где хранятся ваши пароли? с помощью каких процедур? Какие приложения используют какие механизмы аутентификации?
Есть несколько вещей, которые вам абсолютно НЕОБХОДИМО знать.
Вам необходимо хорошо разбираться в своей оболочке (как она анализирует аргументы, как расширяет подстановочные знаки, где находятся угловатые случаи).
Вы должны иметь возможность редактировать файлы без запуска X11.
Вы должны иметь возможность монтировать и размонтировать файловые системы.
Вы должны уметь быстро усваивать новую информацию. Потому что это навыки, которые вам нужны, когда произошел сбой всей серверной фермы компании, и у вас есть доступ только через консольный сервер piddly (это «консоль», как в последовательном порту) и / или очень медленное VPN-соединение (что делает что-либо на основе X11 тоже болезненно). И это произойдет, так что планируйте это.
Все приведенные примеры являются отличными ответами, связанными с сервером ... однако ... Системное администрирование никогда не бывает на 100% компьютерами ... Я бы хотел, чтобы это было!
Вы также должны иметь дело с людьми, в нашем случае, что означает увечья, лузеры, подрядчики и поставщики .. arg ^ n
Навыки обслуживания клиентов знать, как говорить о том, что вам нужно / что нужно / нужно сделать, как передавать информацию другим людям, документацию - все это важно в Сохранение ваша работа системного администратора.
Если вы хотите, чтобы ваши проекты финансировались и использовались: Нет смысла пытаться получить новый сервер, если вы не знаете, как попросить деньги, если у вас нет цифр / альтернатив / плана аварийного восстановления / цитат / плана реализации и т. д. Офисная политика - сука, деньги всегда: "мало" .. что бы это ни значило ... это не влияет на машины руководителей компании, но влияет на безопасность вашего сайта и возможность стандартизации, если вы можете Не навязывай им свои доводы.
Я бы сказал самое важное, что нужно запомнить: НЕ ДОВЕРЯЙТЕ ТО, ЧТО ГОВОРИТ ПОЛЬЗОВАТЕЛЬ. Имейте это в виду, отвечая на телефонные звонки ... что бы они ни говорили, вам все равно придется разбираться в этом самостоятельно, потому что в конечном итоге это ваша задница, а не их, и они, как правило, понятия не имеют. То, что они могут составить изумительный параграф, чтобы обмануть вашего начальника, не означает, что они действительно знают, что только что сказали.
Другие мысли:
Убедитесь, что у вас достаточно времени на ИБП, чтобы все выключить КОГДА власть не работает
Мониторинг, убедитесь ты ЗНАЙ, что он упал ... не ждите, пока лузеры позвонят.
РЕЗЕРВНОЕ КОПИРОВАНИЕ РЕЗЕРВНОЕ КОПИРОВАНИЕ РЕЗЕРВНОЕ КОПИРОВАНИЕ ... многопользовательские системы склонны к сверхурочной работе, если у вас нет хорошей системы резервного копирования ... сверхурочная работа - это плохо (не для вашего кармана, а для вашего бюджета и внешнего вида профессионализма).
НИКОГДА НИЧЕГО НЕ МЕНЯЙТЕ В ПЯТНИЦУ или за день до праздника ... вас перезвонят на выходных, вам придется это исправить, вам будет очень плохо ..
Стандартизируйте и автоматизируйте ... насколько вы, черт возьми, можете! Если вы можете написать сценарий, то почему нет?
Выясните, как использовать / установить систему службы поддержки, заставить пользователей регистрировать звонки через нее, это позволит вам отслеживать ваши действия, предоставить начальству стимулы, чтобы платить вам больше за работу, которую вы выполняете, и позволит вам записывать ваши ответы (фактически КБ) .. все время информирования пользователя о прогрессе. Гарантирует, что пользовательские запросы / проблемы не потеряны во время наводнения .. (Spiceworks бесплатен, есть много других)
Я купил копию: Практика системного администрирования, Лимончелли, I очень рекомендую его.
Администратору Linux необходимо понимать права доступа к файлам тщательно, а также использование таких инструментов, как вс и судо, chmod и Chown и т. д., как добавить пользователя в группу или создать новых пользователей, как предоставить привилегии SSH определенным пользователям или группам.
Нужно быстро работать с редактором в командной строке.
Учиться sed
, grep
, и awk
: Многое из того, что я делаю ежедневно как системный администратор Linux, - это вытаскивает огромный список файлов / компьютеров / пользователей / и т. д. и преобразовать входные данные в другой набор выходных данных для использования другой программой.
Конкретным примером этого является получение списка заблокированных компьютеров, скажем, из bugzilla или RT, удаление всей посторонней информации, которую я быстро скопировал и вставил в текстовый документ с помощью одного из этих трех инструментов выше, а затем вывести разделенный пробелами список узлов, в которые мне нужно подключиться по SSH.
Кроме того, вам обязательно нужно знать верхние пределы используемой оболочки. Чаще всего, если вам нужно удалить кучу устаревших файлов, вы, скорее всего, столкнетесь с папкой с более чем 30 тысячами файлов в них. rm *
не будет работать, поскольку звездочка расширится до списка, содержащего более 30 КБ записей, и оболочка, которую вы используете, скорее всего, не сможет содержать список такого размера. Вы решаете это с помощью xargs
: вместо того rm *
вы бы использовали ls | xargs -i{} rm {}
, который воля работай.
Как системный администратор я считаю себя цифровым доктором (или, в зависимости от дня, иногда нейрохирургом мирового уровня).
Когда все заработает, у вас будет достаточно времени, чтобы улучшить свои навыки и системы, которыми вы управляете.
Когда что-то выходит из строя, вам нужно иметь возможность немедленно диагностировать проблему и понимать, как ее исправить.
Итак, вам необходимо изучить / запомнить основы (а также в какой-то момент внутреннее устройство) серверов и приложений, которые вы администрируете. Допустим, у вашей компании есть веб-сайт, корень которого обслуживается через NFS. Внезапно все узлы www начинают тревожиться, и сайт перестает отвечать. Что подозревать? Ага! Сервер NFS просто вышел из строя, и отказоустойчивый кластер тоже по какой-то причине не работал.
Еще один важный аспект, который необходимо изучить, - это базовая нагрузка на администрируемые вами серверы. Научитесь запоминать их среднюю загрузку, использование процессора, использование памяти и тому подобное. Хорошо, тебе не обязательно выучить наизусть все это - графики, созданные с помощью Cacti или net-snmp + mrtg, могут очень помочь, но если ваш пейджер сигнализирует о странном поведении сервера X и в то же время служба поддержки звонит вам, рассказывая о каком-то другом сервере или сервисе, который сходит с ума, вы можете объединить эти две вещи и перейти к исправлению, прежде чем даже просматривать журналы, историю сигналов тревоги или графики.
Также будьте готовы к худшему: подумайте, что бы вы сделали, если бы весь дата-центр отключился из-за отключения электроэнергии. Как бы вы все загрузили после того, как электричество снова станет доступно? Что бы вы сделали, если бы что-то не запустилось? Как бы вы восстановили резервные копии? Или что бы вы сделали, если бы кто-нибудь предупредил вас о взломщике, который только что взломал ваши серверы? (Подобные вещи должны быть задокументированы как контрольный список, но также хорошо иметь некоторую интуицию)
И, как упоминалось другими, продолжайте писать сценарии, которые должны выполняться (полу) автоматически. Учитесь и играйте с оболочкой / Perl, они действительно ваши лучшие друзья и очень часто могут решать очень сложные проблемы с помощью всего лишь пары команд, объединенных вместе.