ServerAdmin.ru
28.9K subscribers
303 photos
35 videos
13 files
2.63K links
Авторская информация о системном администрировании.

Информация о рекламе: @srv_admin_reklama_bot
Автор: @zeroxzed

Второй канал: @srv_admin_live
Сайт: serveradmin.ru
Download Telegram
​​Давно не затрагивал игровые или детские темы. Решил немного посмотреть, не появилось ли чего-то нового. А оно появилось. Я уже рассказывал про компанию Luden.io, у которой очень классные игры для детей на русском языке с уклоном в обучение программированию. Да и не только для детей. Игры реально классные, красочные, увлекательные. Прочитайте мою заметку, там много информации.

У них появилась новая игра Craftomation 101. Она ещё не полностью доделана, но вполне играбельна. Можно бесплатно скачать и поиграть. По ссылке в конце дистрибутив под Windows, Linux, Mac. На винду установка не требуется. Просто скачиваете и играете. Можно выбрать русский язык в настройках. Перевод качественный, так как создатели русскоязычные.

Я немного поиграл, примерно час. Дошёл до появления роботов и их программирования. Запрограммировал их на выполнения некоторых действий. Игра реально красивая и увлекательная. Интересно и самому поиграть. Показал сыну (9 лет), сразу заинтересовался. Поиграл немного, научился роботов программировать. Сразу всех задействовал, автоматизировал рутину. В общем, ничего так игра, рекомендую.

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

#игра #обучение #дети
​​🎓 На днях на хабре был анонс на вид очень неплохого учебника для тестировщика под названием "The 100-Year QA-Textbook". Он собрал много просмотров, так что возможно многие из вас про него уже знают. К тому же предварительный релиз этого обучающего материала был давно, а сейчас вышло очередное обновление.

Вот информация о курсе от создателей:

Зачем появился бесплатный интерактивный «100-Year QA-textbook» на 700+ страниц для обучающихся тестированию

Полный релиз бесплатного интерактивного 700-страничного учебника по тестированию

На вид материал выглядит качественным. Несмотря на то, что он анонсирован для тестировщиков, 2/3 курса это база, которая подойдёт для любой специальности в IT. Судя по содержанию это так и есть, потому что там разбирают:
СУБД и SQL запросы
База по ОС Linux (файловые системы, пользователи, процессы и т.д.)
Работа с сетью
Архитектура серверного ПО
Rest API, HTTP
Docker, GIT

К сожалению, не смог посмотреть раздел по Linux, потому что курс даёт возможность проходить материал последовательно. Пока не пройдёшь тест за предыдущий раздел, к следующему доступа нет.

Как я понял, курс сделан на базе онлайн школы тестировщиков. У меня есть любопытная история на этот счёт и общее мнение насчёт тестировщиков. Но чтобы не смешивать тематику, это будет вечером в отдельной публикации.

#обучение #бесплатно
​​🎓 Сегодня пятница, а пятница — это почти выходной, когда уже не хочется заниматься делами. Лучше это время потратить с пользой и заняться самообразованием. А в этом нам может помочь набор TUI программ для обучения в консоли.

https://github.com/learnbyexample/TUI-apps

Их тут несколько, и я начал с того, что мне показалось наиболее полезным - Linux CLI Text Processing Exercises. Это простенькая оболочка с вопросами на тему обработки текстовых файлов консольными утилитами в Linux. Поставил по инструкции:

# python3 -m venv textual_apps
# cd textual_apps
# source bin/activate
# pip install cliexercises
# cliexercises

Запускаю, первый же вопрос:
Display the first 5 lines for the input file ip.txt.
Для меня это просто. Отвечаю:
head -n 5 ip.txt
Ответ правильный и мне предлагают ещё вариант:
sed '5q' ip.txt
С sed часто работаю, но не знал, что с его помощью можно так просто вывести первые 5 строк. Записал сразу себе в шпаргалку.

Следующий вопрос посложнее, но тоже в целом простой:
Display except the first 5 lines for the input blocks.txt.
Выводим всё, кроме первых 5-ти строк:
tail -n +5 blocks.txt
Я ошибся и срезал только 4 строки. Поправился:
tail -n +6 blocks.txt
Утилита подтвердила, что мой вариант правильный. Честно говоря, я думал, что вряд ли в ней будет вариант с tail, поэтому взял именно его. Но она в виде правильных вариантов предложила как раз с tail и ещё с sed:
sed '1,5d' blocks.txt
Тоже сразу записал в шпаргалку. Решил ещё проверить вариант с awk. Я думал, что именно он и будет предложен, так как первый пришёл в голову:
awk 'NR>5' blocks.txt
Тоже помечен, как правильный. Возможно программа проверяет вывод, используя все доступные системные утилиты, так что правильным будет даже тот вариант, что отсутствует в её базе.

