- Выбираем язык для системного администрирования
- PowerShell
- Python
- Visual Basic
- Языки веба
- PowerShell
- Python
- Visual Basic
- Языки веба
- Блог IT для Windows
- Языки программирования, необходимые для работы системного администратора
- Какой язык программирования выбрать сисадмину
- 51 задание для оттачивания навыков системного администрирования
- О сисадминах
- Специализации
- Начинаем
- Задание №1
- Задание №2
- Задание №3
- Задание №4
- Задание №5
- Задание №6
- Задание №7
- Задание №8
- Задание №9
- Задание №10
- Задание №11
- Задание №12
- Задание №13
- Задание №14
- Задание №15
- Задание №16
- Задание №17
- Задание №18
- Задание №19
- Задание №20
- Задание №21
- Задание №22
- Задание №23
- Задание №24
- Задание №25
- Задание №26
- Задание №27
- Задание №28
- Задание №29
- Задание №30
- Задание №31
- Задание №32
- Задание №33
- Задание №34
- Задание №35
- Задание №36
- Задание №37
- Задание №38
- Задание №39
- Задание №40
- Задание №41
- Задание №42
- Задание №43
- Задание №44
- Задание №45
- Задание №46
- Задание №47
- Задание №48
- Задание №49
- Задание №50
- Задание №51
Выбираем язык для системного администрирования
Наша область интереса — программирование, упрощающее реализацию вышеперечисленных операций в масштабах крупных компаний, когда просто физически невозможно рассматривать каждую машину в отдельности. И вот языки, которые в этом помогут.
PowerShell
За последний месяц мы уже дважды рассмотрели, как скриптовые языки операционных систем могут стать добрым другом сисадминщика. PowerShell — продукт экосистемы Windows, он понятен, удобен и весьма функционален. Из минусов можно выделить сравнительно невысокое быстродействие, особенно по сравнению со следующим языком. Но так как Windows всё еще доминирующая ОС на стационарных компьютерах, то знание PowerShell — номер один в списке абстрактных must-have языков для системного администратора.
Линуксовый старший брат Powershell, обладающий куда большей производительностью и опытом, но чуть меньшим удобством, во всяком случае, для новичка. Потребуется тем, кто собирается идти работать в науку и в организации, которые умеют считать деньги. Собственно туда, где линуксовые системы всегд были в почёте.
Python
С Python вы можете делать что угодно, а уж помощь в системном деле — одна из основных зон ответственности. При использовании нужных модулей вы без труда обойдете ограничения скриптовых языков, не затратив на это много времени и усилий. Python вообще может стать вашим основным кроссплатформенным инструментом, ведь он будет удобен и для текущих задач, и для вашего карьерного роста. Ведь за вас удобный и относительно простой язык, мощная экосистема и новые интересные творческие задачи. Начать изучение можно с бесплатного интенсива «Основы языка Python».
Perl — язык, разработанный специально для тесного взаимодействия с текстом, впитавший всё лучшее от Unix Shell, Awk и С. Это означает, что по определению он превосходит в своих возможностях и удобстве скриптовые языки, а функциональный перечень необычайно широк. При всём этом стоит сделать одну небольшую оговорку: большинство административных решений на Perl, описанных в соответствующей литературе, сегодня с куда большей эффективностью реализуется на других языках, в том числе Python или Ruby. Поэтому хоть Perl формально и популярен, но уже понемногу уходит в прошлое.
Трудно представить ситуацию, в которой системному администратору бы не потребовалось использовать базы данных. Это и управление сервером, и администрирование учётных записей, и формирование отчётов. А если так, то без знания SQL хотя бы на уровне запросов и элементарной работы с данными не обойтись.
Visual Basic
Несмотря на достаточно спорное наследие, VB сегодня является прекрасным инструментом в среде Windows. В частности, упрощённая реализация VBA позволит вам писать полезные скрипты для MS Office, AutoCAD, SolidWorks, а также компонентов ActiveX.
Языки веба
Вообще в IT трудно представить какую-то область, где бы знание HTML, CSS и JavaScript вам не пригодилось. В качестве вариантов интереса для системщиков — сетевые экраны, системы регистрации и учёта пользователей, управление сетями предприятия и многое другое.
В новой серии выбора языков для различных IT-специальностей мы поговорим об обязанностях системного администратора. С одной стороны, это может быть достаточно неприхотливая работа, где от вас потребуются лишь базовые знания компьютерной грамотности: установка необходимого ПО, контроль за выполнением чужих рабочих обязанностей, организация нормальной работы небольшого числа офисных сотрудников. Но это не то, что представляет для нас существенный интерес.
Наша область интереса — программирование, упрощающее реализацию вышеперечисленных операций в масштабах крупных компаний, когда просто физически невозможно рассматривать каждую машину в отдельности. И вот языки, которые в этом помогут.
PowerShell
За последний месяц мы уже дважды рассмотрели, как скриптовые языки операционных систем могут стать добрым другом сисадминщика. PowerShell — продукт экосистемы Windows, он понятен, удобен и весьма функционален. Из минусов можно выделить сравнительно невысокое быстродействие, особенно по сравнению со следующим языком. Но так как Windows всё еще доминирующая ОС на стационарных компьютерах, то знание PowerShell — номер один в списке абстрактных must-have языков для системного администратора.
Линуксовый старший брат Powershell, обладающий куда большей производительностью и опытом, но чуть меньшим удобством, во всяком случае, для новичка. Потребуется тем, кто собирается идти работать в науку и в организации, которые умеют считать деньги. Собственно туда, где линуксовые системы всегд были в почёте.
Python
С Python вы можете делать что угодно, а уж помощь в системном деле — одна из основных зон ответственности. При использовании нужных модулей вы без труда обойдете ограничения скриптовых языков, не затратив на это много времени и усилий. Python вообще может стать вашим основным кроссплатформенным инструментом, ведь он будет удобен и для текущих задач, и для вашего карьерного роста. Ведь за вас удобный и относительно простой язык, мощная экосистема и новые интересные творческие задачи. Начать изучение можно с бесплатного интенсива «Основы языка Python».
Perl — язык, разработанный специально для тесного взаимодействия с текстом, впитавший всё лучшее от Unix Shell, Awk и С. Это означает, что по определению он превосходит в своих возможностях и удобстве скриптовые языки, а функциональный перечень необычайно широк. При всём этом стоит сделать одну небольшую оговорку: большинство административных решений на Perl, описанных в соответствующей литературе, сегодня с куда большей эффективностью реализуется на других языках, в том числе Python или Ruby. Поэтому хоть Perl формально и популярен, но уже понемногу уходит в прошлое.
Трудно представить ситуацию, в которой системному администратору бы не потребовалось использовать базы данных. Это и управление сервером, и администрирование учётных записей, и формирование отчётов. А если так, то без знания SQL хотя бы на уровне запросов и элементарной работы с данными не обойтись.
Visual Basic
Несмотря на достаточно спорное наследие, VB сегодня является прекрасным инструментом в среде Windows. В частности, упрощённая реализация VBA позволит вам писать полезные скрипты для MS Office, AutoCAD, SolidWorks, а также компонентов ActiveX.
Языки веба
Вообще в IT трудно представить какую-то область, где бы знание HTML, CSS и JavaScript вам не пригодилось. В качестве вариантов интереса для системщиков — сетевые экраны, системы регистрации и учёта пользователей, управление сетями предприятия и многое другое.
Блог IT для Windows
Все про Windows, программное обеспечение, информационную безопасность, программирование
Языки программирования, необходимые для работы системного администратора
В данной статье мы попробуем рассмотреть, какие языки программирования необходимо знать системному администратору. В качестве примера, возьмем системного администратора медицинского учреждения (больницы).
Во многих должностных инструкциях для системных администраторов, написано, что системный администратор должен знать языки программирования высокого уровня, иногда указываются «нормализированные» языки программирования, а иногда указываются и сами языки, например С++, Java, Perl и даже Assembler.
Assembler — язык программирования низкого уровня, приближенный к машинному и именно он отражает архитектуру ЭВМ. Он довольно сложен в изучении, но освоив его, можно запросто разобраться в работе микропроцессора, регистров и прочего оборудования. Знать этот язык программирования вовсе не обязательно, ну если только для саморазвития.
С++, С#, Delphi, Java и т.п. Программы на данных языках пишут программисты, а никак не сисадмины. Но можно и сисадмину написать программу например, для учета ПК, но это, по собственной инициативе сисадмина.
PHP, JS и т.п. В каждой организации есть свой сайт, в большинстве случаев сайты, либо заказываются и далее наполняются, либо всё это возлагается на сисадмина (в нашем примере больница). Сисадмин написал сайт, наполнил его, а потом уволился.
Пришел другой сисадмин, ему сказали вот готовый сайт, надо там поменять то-то. Если сайт был написан с нуля, то придется изучать HTML, CSS, JS, PHP. Если сайт создан на основе движка, например uCoz, Joomla и т.п., то потребуются знания только HTML, CSS, JS.
SQL — язык запросов, для работы с базой данных. В данное время базы данных работают, как в Web-приложениях, так и в различных программах, например написанных на С++, Delphi или в Microsoft Access. Знать язык запросов SQL желательно, но не обязательно. Это работа программиста, а не сисадмина, но если в его должные обязанности входит работа с запросами, то знать данный язык необходимо.
Встроенный язык программирования 1С. Если в организации есть приходящий программист 1С, то сисадмину знать данный язык программирования не обязательно, в его обязанности входит предоставить доступ и разграничить права. Если приходящего программиста нет, то придется, либо самостоятельно изучать данный язык программирования, либо на курсах, за счет предприятия.
Microsoft Visual Basic — язык программирования, предназначенный для работы с офисными документами (а это макросы и т.д.). Если в организации нет программиста и пользователи, пользуются различными макросами, то в случае сбоя, разбираться придется сисадмину, поэтому знание данного языка программирования желательно.
В данной статье, мы рассмотрели самые известные языки программирования, но случаются случаи, когда в организации используется специализированное программное обеспечение, написанное на другом языке программирования. В данном случае следует учитывать язык программирования, наличие исходных кодов, что бывает очень редко, а если исходных кодов нет, то проблемы с программным обеспечением обычно решаются с программистами, написавшими эту программу и не бесплатно.
Какой язык программирования выбрать сисадмину
Какой язык программирования выбрать сисадмину.
Существует много языков программирования. Что нужно знать системному администратору. Бывает просто базовые знания: установить всякие программы, контролировать чужие обязанности, организация работы в небольшом офисе. Программирование облегчает задачи в крупных компаниях, когда невозможно чисто физически контролировать каждый компьютер по отдельности.
PowerShell – данный продукт самой операционной системе Windows, очень удобный, понятный и функциональный. Минус данного продукта невысокое быстродействие. Знания PowerShell для управления OC на Windows будут очень кстати.
Bash — Данный продукт на Linux, обладает большой производительности, но для новичков не очень удобный. Знание пригодятся тем, кто будет работать в сфере науки и финансов. Как говорят: где есть Линукс там нужны и знания.
Python – данный продукт позволяет сделать все что угодно. Очень удобный и не сложный язык программирования, мощный инструмент для творческих задач. Вы можете использовать дополнительные модули и обходить разные ограничения, при этом не тратя много времени и сил.
Perl – данный продукт хоть и популярный, но в последние время уходит в прошлое, уступая другие языкам программирования Python или Ruby. Большинство административных решений можно прочитать в книгах.
SQL – данный продукт очень не заменим особенно системному администратору, который использует базы данных. Или управляет сервером, учетными записями и отчетами. Без знаний SQL, вы не сможете управлять работой с данными.
Visual Basic — данный продукт очень эффективный в операционной системе Windows. Помогает реализовать разные задачи благодаря скриптам для Microsoft Office, SolidWorks, AutoCAD и ActiveX.
Любая IT сфера, где нужны знания HTML и CSS, а также JavaScript. Особенно языки программирования в WEB-индустрии. Для сисадминов – это системы регистрации и контроль пользователей, управление сети в предприятии и многое другое.
51 задание для оттачивания навыков системного администрирования
Разбираемся с тем, как стать системным администратором, и выполняя реальные задачи, получаем основные знания для работы и развития.
Статья-туториал, к которой нужно отнестись с полной серьёзностью и не приступать к её прочтению, пока вы не поймёте, стоит ли становиться системным администратором и сможете ли вы.
О сисадминах
Как правило, системный администратор отвечает за технические вещи в организациях. Например, системные администраторы отвечают за то, что интернет-соединение в офисе работает, и что почтовый сервер в порядке, контролирует работу сетей, постоянно поддерживая их аппаратное и программное обеспечение, устанавливая обновления и многое другое, всё зависит от специализации.
Специализации
1. Универсальный сисадмин
Такой человек занимается операционными системами (Linux, Windows Server, Sun Solaris, BSD и др.) и их службами.
2. Сисадмин с узкой специализацией
Сюда можно отнести и тех кто работает с базами данных, кластерами, сетями, и тех, кто работает с чем-то другим. Главное отличие от других сисадминов — работа над конкретными узкопрофильными задачами. Этим обычно занимаются бывшие универсалы, которые выросли и хотят заниматься чем-то конкретным. Кстати, зачастую, зарплаты выше, но могут возникнуть сложности, если у вас совсем уж узкая специализация.
3. Build/Release инженер/Configuration manager
Некогда сисадмины, которые перешли к работе с IDE и серверами. В их обязанности входит статический анализ, модульное тестирование, компиляция, тестирование, работа с репозиториями, настройка сервера. Это самые узкопрофильные специалисты, которые стоят много денег и всегда пользуются спросом.
В статье рассмотрена именно первая специализация, как первоначальная ступень начинающего сисадмина. Как известно, большинство важных компаний работают с системами Linux. На это есть свои причины, связанные ограничениями в скорости, нагрузке, прозрачности. Так что, всё, что написано ниже, про Linux.
Всего существует три вида Linux: Debian, RHEL, Slackware. Всё остальное произошло от них же. Есть мнение, что лучше всего начинать с Debian, мы так и сделаем. Ещё один важный момент: можете закрыть эту статью, пока не дотянете английский до минимального уровня, просто потому что вы будете никому не нужны.
Далее, в процессе чтения этой статьи вы будете получать задания, которые нужно последовательно выполнять. Ну и таким образом знакомиться с тем, как и что работает.
Начинаем
Оговорка: не пытайтесь нигде поставить русский, потом могут быть проблемы.
Задание №1
- Скачиваем или покупаем программу VMware Workstation
- Устанавливаем на Windows
- Пока идёт процесс, знакомимся с тем, что такое виртуальная и хост-машина
Задание №2
- Скачиваем дистрибутив Windows
- Создаём гостевую машину
- Запускаем виртуальную машину
- Устанавливаем на неё Windows
Задание №3
- Выключаем виртуальную машину
- Экспортируем её в .OVA образ
- На его основе создаём ещё одну виртуальную машину
- Запускаем обе
Задание №4
- Пингуем адрес 127.0.0.1
- Запускаем на двух виртуальных и хост-машине cmd
- Узнаём их адреса
- Настраиваем сетевые интерфейсы виртуальных машин и конфигуратора сетей VMware, чтобы хост-машина могла пинговать виртуальные машины, а каждая из них могла пинговать другую
- Проверяем, что всё работает
Задание №5
- Загружаем Debian
- Устанавливаем её на первой виртуальной машине
- На этапе разметки диска делаем автоматическую
- На этапе выбора сервисов выбираем только базовые утилиты и SSH-сервера, когда спросит, устанавливаем загрузчик Grub
Задание №6
- Когда появится чёрный экран, набираем логин root и пароль, указанный при установке (мы не увидим, как набираем символы)
- Переходим в директорию /var
- С помощью команды узнаём, в какой директории находимся
- Читаем мануал по команде ls (только основное положение и про флаги -l, -t, -r, -A)
- Отображаем список директорий и файлов
- Переходим в директорию /var/log (без упоминания “var” в команде
- Переходим в директорию /var (снова без упоминания “var”)
- Создаём директорию /tmp/lesson/
- Переходим туда, задав абсолютный путь
- Создаём здесь файл с названием hello.txt и ставим права на файл “0777”
- Пингуем внешний адрес 8.8.8.8
Если последнее действие не получается, значит где-то накосячили, ищем ошибку сами или гуглим.
Задание №7
- Загружаем, устанавливаем и запускаем программу Putty
- Смотрим адрес виртуальной машины
- В программе подключаемся по SSH на нужный IP и далее работаем с системой только через SSH
Задание №8
- Отображаем содержимое /etc/apt/sources.list, используя команду cat
- С её же помощью и символа “>” записываем в файл следующие данные:
## Debian Jessie base:
deb http://ftp.debian.org/debian/ jessie main contrib non-free
#deb-src http://ftp.debian.org/debian/ jessie main contrib non-free
## Debian Jessie security updates:
deb http://security.debian.org/ jessie/updates main contrib non-free
#deb-src http://security.debian.org/ jessie/updates main contrib non-free
# Debian Jessie updates:
deb http://ftp.debian.org/debian/ jessie-updates main contrib non-free
#deb-src http://ftp.debian.org/debian/ jessie-updates main contrib non-free
- Обновляем кэш менеджера пакетов apt-get
- С помощью этой команды устанавливаем пакет vim
Задание №9
- Читаем про vi или vim
- Открываем на редактирование /tmp/lesson/hello.txt с помощью vi
- Печатаем любой текст на 40-50 строк (нужно, чтобы в каждой строке были буквы “abc” в такой же последовательности)
- Сохраняем и выходим
- Отображаем содержимое с помощью cat, затем less
- Отображаем только последние 10 строк, затем первые 7 строк
- Считаем количество строк в файле
Задание №10
- Узнаём, что такое конвейер и “pipe”
- Отображаем содержимое /tmp/lesson/hello.txt и перенаправляем результат по конвейеру в подсчёт строк
- Отображаем содержимое /tmp/lesson/hello.txt и перенаправляем результат по конвейеру в grep
- Отправляем дальше по конвейеру в подсчёт строк
- Отображаем содержимое /tmp/lesson/hello.txt и вывод перенаправляем в grep
Задание №11
- Читаем мануал по shutdown
- С её помощью выключаем виртуальную машину
Задание №12
- Склонируем диск первой виртуальной машины на вторую
- Запускаем вторую
- Входим с логином root
- Меняем название, чтобы знать, что это вторая виртуальная машина
- С помощью shutdown перезагружаем сервер
Задание №13
- Запускаем первый сервер (второй уже запущен, должно быть)
- Смотрим через консоль IP (должны отличаться)
- Читаем про IPv4 и маску подсети
- Знакомимся с DHCP
- Вписываем IP в конфигурационный файл сети на обеих виртуальных машинах (IP+маска+шлюз)
- Перезагружаем обе машины
- Проверяем, что с хост-машины пингуются виртуальные
- Сохраняем настройки сессий в putty для обеих виртуальных машин
- Выключаем вторую виртуальную машину (второй сервер)
Фух, теперь про повседневные задачи сисадмина.
Задание №14
- Запускаем командную строку
- Создаём переменную и присваиваем любое значение
- Отображаем её
- Проверяем, что переменная сохраняет своё значение после рестарта с помощью echo $a
- Отображаем переменную $PATH
- Разбираемся с тем как она работает
- Делаем так, чтобы добавился ещё один путь — /tmp
Задание №15
- Разбираемся с BASH и sha-bang
- Пишем пустой скрипт с расширением .sh и запускаем его
- Делаем так, чтобы скрипт можно было запускать без указания пути
Задание №16
- Делаем так, чтобы скрипт инициализировал DATE и задавал значение времени, затем выводил на экран
- Делаем так, чтобы вместо вывода на экран создавался файл в директории подобный /tmp/2017-08-17.txt
- Делаем так, чтобы в файл записывалось время создания
Задание №17
- Используя CRON заставляем скрипт исполняться ежеминутно
- Через 10 минут проверяем, чтобы в директории было столько же файлов, сколько прошло минут
- Обнаруживаем ошибку
- Используя find делаем так, чтобы директория проверялась раз в 10 минут и удаляла файлы, созданные больше, чем 17 минут назад
Задание №18
- Создаём пустой файл и вписываем что-нибудь
- Копируем с сохранением всех прав в другой файл с любым названием и содержимым
- Сравниваем контрольные суммы
- Меняем содержимое любого из файлов и смотрим разницу в контрольных суммах
Задание №19
- Создаём пользователя и задаём ему пароль
- Разбираемся с /etc/passwd, /etc/shaddow, /etc/group
- Делаем так, чтобы, если нет файла /tmp/passwd.backup, /etc/passwd копировался в /tmp/passwd.backup, а если /tmp/passwd.backup есть, то сравнивался с /etc/passwd
- Если различаются, то пусть копируется, если нет, пусть завершает работу скрипта
Задание №20
- Используя apt-get устанавливаем Apache2 на виртуальную машину
- С браузера хост-машины по IP-адресу виртуальной машины видим приветствие
- Меняем порт на :8080
- Снова выполняем то, что делали два шага назад, но с указанием порта
- Меняем порт обратно и проверяем как работает заглушка
- В hosts хост-машины создаём три домена: a1.com, b2.com, c3.com и связываем с IP виртуальной машины с Apache
- Для каждого домена проверяем всё ли правильно, с помощью ping
- Заходим на все три домена, написав их вместо IP виртуальной машины
Задание №21
- Создаём директории /var/www/a1.com, /var/www/b2.com, /var/www/c3.com
- В каждой из них создаём пустой index.html
- В каждом что-нибудь пишем
- Делаем так, чтобы открывался личный сайт из директории, а не общая заглушка
Задание №22
- Меняем index.html на index.php и добавляем следующую запись:
- Видим ошибку
- Через apt-get активируем mod_php
- Создаём инструкцию для Apache, чтобы все php файлы обрабатывались этим модулем
- Настраиваем такие же модули с инструкциями для Perl и Python
- b2.com и c3.com переводим на index.pl и index.py
- Создаём приветствия
Задание №23
- Читаем про HTML Basic вот здесь
- Про PHP Basic здесь
Задание №24
- Устанавливаем mysql-server
- С помощью mysql подключаемся через командную строку к серверу
- Создаём базу данных mydatabase и пользователя myuser
- Читаем раздел SQL Basic здесь
- Устанавливаем Joomla на a1.com
- WordPress на b2.com
Задание №25
- Читаем про реверс-прокси
- Устанавливаем Nginx
- Делаем так, чтобы 8080 порт Apache получал запросы 80 порта Nginx
- Проверяем a1.com, Nginx access.log должен пополняться при обращении к сайту
- Делаем, чтобы Nginx всё, кроме jpg и png файлов передавал Apache
Задание №26
- Включаем второй сервер
- Собираем MySQL Cluster на двух серверах
- Создаём базу данных с простыми таблицами, заполненными рандомными данными для тестирования
- Вносим изменения на один из серверов и проверяем на другом
- Выключаем второй сервер
- Рушим файлы базы вручную (всё для проверки)
- Делаем так, чтобы база восстановилась и появилась в кластере (думайте, как)
Задание №27
- Выключаем оба сервера
- Добавляем каждому серверу по одному диску на 700 Мб
- Включаем обратно
- С помощью fdisk проверяем, как обозначены диски
- С помощью DRBD соединяем диски серверов, чтобы изменения отображались на обоих (оба должны быть смонтированы в /mnt/drbd-disk)
Задание №28
- Выключаем первый сервер
- Добавляем ещё диски по 200 Мб
- Включаем сервер
- С помощью fdisk отображаем структуру дисков, должно быть четыре диска, из которых два не размечены
- С помощью mraid соединяем в RAID диски, с которыми не работали
- Монтируем /dev/md0 в /mnt/raid-disk
Задание №29
- Выключаем второй сервер
- Добавляем диск на 2Гб
- Включаем, настраиваем LVM и монтируем в /mnt/lvm-disk1
- Уменьшаем размер диска LVM вдвое и создаём такой же
- Монтируем в /mnt/lvm-disk1 и /mnt/lvm-disk2
Задание №30
- Ликвидируем exim4-config (если был)
- Ставим postfix
- Настраиваем пересылку почты с сервера к себе в почтовый ящик с помощью swaks
Задание №31
- Настраиваем на первом сервере в Nagios мониторинг обоих серверов
- Подключаем уведомления на свою почту (на всякий случай)
- Имитируем поломку MySQL и ждём сообщения о неисправности на почту
Задание №32
- На втором сервере поднимаем SVN-репозиторий scripts
- Делаем его доступным на любом сервере через svnserve
- На первом сервере склонируем в директорию /opt/scripts/
- На хост-машине в D:\scripts
Задание №33
Так, сейчас работаем только в vi.
- На первом сервере пишем скрипт /opt/scripts/backup.sh, чтобы он: на наших сайтах запаковывал директории с файлами в tar и сжимал в gz, снимал MySQL-дамп базы сайта в формате .sql, складывал всё это в /var/backups/www/имя_сайта, проверял содержимое файлов и так со всеми, а в конце, нужно, чтобы он отправлял на почту отчёт
- Фиксируем скрипт в репозитории
Задание №34
- Обновляем SVN-репозиторий
- Копируем файл из репозитория второго сервера в D:\scripts
- Устанавливаем вот это
- Через GVim добавляем рандомную строку
- Коммитим скрипт в репозиторий
- В /opt/scripts обновляемся
- Хотим увидеть изменения в скрипте
Задание №35
- Переписываем бэкап скрипт так, чтобы не нужно было перечислять существующие сайты, он должен обнаруживать их в конфигурации Apache
- Коммитим
- Переписываем бэкап скрипт так, чтобы все сообщения он писал и в консоль, и в syslog
- Коммитим
- Вносим синтаксическую ошибку в скрипт
- Коммитим с ошибкой
- Откатываем до последней рабочей версии
Задание №36
- Переписываем бэкапный скрипт так, чтобы, он определял CMS сайта и собирал данные доступа к базе
- Коммитим
Задание №37
- Настраиваем rsyslog первого сервера, чтобы логи бэкапного скрипта писались в ar/log/backup.log
- Настраиваем сбор логов на первом сервере
- Активируем LogAnalyzer здесь же
Задание №38
- Переписываем бэкап скрипт так, чтобы по завершению запускалась синхронизация директорий /var/backups/www между серверами
- Коммитим
- Повторяем, используя lftp mirror
Задание №39
Задание №40
- Активируем puppet на втором сервере
- Отдаём ему под управление /etc/passwd
Задание №41
- Читаем про init
- Загружаемся в разные init-уровни
- Перезагружаем сервер с помощью init
- Выключаем сервер с помощью init
- Включаем обратно
Задание №42
- Пробуем восстановить пароль от root, загрузив ядро с параметром init=/bin/bash
Задание №43
- Читаем про различие аутентификации и авторизации
- Разбираемся с PAM здесь и здесь
- Разбираемся, зачем нужен файл /etc/nsswitch.conf
- Делаем авторизацию SSH в MySQL (files оставляем про запас)
Задание №44
- На bash пишем скрипт в /opt/scrpts/my_daemon.sh, чтобы он: отцеплялся от STDIN,STDOUT,STDERR, менял рабочую директорию на /, закрывал все дескрипторы, выводил количество минут до перезагрузки
Задание №45
- Создаём init-скрипт в /etc/init.d/my_daemon с LSB-тэгами
- Пробуем запустить и остановить скрипт /opt/scrpts/my_daemon.sh используя init-скрипт /etc/init.d/my_daemon
- Запускаем, останавливаем и смотрим статус скрипта, используя service
- Ставим daemon на автозагрузку
Задание №46
- Меняем скрипт с SysVinit на systemd
- Запускаем, останавливаем и смотрим статус скрипта, используя systemctl
Задание №47
- Проходим онлайн-курсы по сетям
- Знакомимся с OSI, TCP/IP, NAT и прочими штуками по теме
Задание №48
- Ставим на обычный ПК Cygwin (выбираем python, vim, git, openssh и все паке, которыми пользовались на Linux)
- Добавляем путь к бинарным файлам Cygwin в %PATH%
- Запускаем cmd, пробуем работать в нём на Windows
- Ставим что-нибудь более удобное
Задание №49
- Удаляем все виртуальные машины
- Удаляем на Windows VMware-продукты
- Ставим VirtualBox , Vagrant
- Создаём директорию C:\VM\server1 и переходим к ней
- Инициализируем Debian с помощью Vagrant, запускаем его
- Открываем VirtualBox и проверяем, что создалась новая виртуальная машина
- Останавливаем и удаляем виртуальную машину
- Регулируем имя, 3 CPU, RAM 1Gb, проброс порта 22
- Запускаем её и подсоединяемся по SSH через putty
Задание №50
- На Cygwin ставим Ansible
- Включаем Vagrantfile в самом конце провиженинг Ansible
- Дополняем Ansible: apt-get: git, curl, pyenv, python3.6 при помощи pyenv, делаем python3.6 дефолтным глобально
- Устанавливаем Logbook, paramiko, lxml
- Создаём с нуля виртуальную машину
Задание №51
Так, теперь переходим к очень важному моменту. Всегда очень круто, когда сисадмин дружит с Python. Так что если ещё не начали изучать, приступайте.