Возможный дубликат:
Что нужно знать новичку для работы системным администратором?
Я скоро заканчиваю колледж, и сейчас ищу предложения о работе. Есть один, который меня очень интересует, связанный с системным администрированием Linux (PHP, MySQL, веб-сервер Apache, BIND, bash, postfix и, конечно же, общее обслуживание и безопасность системы).
Однако во время стажировки большинство моих заданий касалось виртуализации Hyper-V и Windows в целом, и у меня не было много времени на Linux. В свободное время я обычно также пользуюсь Windows и обладаю только базовыми знаниями Linux.
Какими знаниями и навыками, по вашему мнению, должен обладать новый младший соискатель работы, прежде чем он действительно будет готов к работе (и к собеседованию)? Любые источники, от книг до электронных, учебные пособия, общие описания навыков, команды, веб-сайты, блоги, ... мне очень помогут.
Помогите мне стать лучшим администратором Linux и подготовиться к этому интервью! Большое спасибо :-)
РЕДАКТИРОВАТЬ: Как предлагали некоторые, я обновлю исходный вопрос: в заголовке вопроса я указал, что я младший, и это относится к должности, на которую я претендую (без опыта почти нет шансов, что вы получите очевидно, работа старшим). Мои знания Linux могут быть немного лучше, чем я позволил вам понять; Я прошел мимо вопроса «как мне настроить DNS-сервер?» stage, dns, dhcp, webserver и т. д., я настраивал их раньше несколько раз.
Я ищу более продвинутые знания, вещи, которые мне понадобятся на дневной работе, или вопросы, которые мне могут задать на собеседовании. Я хочу быть к этому готовым, как могу.
Спасибо за ваш вклад!
Уже есть много информации (вопросов / сообщений) в ServerFault для начинающего администратора Linux:
К тому же, Я предлагаю вам найти старый компьютер и установить на него Linux. Поиграйте с ним, настройте брандмауэр, DNS, DHCP, чтобы запустить и протестировать. Вы даже можете установить его на виртуальной машине и делать с ней что-нибудь. Ничто не поможет вам лучше, чем ощутить настоящий опыт. Решите, как его использовать и постарайтесь использовать как можно больше. Задавайте вопросы, когда вы застряли (хотя сначала исследуйте это), вот для чего мы здесь.
Подумайте о масштабировании, контрольном следе и откатах.
В реальном мире вам нужно делать что-то часто, и вам часто нужно делать это на большом количестве серверов. Поэтому написание сценариев и автоматизация становятся важными.
Уровень строгости обычно выше, чем тот, который вы могли бы использовать дома. Поэтому вам нужно подумать о том, как вы можете записать свои изменения (чтобы лучше определить, какое именно изменение нарушило работу службы) и как вы можете отменить их, если это необходимо.
Например. знание того, как настроить привязку в качестве ведущего и ведомого, нормально, но в моей работе мы размещаем несколько сотен доменов с 7 экземплярами привязки. Один мастер, у которого есть подчиненное устройство, которое само является мастером для 5 других подчиненных устройств. Мы генерируем named.conf для всех из них с помощью макросов make и M4, выталкиваем их с помощью ssh и записываем изменения как в named.conf, так и в некоторые файлы зон с помощью RCS. Файлы зоны большего размера генерируются из базы данных с интерфейсом CGI.
Ничего особенного в этом нет, named.confs по большей части довольно прост, там просто большой. То же самое и с большими файлами зоны с автогенерацией.
Я пытаюсь подчеркнуть, что когда вы работаете в реальной рабочей среде, вам нужно уметь масштабировать, что вы делаете, и вам нужно уметь отслеживать изменения, и вам нужно думать об откате.
Я бы познакомился с автоматизированными инструментами сборки, такими как кикстарт, поскольку это работа, которую в некоторых местах дают юниорам, поскольку она позволяет им работать с серверами и понимать, как они собираются и настраиваются в организации, без необходимости отпускать их вживую. прд серверов.
Помимо основ, есть несколько областей, которые вам, вероятно, следует изучить дополнительно:
Настройка почтовой системы, которая достаточно хорошо работает для сотен пользователей, хорошая фильтрация спама, безопасность, решение для резервного копирования, доступ к веб-почте и т. Д.
Изучение и эксперименты с резервным копированием: выбор хорошей стратегии, ее реализация, обеспечение максимальной эффективности за счет $$ (все хотят резервное копирование, но не все хотят платить за дополнительные расходы).
Мониторинг серверов: опять же, наличие хорошей стратегии и ее реализация, чтобы вы могли отслеживать несколько серверов, цель - иметь возможность предвидеть проблемы, а не исправлять их, когда они возникают.
Безопасность: аудит, блокировка ресурсов, мониторинг использования, сложные ситуации брандмауэра.
...
По сути, все, что выходит за рамки и определяет разницу между настройкой чего-то для себя и настройкой чего-то для организации.
Помимо этого, я считаю, что для того, чтобы быть эффективным старшим администратором, вам необходимо понимать, чем занимается компания, как работают люди, чем они занимаются, а также знать, как технологии могут помочь пользователям быть более эффективными и увеличить прибыль компании.
ИТ не существует в вакууме: попытки найти лучшие способы для совместной работы людей и быстрого и безопасного доступа к своим данным - вот что делает хорошую ИТ-организацию.
Таким образом, речь идет не только о возможности настроить почтовый сервер или установить продукт безопасности, но и об использовании ваших технических знаний и опыта для помощи бизнесу, в котором вы работаете.
Расширение кругозора за пределы чисто механики ИТ поможет вам продвинуться дальше.
Единственный способ по-настоящему научиться - это пытаться «играть» с этим.
-Установите дома Linux сервер.
-Установите Apache, попробуйте включить php, perl, bugzilla, wordpress и несколько других приложений.
-Установите postfix, попробуйте включить поддержку tls
-Установить named, включить dnssec, построить небольшую сеть дома ..
Это всего лишь предложения. Когда вы пытаетесь их настроить, ищите в Google руководства, идеи и т. Д.
-Изучите скрипты (как минимум, на bash и perl), чтобы автоматизировать свою работу. Все хорошие админы умеют автоматизировать свои задачи
Ненавижу это говорить, но, возможно, вы переоцениваете свои знания.
На предприятии я обнаружил, что каждая среда имеет довольно строгие правила относительно того, что используется, как настроен каждый сервер и т. Д.
Сначала я учился, настраивая всевозможные серверы и т. Д. В свое время, но быстро обнаружил, что это дает слишком много свободы. Корпоративные среды сконфигурированы так, чтобы минимизировать ущерб, больше, чем они предназначены для реализации интересных или полезных функций. Администрирование на более высоком уровне - это предоставление известного, определенного решения бизнес-требования, которое точно соответствует своему объему. На более низком уровне речь идет о его реализации, что часто ближе к тому, что вы ожидаете от обезьяньей работы, поскольку все должно быть предопределено.
Каким бы полезным ни было знакомство с дистрибутивом дома, вы захотите провести время в надлежащей обстановке. Посмотрите, сможете ли вы найти местную LUG, где вы можете поговорить со старшими специалистами и поучиться. Узнайте об их среде, процедурах и т. Д.
Лично я обнаружил, что возможность запустить apache на самом деле ничего не стоит, потому что это не так уж и сложно. Ключевым моментом является определение объема установки в соответствии с требованиями и предоставление услуги в точности так, как это необходимо, без дополнительных и не менее необходимых компонентов.
Предложения Рено, приведенные выше, также являются отличным уроком, я просто думаю, что знание функциональности - лишь небольшая часть головоломки, а понимание бизнес-факторов гораздо важнее.
Возможно, я немного недооценил свои знания или сформулировал свой вопрос таким образом, что вы, ребята, недооцениваете то, что я знаю, но опять же: я ищу больше РАСШИРЕННЫХ знаний, которые мне действительно нужны, настройки веб-серверов, баз данных, DNS, DHCP и брандмауэры - это то, что я делал раньше, и мне просто нужно повторить, чтобы они были свежими в моей памяти (хотя они настолько просты, что мне вряд ли придется часто это освежать)
Ссылки l0c0b0x наверняка помогли, и я собираюсь прочитать большую часть материала, который найду через него сегодня, но всегда приветствуется больше.
если можете, найдите время и сделайте следующее: http://www.linuxfromscratch.org/
ИМХО, это САМОЕ ВАЖНОЕ ты можешь сделать:
Их очень мало, но они там. Доверьтесь мне.
И учись, детка, учись. Присоединяйтесь к нему или к ней, следите за мелочами. Как они настраивают свой рабочий процесс? Какие процессы они используют? Какие псевдонимы команд они используют? Что-нибудь, что вы можете адаптировать для своего использования?
Прочтите книгу Мориса Дж. Баха. Это не связано с Linux. Это даже не современно. Это лучшая книга «Вот как работает UNIX», которую я когда-либо читал. Когда он был актуален, это была довольно хорошая книга о том, как на самом деле был реализован UNIX. К настоящему времени он действительно хорошо объясняет, как и почему UNIX работает именно так.
Книга предполагает, что вы немного понимаете C.
Дизайн операционной системы UNIX (Морис Дж. Бах, Prentice Hall PTR; 1986)
У меня есть книга в твердом переплете, я читал ее несколько раз и одалживаю ее каждому из моих друзей, которые когда-либо хотели получить глубокое понимание Linux / UNIX. По словам издателя:
Это первая и до сих пор наиболее полная книга, описывающая сложную работу ядра UNIX System V - внутренние алгоритмы, структуры, составляющие основу операционной системы UNIX, и их связь с интерфейсом программирования. Системные программисты получат лучшее понимание того, как работает ядро, и смогут сравнивать алгоритмы, используемые в системе UNIX, с алгоритмами, используемыми в других операционных системах. Программисты в системах UNIX получат более глубокое понимание того, как их программы взаимодействуют с системой, и тем самым смогут кодировать более эффективные программы.
Посмотрим правде в глаза, через некоторое время хороший системный администратор должен иметь хорошее представление о том, как устроена система и как с ней взаимодействовать.
Следующим по полезности может быть TCP / IP Illustrated vol. 1. Не полностью понимать, но знать, как работа в сети работает на достаточно низком уровне.
Прекратите использовать Windows (хотя бы на время), если не хотите играть в игры. Настройте свой собственный веб-сервер для развлечения с какой-нибудь веб-страницей (или лучше с CMS) и используйте несколько баз данных.
Предлагаю вам попробовать установить Archlinux. Это не так сложно, как создание Linux с нуля, но вы изучите внутреннее устройство Linux-системы. У них есть хорошее руководство по установке, в котором объясняются базовые настройки и администрирование Linux. Затем просто бегите по вики, чтобы разобраться во внутренних деталях. Сделайте это на виртуальной машине и обязательно сделайте снимки, чтобы иметь возможность откатиться и повторить попытку.
Есть много бесплатных открытых ресурсов там для знаний Linux. Вы специально упомянули знания bash, и лучший способ получить это - поиграться с bash и сценариями оболочки.
В дополнение к любым другим книгам и ссылкам, которые люди рекомендуют, я советую получить немного реального времени Linux.
Хорошими вариантами, чтобы получить больше времени, является двойная загрузка, запуск Linux с ручным накопителем или запуск портативной Ubuntu - на самом деле нет никаких хороших оправданий, чтобы не потратить некоторое время на Linux, если вы хотите больше опыта с ним.
Однажды мне сказали, что во многих объявлениях о вакансиях будут перечислены требования к знаниям в широком диапазоне тем [как вы писали], не потому, что они действительно этого хотят, но они хотят увидеть, что там есть с точки зрения будущих сотрудников.
прекратите использовать окна и начните использовать * nix. Кроме того, командная строка - ваш друг
также, если сомневаетесь, обратитесь к вики-странице дистрибутива