Таких заданий тут много. Конкретно в этой программе 68. Проходить увлекательно и полезно, так что рекомендую для самообразования и пополнения своей коллекции bash костылей. Можно в исходниках сразу всё посмотреть, но не рекомендую. Так ничего не запомнится. А если самому подумать, то лучше отложится в голове.

Вот примерчик из того, что будет ближе к концу:
From blocks.txt extract only the 3rd block. A line containing %=%= determines the start of a block.
То есть файл разделён на блоки, а разделитель блоков - символы %=%=, надо вывести 3-й блок. Для меня это уже сложно, чтобы что-то сходу придумать. Вот решение:
awk '$0 == \"%=%=\"{c++} c==3' blocks.txt

#обучение #terminal #bash
​​🎓 На прошлой неделе я рассказывал про репозиторий с обучающими TUI программами с популярными консольными утилитами. Хочу обратить внимание на тренажёр по awk. Я там увидел много полезных примеров с возможностями awk, про которые я даже не знал.

https://github.com/learnbyexample/TUI-apps/tree/main/AwkExercises

Например, я никогда не использовал awk для того, чтобы вывести строки с определёнными символами. Обычно использовал для этого grep, а потом передавал вывод в awk. Хотя в этом нет никакой необходимости. Awk сам умеет это делать:

# grep 'word' file.txt
# awk '/word/' file.txt

Команды делают одно и то же. Выводят строки со словом word. Понятно, что если задача стоит только в этом, то grep использовать проще. Но если нужна дальнейшая обработка, то уже не так однозначно. Например, нам надо вывести только первый столбец в строках со словом word.

# grep 'word' file.txt | awk '{print $1}'
# awk '/word/{print $1}' file.txt

Тут с awk уже явно удобнее будет. Ну и так далее. В программе много актуальных примеров обработки текста с awk, которые стоит посмотреть и какие-то записать к себе.

Например, поставить символ . (точка) в конце каждой строки:

# awk '{print $0 "."}' file.txt

Я не понял логику этой конструкции, но работает, проверил. На основе этого примера сделал свой, когда в начало каждой строки ставится знак комментария:

# awk '{print "#" $0}' file.txt

Это хороший пример, который можно совместить с выборкой по строкам и закомментировать что-то конкретное. Чаще для этого используют sed, но мне кажется, что с awk как-то проще и понятнее получается:

# awk '/word/{print "#" $0}' file.txt

Закомментировали строку со словом word. Удобно комментировать какие-то параметры в конфигурационных файлах.

#обучение #bash
​​🎓 По компьютерным сетям есть отличный курс "Компьютерные сети", Климанов М.М. от МФТИ (Московский физико-технический институт):
https://www.youtube.com/playlist?list=PLthfp5exSWErPFK_-EAhVtxO3XoY0gsSe
Я уже упоминал про него ранее.

Есть не хуже, а может даже и лучше, если судить про просмотрам и активности в комментариях, курс "Компьютерные сети, учебный курс.", Созыкин Андрей:
https://www.youtube.com/playlist?list=PLtPJ9lKvJ4oiNMvYbOzCmWy6cRzYAh9B1

Там даётся база, азы сетей, поэтому заявлено, что он для программистов, так как сисадмины, по идее, и так должны всё это знать. Если не знаете, то этот курс вам отлично подойдёт. Для самообразования это будет базой для тех, кто не знаком с сетями. Сделан на основе классиков Таненбаум и Олиферы. Записан более 7-ми лет назад, но нисколько не потерял актуальность, так там база, практически неизменная с 80-х годов.

#обучение
У меня часто спрашивают, как начать свой путь в системном администрирование, или в IT в целом. Причём спрашивают очень разные люди. Это могут быть родственники или родители, чьи дети готовятся куда-то поступать после школы. Просят советы взрослые люди и начинающие специалисты. Если есть время, могу просто пообщаться и что-то рассказать. Были и платные консультации, когда мне сразу предлагали заплатить за содержательную беседу.

Последнее время всё больше понимаю, что я толком не знаю, что посоветовать. Я же не учитель, не коуч, не создатель курсов по развитию и т.д. Сам закончил институт 16 лет назад и не знаю, как сейчас преподают. Я просто системный администратор, который ведёт свой блог и иногда пишет тематические статьи. У меня нет каких-то системных знаний или исследований этого вопроса.

Условно я делю всех вопрошающих на 3 категории:
1️⃣ Старшеклассники.
2️⃣ Молодые специалисты после универа.
3️⃣ Люди 30-35+, пытающиеся войти в IT из другой специальности.

🟢 Несколько лет назад я написал статью для подростков: Куда поступить, чтобы выучиться на программиста или сисадмина. Я советовал сразу вкатываться в IT со школьной скамьи и идти в универ на заочку просто для корочки. Не уверен, что дал там подходящие советы, но на тот момент думал именно так. Более того, подтверждение своих советов позже увидел лично в одном знакомом школьнике, который после окончания 11-го класса уже фактически имел профессию программиста и мог зарабатывать наравне со своими родителями. И он не хотел идти в ВУЗ, чем очень расстраивал своего отца, который просил моего совета, как быть. Я успокоил и сказать, что у вас всё круто. Мало кому так повезло найти себя уже в школе. Так что со школьниками вопрос открыт. Сейчас есть крутые университеты, типа Иннополиса. Я бы хотел там отучиться, или отправить учиться детей, если захотят.

🟡 Для начинающих специалистов у меня обычно другой совет. Денег там чаще всего ещё нет, так что рекомендую устроиться хоть куда за любые деньги, лишь бы была практика. Браться за любую работу, пробовать. По ходу дела вникать в отрасль и решать, что тебе в ней больше нравится. Параллельно изучать бесплатные курсы, материалы, статьи, в общем, всё что есть по понравившейся теме. Семьи ещё нет, времени много. Например, можно бесплатно попасть в какой-то инкубатор или интенсив и ударно там потрудиться. Такие мероприятия обычно организуют крупные вендоры, типа Tinkoff или VK. Там же можно и предложение по работе получить. Тоже таких знаю.

🔴 Для третьей категории рекомендую ещё раз хорошо подумать и если решение твёрдое, то идти на какие-то курсы. Времени на самообразование обычно уже нет, да и голова после 30 начинает хуже соображать. Тут уже нет времени сидеть самому, вникать и тыкаться наугад. Надо, чтобы помогли. Да и деньги к этому времени уже хоть какие-то есть, так что можно себе позволить где-то отучиться. К тому же из-за возраста подход по-любому будет основательный и взвешенный. Есть мотивация, в том числе и финансовая. Больше посоветовать нечего. Если честно, я не знаю, как тут вырулить в итоге. Чем и как нужно впечатлить нанимателей, убедив их, что джун 35-ти лет хороший вариант для их вакансии, если там ещё 50 таких же, только 23-х летних после универа. Если у кого-то есть практические советы на этот счёт, то поделитесь своим мнением. Уверен, среди читателей есть люди, которые вкатились в IT после 30-ти.

Кстати, вот моя заметка про современные онлайн курсы.

Если у вас есть какие-то мысли, советы, примеры по данной теме, поделитесь. Мне хотелось бы лучше разобраться в этой теме, чтобы не надавать вредных советов, которые могут по итогу кому-нибудь навредить, особенно подросткам. К тому же время быстро летит. Ещё лет 5 и мне уже нужно будет что-то думать насчёт старшего сына.

#мысли #обучение
Решил собрать в единый список известные мне бесплатные курсы и материалы, которые можно посоветовать для базового изучения тем, кто хочет начать движение в сторону системного администрирования Linux и DevOps от простого к сложному.

🎓 Базовое администрирование Linux:
▪️ Основы GNU/Linux и подготовка к RHCSA — автор в качестве хобби создаёт хорошие курсы для новичков. Причём как в текстовом виде, так и в виде записанных уроков. Качество материала высокое.
▪️ Базовое администрирование Linux-серверов — бесплатный курс по основам от Слёрм.
▪️ Введение в Linux — большой и масштабный бесплатный курс по Linux на платформе Stepik.
▪️ Администрирование Linux — совместный курс в виде лекций на youtube от команды VK Team на базе МФТИ.
▪️ Администрирование базового уровня (LPIC-1) - курс на youtube от известного Семаева Кирилла, который к сожалению больше не в состоянии записывать курсы.

🎓 Сети:
▪️ Сети для самых маленьких — очень качественный, структурированный материал по сетям от самых основ до более сложных вещей. Написано, как я понимаю, энтузиастами-сетевиками из подкаста Linkmeup.
▪️ Компьютерные сети, Климанов М.М., Компьютерные сети, учебный курс, Созыкин Андрей — база по сетям от преподавателей МФТИ.
▪️ Основы документирования сетей — серия уроков на youtube по документированию сетей.

🎓 GIT:
▪️ Git для начинающих — бесплатный курс по основам от Слёрм.
▪️ Oh My Git! — одна из самых известных и популярных игр на тему изучения Git.

🎓 Базы данных:
▪️ Введение в базы данных - бесплатный курс на Stepik.
▪️ Интерактивный тренажер по SQL - тоже курс на Stepik.

🎓 DevOps:
▪️ 90DaysOfDevOps — сборник из 90 шагов, разбитых на 90 дней для развития в области DevOps. Язык материала - английский.
▪️ Как стать DevOps Инженером с Нуля, что учить и в каком порядке —интересное видео от человека, который вкатился в DevOps в 30+ лет. Рассказывает свой опыт.
▪️ Онлайн тренажёры от RedHat — интерактивные уроки, где воспроизводят полностью рабочую среду разработчика или devops инженера. 

🎓 Docker:
▪️ Основы Docker - хорошее обучающее видео по Docker для новичков.
▪️ Play-with-docker - онлайн тренажер для изучения Docker.

🎓 Kubernetes:
▪️ Полный видеокурс по Kubernetes из 22 обучающих уроков - там вообще всё от нуля до мониторинга и деплоя приложений.
▪️ Play-with-k8s - онлайн платформа для изучения Kubernetes.

Это всё, что нашёл более ли менее целостное и полезное. Если есть чем дополнить, поделитесь в комментариях. Я публикацию буду обновлять и в будущем ссылаться на неё.

#обучение #подборка
На днях перебирал свои старые записи, в которых собирал на мой взгляд полезную информацию. Нашёл реальный список вопросов на собеседовании Middle DevOps, который выложил человек после собеса. По сути они все админские. Сейчас админов не осталось, все девопсами стали.

Проверьте себя по списку. Очень кратко к каждому вопросу напишу ответ. Так или иначе ответы почти на все вопросы знал, но где-то точные формулировки не помнил, где-то конкретные названия забыл. Это не полный список из-за ограничение длины заметки.

Какие бывают системы инициализации в Linux. В чём преимущества наиболее популярной?

В прошлом популярны SysV и Upstart, сейчас - Systemd. Основные преимущества - гибкие настройки сервисов и интеграция с системными настройками и компонентами, единая система инициализации для всех популярных дистрибутивов.

Что такое systemd unit, для чего он нужен, в каком каталоге создают файлы юнитов?

Unit - объект systemd, который служит для описания запуска и работы сервиса. Обычно в /etc/systemd/system.

Какие потоки ввода/вывода существуют в Linux, их нумерация?

0 (stdin), 1 (stdout) и 2 (stderr)

Как перенаправить поток вывода ошибок в стандартный вывод, зачем это может пригодиться?

# command 2>&1
Пригодится, чтобы собрать в один лог файл и результаты работы команды, и ошибки.

Есть приложение, которое пишет лог-файл, он занял почти всё свободное место на диске. Приложение останавливать нельзя, каким образом правильно освободить место на диске?

Очистить лог, к примеру, с помощью truncate, или cat /dev/null > log_file не удаляя сам файл. Либо удалить/переместить лог и дать команду приложению на reload, если он подобное поддерживает. Например, nginx reload, kill -USR1 `cat /var/run/nginx.pid`, smb reload, postfix reload и т.д. Если что-то напутали, файл удалили, но место не освободилось, то смотрим удалённые файлы через lsof +L1 и удаляем окончательно.

Что такое файловый дескриптор?

Это число-идентификатор потока ввода/вывода, который связан с файлом. Процессы имеют свои таблицы файловых дескрипторов, с которыми работают. Для ввода/вывода данных процесс обращается к ядру через системный вызов, передавая номер дескриптора.

Какой утилитой можно посмотреть файлы связанные с определенным потоком ввода-вывода?

Если не ошибаюсь, то lsof. В данном случае не понимаю, что подразумевается под определённым потоком. Файловые дескрипторы процесса смотрим так: lsof -p <pid>

Что такое интернет сокет в Linux?

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

Какая встроенная утилита есть в Linux для ротации логов, какой тип ротации бывает?

Logrotate. Ротация по размеру, по времени жизни файла. Если делаем ротацию по размеру, не забываем настроить частый запуск logrotate.

Как проверить доступность порта, слушает ли соединение сервер?

# ss -tulnp

Был ли опыт конфигурирования Nginx, почему его используют как точку входа перед Backend?

Используют для распределения соединений/нагрузки между бэкендами, для удобства управления и контроля за соединениями.

Можно ли удалить default.conf из Nginx, в чем его ключевая фишка?

Можно удалить. Там прописан параметр default_server, его можно перенести в другой виртуальный хост. С этим параметром он будет собирать все запросы по ip адресу и несуществующим доменам.

Где локально в Linux прописать соответствие IP - DNS, как это может помочь в отладке конфигурации Nginx?

В файле /etc/hosts. Как может помочь в отладке - не знаю. Иногда нужно на бэкенде прописать соответствие IP адреса бэкенда доменному имени сайта, чтобы некоторые запросы выполнялись локально, а не ходили на прокси.

В чем принципиальное отличие виртуализации от контейнеризации?

Виртуальная машина — полноценный экземпляр ОС со своим ядром. Контейнеры используют ядро хостовой машины.

Ответы писал сам. Если ошибся, прошу поправить.

#обучение
​​🎓 За всё время ведения канала не было ни одной рекомендации по хорошему обучающему материалу по Ansible. Хотел сам что-то пройти, чтобы освежить знания, и не нашёл ничего у себя на канале.

Если у кого-то есть рекомендации на хорошие бесплатные курсы по этой теме, то поделитесь информацией. Вот то, что нашёл я.

Ansible На Русском Языке от небезызвестного Дениса Астахова, автора канала ADV-IT. Зная другие материалы этого автора, предполагаю, что это качественный материал.

ИТМО: Инфраструктура как код - свежий курс от известного сообщества DeusOps. У них свой канал в ютубе, телеграме, там же есть чат. Я сам не слежу за этим сообществом, но временами видел материалы оттуда, как и пересылку своих постов отсюда в их чат.

Ansible для начинающих + практический опыт - бесплатный курс на Stepik, плюс от этой же компании небольшой плейлист на ютубе.

Небольшой курс из двух уроков от автора канала Unix way. Я уже не раз упоминал его на канале. Уровень материала у него хороший. Да и отзывы к урокам говорят о том, что уроки сделаны качественно.

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

#обучение #ansible
​​Для тех, кто всё ещё ищет себя в IT или планирует перепрофилироваться в какое-то смежное направление, рекомендую обратить внимание на курс по нейросетям. Курс полностью бесплатный. Его автор – Созыкин Андрей. Известен он тем, что записал хороший курс по сетям, на который много положительных отзывов.

Я изучал его сайт и заметил курс Программирование нейросетей на Python. Если бы я сейчас выбирал направление, куда пойти, то скорее всего выбрал бы что-то связанное с AI. Во-первых, мне кажется, это очень интересным. Во-вторых, реально востребованным. В-третьих, это тоже IT, связанное в программированием и немного эксплуатацией. С админской базой заходить будет проще, чем с самого нуля. То есть если сисадмину захочется перепрофилироваться в интеллектуальный анализ данных, то для него это вполне реально. Особенно если он уже знает Python. Но даже если не знает, освоить его не трудно.

Курс объёмный, структурированный, с лекциями и практическими работами. Оформлен как полноценный университетский курс, что не удивительно, так как Андрей преподаёт в Московском физико-техническом институте.

У Андрея есть YouTube канал, где он недавно озвучил свои планы по его развитию на 2024 год. Он планирует:
Обновить курс по компьютерным сетям.
Сделать курс по DevOps.
Расширить свой небольшой курс по SQL.
Так что подписывайтесь.

Если кто-то из подписчиков вдруг занимается нейросетями, расскажите, каково это. Легко, сложно, интересно или нет? Как пришли к этому, где учились, что можете порекомендовать?

#обучение