disabler

disabler

на Пикабу
поставил 38905 плюсов и 230 минусов
отредактировал 0 постов
проголосовал за 0 редактирований
8442 рейтинг 268 подписчиков 330 комментариев 13 постов 6 в горячем
1 награда
5 лет на Пикабу
335

Системный администратор Linux. Вопросы. Часть 3

Данный пост является продолжением серии постов про собеседования на должность системного администратора linux. По традиции комментарии к предыдущему посту (Системный администратор Linux. Вопросы. Часть 2) в большинстве своём скатились в срач. Адекватных были единицы, но ради них эти посты я и пишу.


У меня меленькая просьба к подписчикам и тем, кто сохраняет в избранное мои посты - оставляйте хоть какой-то фидбек. Хотя бы в виде плюса или минуса посту. Сейчас примерно половина сохранений без оценки и это нагоняет тоску.

Системный администратор Linux. Вопросы. Часть 3 Linux, Windows, Сисадмин, Отдел кадров, Пригорело, Собеседование, Длиннопост

Вводные завершены, продолжаем список вопросов и ответов.


В: Как отключить iptables на RHEL/Centos 7?

О: Начиная с 7й версии было изменено название демона с iptables на firewalld. Для отключения надо сделать systemctl stop firewalld, а так же отключить его запуск при загрузке systemctl disable firewalld.

В+: Всегда ли этого достаточно?

О+: Нет. Иногда используются надстройки и кастомные скрипты для восстановления правил iptables после перезагрузки. Надо просмотреть вывод systemctl status на предмет скриптов восстановления iptables, а так же post-up, pre-up, post-down, pre-down скрипты в /etc/sysconfig/network-scripts/.


В: Как выполнить некий скрипт на условной 1000 серверов?

О: Можно написать скрипт, который будет обходить сервера по списку и выполнять на них нужные действия.

В+: А есть какие то готовые решения?

О+: Да. Сейчас особенно популярен Ansible. Помимо него есть puppet, chef и т.д. Так же есть различные web-интерфейсы для данных систем. Такие как платный Ansible Tower или бесплатные AWX, Foreman.


В: Необходимо сделать резервное копирование неких данных. Что бы Вы использовали? Как сделать дёшево и как правильно?

О: Самое простое и дешевое решение это архивация неких данных и вынос на внешний носитель. Для работы с обычными файлами этот метод вполне рабочий. А вот для копирования баз данных, особенно больших и нагруженных, такой метод не подходит. Всё дело в том, что между началом копирования и завершением проходит достаточно много изменений в базе и на выходе получается не консистентный бекап. В таких случаях используется логирование действий для последующей «догонки» базы до актуального состояния. Например в psql для этого используется WAL, у oracle это FRA и т.д., но это уже в зоне ответственности администратора баз данных. Виртуальные машины можно бекапить снапшотами с ротацией и выносом их на другой носитель.

В+: А более «взрослые» решения?

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


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

О: Основное правило - всех элементов по два. Если говорить про сервер, под систему должно быть два диска в зеркале (тут обычно спрашивается про то, какие raid бывают) или загрузка по SAN, две сетевые карты с LACP или иной active-active агрегацией, два независимых HBA адаптера в двух PCI слотах, каждый из которых подключается в отдельную SAN фабрику. Два блока питания на раздельных линиях питания. Разумеется таких серверов должно быть тоже два. Желательно в разных, георазнесённых, ЦОДах.

В+: А что касается остальной, не серверной части?

О+: Тот же принцип - всего по два. Главное, что бы приложение, которое работает в этой инфраструктуре, тоже умело резервироваться. Т.е. работало по принципу active-active или active-standby без участия человека. Так же, надо учитывать, что одно «плечо» должно тянуть суммарную нагрузку и при этом не упираться в свой предел. Например, штатный максимум по нагрузке на CPU одного плеча - 40%. При падении старого плеча будет 80%. И останется 20% на непредвиденные ситуации, которые часто в таких случаях появляются.


В: Что нужно для кластерной виртуализации?

О: Основное требование - наличие общего хранилища. Так же желательно иметь одинаковые настройки сети на всех нодах кластера. Это нужно для горячей миграции и для миграции машин при авариях.


В: Каким образом можно подключить диски к кластеру?

О: Общее хранилище может быть реализовано различными средствами - SAN, iSCSI, Ceph.

В+: Какой способ оптимальный из предложенных?

О+: Всё зависит от инфраструктуры, целей, бюджета и количества инженеров, выделенных на поддержку. Например Ceph можно собрать из весьма разносортных нод. При минимальном бюджете это хорошее решение. Вот только затраты человеческих ресурсов на него значительно завышены. SAN - дорогое по железу и относительно простое в поддержке решение. В любом случае придётся платить. Либо за железо, либо инженерам.


В: В чём преимущество Fibre Channel перед iSCSI?

О: В SAN сетях есть гарантированная доставка, меньше накладных ресурсов, сеть разрабатывалась как транспорт для дисковых носителей. В тоже время iSCSI это надстройка над ethernet, со всеми его недостатками.

В+: Допустим у нас есть два простых FC свича и два Ethernet свича. Каждую пару свичей мы соединим двумя линками. Что с ними произойдёт?

О+: FC свичи, при наличии лицензии, объединят два линка в один с удвоенной пропускной способностью. Ethernet свичи получат так «кольцо» и перестанут работать спустя какое-то время, которое зависит от объёма траффика в данном сегменте сети.


В: Есть некая виртуальная машина на VMWare. У машины 2 гигабайта памяти. В настройках машины стоят галочки «Можно добавлять память на горячую» и «Можно добавлять процессор на горячую». Внутри машины стоят все нужные гостевые дополнения. Система стоит x64. Можно ли сделать машине 6 гигабайт памяти на горячую?

О: Нет. На горячую можно будет подойти к отметке в 4 гигабайта, но пересечь её не получится.

В+: Почему? Система, ведь, поддерживает?

О+: Основной принцип памяти - отсутствие фрагментации. Т.е. вся память должна быть непрерывна. Если система стартует с объёмом памяти менее 4 гигабайт, часть старших адресов 32-битной шины резервируется под ввод-вывод. Соответственно расширять память можно до этих пределов. Если на старте памяти было 4 гигабайта и более, под ввод-вывод резервируется блок в верхней части уже существующего 64-битного адресного пространства.


В: Есть неограниченный бюджет и некая абстрактная платформа, которая умеет много памяти. Какой теоретический максимум памяти можно установить в такой сервер если система x86 и если система x64?

О: Предел x86 - 32 бита непрерывного адресного пространства, т.е. 4 гигабайта. Однако с использованием PAE объём памяти увеличивается до 64 гигабайт, но не более 4 гигабайт на процесс, т.к. адресная шина так и сталось 32 бита. Теоретический предел существующих x64 систем - 48 бит адресного пространства.

В+: Из чего получаются эти 48 бит?

О+: Размер страницы памяти 4 килобайта или 12 бит. Нумерация страниц - 36 бит. Итого получается 256 терабайт памяти.


На этом пока всё. Остался последний большой вопрос, объёмом на отдельный пост.

Показать полностью
86

Системный администратор Linux. Вопросы. Часть 2

В комментариях к предыдущему посту (Системный администратор Linux. Вопросы) собрались в основном писатели, а не читатели. Чаще всего звучал вопрос: «а это на какой уровень?». Ответ простой - ни на какой. Это всего часть вопросов от простого к сложному. И в данном посте тоже будет только часть.


Вторыми по популярности была критика вида «Ваши вопросы говно» и рекомендации как именно надо проводить собеседования и что спрашивать. По личному опыту, такое обычно звучит от «Диванных эникеев». По этому если у Вас пригорает - я на верном и пути. А главное, помните, Ваше мнение важно для всех людей в этой комнате:

Системный администратор Linux. Вопросы. Часть 2 Linux, Windows, Сисадмин, Отдел кадров, Пригорело, Собеседование, Длиннопост

Ну а тем, кому интересны вопросы, продолжаем.


В: Как сменить забытый пароль root?

О: Загрузиться с LiveCD, смонтировать файловую систему, сделать chroot, сменить командой passwd. Если файловая система поверх LVM - может понадобиться активировать LV.

В+: А если нет возможности использовать LiveCD?

О+: Можно попробовать загрузиться в Single Mode. В RHEL-based дистрибутивах надо в grub нажать E, найти init и исправить на init=/bin/bash, а так же опцию ro исправить на rw. После этого нажимаем X, система загрузится и сразу запустится shell от root. Далее меняем пароль командой passwd.


В: Вы подключаетесь к серверу по ssh и первое, что надо понять, это физический сервер или виртуальный. Для виртуального надо определить тип гипервизора.

О: Виртуалку можно определить по косвенным признакам. Например, не соответствие количества ядер и названия процессора. Не типовые объёмы диска или памяти. Опять же, вывод dmidecode будет меньше, чем на физическом сервере. В выводе будет фигурировать название гипервизора. Командами lspci, lsusb и dmesg так же можно посмотреть вендора оборудования там тоже будет упоминание гипервизора или вендора гипервизора.

В+: А более гарантировано и проще?

О+: Команда lscpu показывает, что процессор виртуализирован и название вендора гипервизора. На RHEL-based дистрибутивах есть команда virt-what, которая возвращает так же вендор гипервизора.


В: Вы подключились к серверу по ssh, видите, что это нечто линуксоподобное, но надо понять какая именно система перед нами.

О: Можно командой uname -a определить тип архитектуры и версию ядра. Если архитектура sparc - скорее всего перед нами Solaris. Если в названии ядра есть darwin - это macOS. Если в номере версии ядра есть el6, 7 или 8 - это что-то на базе RHEL. Буквы EL - Enterprise Linux. Цифра - мажорная версия. Можно по пакетному менеджеру. Yum, apt, yast, pkg и т.д.

В+: А явно?

О+: В папке /etc должен быть файл с названием, в котором есть слово release. Это centos_release, lsb_release и т.п. Можно сделать cat /etc/*release* и это покажет как название дистрибутива, так и его полную версию. Это работает на Solaris и большинстве Linux дистрибутивов. На mac для этого есть команда sw_vers.


В: При попытке запустить например apache он ругается, что 80 порт занят. Как посмотреть кем?

О: Командой netstat с ключами -p (port) и -l (listen).

В+: А если такой команды нет?

О+: В частном случае можно поискать в /etc конфиги других web серверов. Или можно воспользоваться командой ss с теми же ключами -lp.

В++: Есть ли какие либо ограничения при использовании этих команд?

О++: Да, PID будет показан только если команда исполняется от superuser, например от root. Либо надо дать право на работу с сокетами непривилегированным пользователям.


В: Выстрел самому себе ногу. Сделали chmod -x /bin/chmod. Как вернуть без перезагрузки?

О: Скопировать с другого сервера или с подключённого внешнего носителя.

В+: А без внешних операций?

О+: В linux при копировании происходит копирование его атрибутов. Можно скопировать любой файл в /bin и командой cat влить в него содержимое /bin/chmod. После чего получившимся файлом вернуть права на исходный.


В: Какие есть варианты авторизации по ssh?

О: По логину и паролю, по логину и ключу.

В+: А ещё?

О+: Через pam можно добавить любой другой метод. Например двухфакторную авторизацию сделать или доменную авторизацию без ввода в домен.


В: Как посмотреть все WWN сервера?

О: systool -c fc_host -v | grep ‘port_name’ или cat /sys/class/fc_host/host*/port_name

В+: А что такое WWN?

О+: Грубо говоря, это аналог mac-адреса, но в san сетях.


В: Мне надо запустить один и тот же скрипт 10 раз параллельно. Например некий нагрузочный тест. Как сделать это и как по завершению теста завершить все скрипты одной командой?

О: Надо иметь некий родительский скрипт, который через «&» запустит дочерние. При этом надо не давать завершиться родительскому скрипту. В таком случае сделав kill -9 pid_родительского_скрипта завершатся и дочерние скрипты.

В+: А если родительский скрипт завершится? Кто станет родителем дочерних?

О+: Процессы не могут существовать без родительского. В таком случае их родителем станет init или процесс с PID 0.

В++: Как посмотреть какие процессы были запущены через «&»?

О++: Командой jobs или аналогами.


В: Как посмотреть дерево процессов?

О: Командой pstree или ptree, в зависимости от дистрибутива.

В+: А более развёрнуто?

О+: Например через ps auxwwf


Продолжение следует. Небольших вопросов осталось примерно на один пост. Последний вопрос самый объёмный и он потянет на целый пост.

Показать полностью
162

Системный администратор Linux. Вопросы

Собеседования подходят к завершению, кандидаты согласованы, офферы разосланы. А это значит, что настало время выполнить обещания и выложить вопросы к кандидатам.


Если кто пропустил, вот начало: Системный администратор Linux и продолжение: Продолжение поста «Системный администратор Linux»


В комментариях к предыдущим постам было высказано много мнений по поводу тематики и самих вопросов. Была и критика, и занудство, и здравые мысли. От себя могу сказать, что это не универсальный список вопросов для собеседования. Это то, с чем у нас приходится сталкиваться чаще всего, что надо понимать и без чего рост компетенций будет заметно усложнён. Часть вопросов просто для понимания кругозора кандидата.

Системный администратор Linux. Вопросы Linux, Windows, Сисадмин, Отдел кадров, Пригорело, Собеседование, Длиннопост

Так же и у нас: лучше долго выбирать наиболее подходящих под специфику и быстро догнать до нужного уровня, чем взять и обучить с нуля пусть даже очень грамотного новичка или не профильного специалиста.


Вопросы будут в порядке сложности. На многие вопросы я постараюсь давать два ответа. Первый - краткий и достаточный для того, что бы его зачесть. Второй ответ - более правильный или более развёрнутый, дающий кандидату преимущество перед остальными. Некоторые вопросы/ответы будут в форме диалога.


Готовы? Ну тогда поехали!


В: Как посмотреть версию ядра?

О: uname -a

В+: А если только версию?


О+: uname -r


В: Как узнать какие модули ядра загружены?

О: lsmod

В+: Как загрузить и выгрузить модуль?

О+: Загрузить командой modprobe, выгрузить ей же, но с ключом --remove, если модуль не используется.


В: Есть сервер с двумя интерфейсами. Один интерфейс смотрит в интернет, другой в локалку. На обоих адреса прописаны статикой. Как пользователей из локалки выпустить в интернет через этот сервер?

О: Маршрут по умолчанию должен быть назначен на интерфейс с интернетом, нужно поднять NAT через iptables и SNAT/DNAT или MASQUERADE, надо включить forward пакетов.

В+: Как именно это сделать?

О+: Для примера шлюз будет на RHEL-based дистрибутиве. В других дистрибутивах есть созвучные или аналогичные опции. В настройках интерфейса с локалкой надо прописать defroute=no, на интерфейсе с интернетом defroute=yes. Либо можно указать маршрут в файле route-название_интерфейса, который располагается рядом с файлом настроек интерфейса. Настройка NAT будет зависеть от того, фиксирован ли список клиентов в локалке или нет. Если фиксирован - настройка через SNAT, если не фиксирован - MASQUERADE. Так же, если к клиенту будут обращения из внешней сети, придётся использовать DNAT. Включить forward пакетов можно временно командой echo 1 > /proc/sys/net/ipv4/ip_forward или постоянно, прописав net.ipv4.ip_forward = 1 в файл /etc/sysctl.conf и загрузить их из файла командой sysctl -p.

О++: Можно ещё поднять прокси и выпустить через него. Например squid. При этом либо явно указав этот прокси у клиентов, либо прозрачно, через iptables и POSTROUTING.


[Дословный синтаксис команд не нужен. Главное, что кандидат понимает что именно и как он будет делать. Если кандидат расскажет ещё что такое этот ip_forward - это будет дополнительным плюсом.]


В: Есть сервер с двумя интерфейсами, к каждому из которых подключён отдельный интернет провайдер. Например первый 100 мегабит, второй 50. Можно ли как-то получить суммарный внешний канал в 150 мегабит?

О: Штатно - нельзя. Но можно поставить пакет iproute2, который позволяет сделать два маршрута по умолчанию, каждый из которых будет иметь свой вес. Например вес первого интерфейса сделать вес 2, а второго - 1. Тогда трафик будет пытаться направляться в соотношении 2 к 1 относительно интерфейсов. В идеальных условиях это даст суммарные 150 мегабит. В реальных - будет зависимость и «тяжелых» сессий, которые будут привязываться к одному конкретному интерфейсу.


В: Как посмотреть какой DNS использует система? У нас настроен DHCP и «в лоб» в настройках на клиенте ничего нет. Файл /etc/resolv.conf много где считается устаревшим и там может быть пусто.

О: Попробовать отрезольвить любой адрес. Например командами nslookup, host или dig. Они показывают какой DNS сервер был использован.

В+: А если у нас какая нибудь Ubuntu, которая из коробки за собой тянет dnsmasq? В таком случае эти команды будут говорить, что DNS сервером является 127.0.1.1 или 127.0.0.53. Как быть?

О+: Если есть dnsmasq, значит у него есть конфиги и логи, в которых можно посмотреть что он использует. В крайнем случае можно использовать tcpdump и посмотреть какие есть исходящие подключения на 53 порт.


В: Как посмотреть таблицу маршрутизации на любой системе?

О: Это можно сделать командами route -n или ip r

В+: А на любой системе одной и той же командой?

О+: Команда netstat -rn работает везде, на Linux, Windows, MacOS, Solaris. Даже на Android. В некоторых системах это единственный вариант посмотреть маршруты.


В: Есть LVM. На одной VG есть 2 LV. Один смонтирован в корень системы, другой в /home. При создании разделов ошиблись и создали корень слишком маленький, а home слишком большой. Можно ли как-то перекинуть место из одного раздела в другой? Оба раздела содержат данные, которые нельзя удалять. В разделе home есть достаточно свободного места. Систему нельзя перезагружать.

О: Уменьшить можно, если файловая система позволяет уменьшать свой размер. Например ext4 позволяет это сделать, а xfs - нет. Увеличивать разделы можно «на горячую». Для уменьшения надо размонтировать /home, уменьшить файловую систему, уменьшить LV с этим разделом, смонтировать /home, увеличить LV раздела с корнем, увеличить файловую систему. Командой lvextend с ключом -r последние два действия можно совместить.

В+: А есть там xfs?

О+: Тогда придётся использовать временный диск. Скопировать на него данные из /home, пересоздать раздел меньшего размера, скопировать данные обратно. Можно командами pvs или vgs посмотреть свободное место на LVM. Возможно не всё пространство было размечено и его можно будет использовать вместо временного диска.


В: Как определить тип файловой системы, в которую отформатирован LV раздел в LVM? Команда fdisk -l показывает, что код раздела 83 или 8E, т.е. раздел Linux или LVM раздел.

О: Если раздел смонтирован можно командами df -T, mount или findmnt

В+: А если не смонтирован?

О+: Команда lsblk с ключом -f показывает тип файловой системы и метки, например для oracleasm дисков.


В: Как получить сводку о всём железе?

О: Командами группы ls. Например lspci, lsusb и т.д. Либо cat /proc/cpuinfo, cat /proc/meminfo и т.д.

В+: А более развёрнуто? Например с серийными номерами памяти и количеством плашек памяти?

О+: Можно через smbios командой dmidecode. Либо через ipmitool подключиться к менеджменту, если он есть, и через его shell достать данные.


В: Как обновить все пакеты, кроме одного? Например кроме ядра.

О: В RHEL-based командой yum update --exclude kernel*. В других дистрибутивах должен быть похожий ключ, который можно посмотреть в man’е к пакетному менеджеру.

В+: А если постоянно исключить из обновления?

О+: Можно использовать yum versionlock kernel*. В других дистрибутивах так же можно поискать в man’е по словам lock, hold или freeze.


Для начала, думаю, достаточно. Продолжение будет в следующих постах. Постараюсь сильно с ними не затягивать.

Показать полностью
75

Продолжение поста «Системный администратор Linux» 

Не ожидал, что предыдущий пост даст такой фидбек. Когда утром увидел сообщения в телеграмме от нескольких человек - проскочила мысль: «Вот они, желающие поработать!». Но нет, не всё так просто.

Продолжение поста «Системный администратор Linux» Linux, Windows, Сисадмин, Отдел кадров, Пригорело, Длиннопост

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


№1: «Я не хочу у Вас работать, дайте список вопросов» или «Я хочу пройти тест для себя».

Подробный список вопросов и ответов на них я опубликую после закрытия вакансий. С учётом объёма - это будет большой пост, а может и два. Не хотелось бы, что бы кандидаты приходили на собеседование заучив вопросы и ответы. Это затянет и без того долгое собеседование и в конечном итоге ничего не даст. Для «затравки» могу дать один вопрос/ответ из начала списка, который уже прозвучал в предыдущем посту:


- В: Как назначить IP-адрес на интерфейс? [Разумеется речь идёт о Linux и позволяет понять насколько большой опыт у кандидата]

- О: Назначить адрес можно несколькими способами. Всё зависит и дистрибутива, его версии и того, на постоянно надо назначить адрес или временно. Временно можно командами ip или ifconfig. Например ip addr add 10.0.0.1/24 dev eno1. Команда ifconfig используется для более старых дистрибутивов, команда ip - для более новых, т.к. в старых может не быть ip, а в новых не быть ifconfig. [При этом конкретный синтаксис не так важен. Главное, что кандидат знает что делать и понимает направление поиска параметров в случае чего]. Далее, если надо назначить адрес постоянно, можно это сделать при установке системы, либо после. Вариант при установке самый простой и не интересный. После установки это можно сделать специальными утилитами, если при установке системы был установлен Network Manager, такими как nmtui, nmcli или system-config-network-manager для старых версий RedHat-подобных дистрибутивов. Настройка через эти утилиты сводится к заполнению данных в предложенные формы или через командную строку в случае nmcli. Далее, настройка через конфигурационные файлы. Для начала надо понять какие у нас есть интерфейсы. Их можно посмотреть командами ip a, ifconfig -all или cat /proc/net/dev. В RHEL-based дистрибутивах необходимо создать файл /etc/sysconfig/network-scripts/ifcfg-названия_интерфейса, в котором надо указать настройки сети - адрес, маску, шлюз, dns и т.д. В Debian-based дистрибутивах интерфейсы настраиваются в одном файле - /etc/network/interfaces, в котором указывается интерфейс и его настройки. В более свежих дистрибутивах перешли на NetPlan, его настройки хранятся в /etc/netplan/ и представляют из себя структуры на Yaml - т.е. файлы форматированы отступами, минусами и двоеточиями. [Дословный синтаксис опять же не важен. Главное, что кандидат знает что это и как оно выглядит]. После сохранения конфигов необходимо перезапустить сеть или просто поднять интерфейс. Перезапуск через service или systemctl с указанием network, networking или NetworkManager в зависимости от версии дистрибутива. Поднять интерфейс можно командами ifup, ip link up … или ifconfig, опять же в зависимости от дистрибутива.


Это только один простой вопрос. По мере роста сложности - растёт о объём ответа.


№2: «Можно ли работать удалённо?»

Даже подготовленный специалист первое время будет обучаться, т.к. специфика не типовая для небольших и средних организаций. Удалённо пройти такое обучение конечно можно, но это будет долго и не эффективно. Готовых специалистов под наши задачи я пока не встречал. Часть оборудования предстоит «потрогать», часть - просто увидеть как с ним работают другие. Опять же, работа в коллективе, а не самостоятельно. Тысячи виртуальных машин, сотни хостов гипервизоров, схд разных мастей middle и hi-end классов, петабайты данных, san коммутаторы, большие сервера с террабайтами озу и тысячами потоков процессора - это то, с чем предстоит работать. К сожалению эффективно удалённо это делать не получится, так что нет, только локально.


№3: «Какой уровень знаний/требований?»

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


№4: «Рассматриваете ли кандидатов из других городов?»

Как говорил выше - только локальная работа. Есть желание перебраться в Ростов? Придётся делать это самостоятельно.


№5: «Я классный Python/Perl/PHP-программист, но мало опыта в линуксах. Возьмёте?»

Нет. Нужен именно линуксовый админ. Если он может заскриптовать свои рутинные действия на каком-либо языке - это плюс. Если он может написать для себя и коллег полезную утилиту или ПО - это большой плюс и приводит к премиям.


№6: «Хочу у Вас работать. Вот резюме.»

Самый редкий тип запросов. Резюме отправляются руководству и оно решает, подходит кандидат или нет. Соответственно кого позвали HR на собеседования - будем общаться, кого не позвали - Ваш уровень или профиль не подошел. Но не стоит унывать, рынок труда большой и каждый найдёт свою работу мечты, главное не унывать и стремиться к новому.


На этом пока всё. Всем адекватных работников и работодателей)

Показать полностью
290

Системный администратор Linux

К сожалению я не успел в очередную волну историй про собеседования, но всё же хочется поделиться своим опытом со стороны работадателей. Как часто бывает в больших организациях, собеседование проходит в несколько этапов. Однако самый первый и самый важный этап - техническое собеседование. Надо выяснить уровень знаний претендента, умение находить решения не типовых задач и провести первичную оценку адекватности, как бы смешно это не звучало. Так получилось, что результате реорганизации в моём отделе образовалось некоторое количество вакансий. И это именно системные администраторы. И именно Linux.


Для начала немного теории. Системный администратор, это человек, в зоне ответственности которого именно операционная система. Чаще всего это серверные версии операционок. Это и Windows, и Linux, и всякая экзотика типа Solaris, HP-UX или AIX. А вот заправка картриджей, решение вопросов «У меня Excel не работает» или «У меня почта отправляется» - это хелпдеск, а не администрирование системы. К сожалению, в маленьких фирмах эти две должности зачастую объединены в одну. Отсюда и стереотипы, что сисадмин это мастер на все руки. Он и утюг посмотрит, и ноут починит, и 1С на сервере обновит. А если из клавиатуры вытрясет все крошки - может решить мировую проблему голода.


Так же стоит сказать, что в больших организациях сисадмины специализируются зачастую только на одном направлении. Обычно таких направлений два. Это семейство ОС Windows и семейство ОС Linux/Unix. Внутри каждого направления бывает дополнительные разделения. Например это виртуализация на какой-либо из платформ, либо это высоконагруженные системы обработки данных, либо сервера под базы данных и т.д. Хороший администратор отлично знает своё направление и понимает принципы работы смежных.


Кандидаты бывают разные, но в 95% случаев резюме мало соответствует реальности. Чаще всего получается так:

- Я ставил на ноут Ubuntu и значит могу написать «Экспертные знание в области Linux».

- В наследство от предыдущего админа достался шлюз на FreeBSD - как минимум надо перечислить всё, что там стоит и что лично не настраивал.

- Написал Hello world на Python/Lua/etc - опыт программирования не меньше Middle в резюме.


И таких примеров масса. Где-то когда-то слышал или кто-то на работе использовал - значит надо указать в резюме.

Системный администратор Linux Linux, Windows, Сисадмин, Отдел кадров, Пригорело, Длиннопост

Для оценки у меня есть список 40 вопросов разного уровня. Чем дальше по списку человек заходит - тем больше вероятность, что он будет у нас работать. Уровень от «как посмотреть версию ядра» или «как можно назначить ip адрес на интерфейс» до «принципы построения высоконадёжных кластеров виртуализации» и «преимущества Fibre Channel перед iSCSI». За пару лет я провёл больше сотни собеседований и на все вопросы никто ещё не ответил, но были люди, которые знали ответы на многие из них, а чего не знали - с подсказками понимали. Всего их было четверо и все в настоящий момент работают со мной.


В зависимости от уровня знаний и стремлений кандидата собеседование длится от 20 секунд до 3 часов. При этом мы не тираны и не маринуем 3 часа «без вынимачки». Мы и кофе напоим и печеньками угостим. Обычно две трети времени занимают наши вопросы и треть времени мы отвечаем на вопросы кандидата и рассказываем об организации.


Ну и на последок «успешные» примеры:


Успеть за 20 секунд.

- Как у Вас со знаниями Linux?

- Никак.

- До свидания.

Кандидат откликнулся на вакансию Старший системный администратор Linux.


Не интересно.

- У Вас в резюме опыт работы с Centos, Gentoo, FreeBSD. На сколько хорошо Вы с ними знакомы?

- Никак не знаком. Мне они не интересны.

- Зачем откликались на вакансию линукс-админа?

- …

- Всего доброго.

Зачем было тратить своё и чужое время - не понятно.


Уровень английского - made in velikobritania.

- Как исключить из обновления пакет?

- …

- Ну какой ключик надо использовать?

- …

- Хорошо, Вы набрали man yum, нажали слэш для поиска и что будете искать? Там же много всего. Какое слово?

- …

- У Вас указано уверенное владение английским. Есть слово include, включить. А как будет наоборот, исключить?

- Uninclude?

- [тихий мат про себя]

Самое страшное, что это не единичных случай. Дважды только за прошлую неделю.


Что-то где-то слышал…

- У Вас в резюме есть опыт работы с git. Как сделать коммит в текущую ветку?

- …

- Надо набрать git и что? Какое слово дальше?

- …

- Зачем писать то, чего не знаете?

- …

Копипаста чужих резюме - зло.


Провал памяти.

- У Вас указан опыт разработки на Python. Какие есть встроенные типы структур данных?

- …

- Есть list, список, есть dict, словарь. А третий тип?

- Я не помню названия.

- Хорошо, list это прямые скобки, dict - фигурные, последний тип tuple - кортеж. Какие у него скобки?

- …

- Что за проект Вы писали на Python?

- Не помню.

- Ну что он делал? Для чего?

- Это давно было. Не могу сказать.

Знание Python это плюс в резюме только если оно действительно есть.


Это то немногое, что вспомнилось только за последние пару недель. Часто человека пытаешься подвести к ответу, доходит чуть ли не до такого: каким таким top можно посмотреть какую такую нагрузку на какой такой процессор?

Ожидание: «Нагрузку на процессор можно посмотреть командой top».

Реальность: […белый шум в глазах…]


Данный текст побудило написать профессиональное подгорание.

Системный администратор Linux Linux, Windows, Сисадмин, Отдел кадров, Пригорело, Длиннопост

P.S: Если ты понял почти всё из сказанного, тебя это повеселило, ты живешь в Ростове-на-Дону и хочешь работать по специальности из заголовка за ЗП выше средней по рынку - милости прошу в телеграмм. Логин такой-же, как и тут. Да простят меня модераторы и не сочтут рекламой.

Показать полностью 2
-2

Новые фишки Samsung DEX

Приветствую в очередной раз всех моих подписчиков. Я, думаю, многие в курсе что такое Samsung DEX. Ну а для тех, кто не в курсе - краткий ликбез: DEX это режим работы флагманов от Samsung (телефонов и планшетов), в котором Android работает в режиме рабочего стола. Многооконность, многозадачность и прочие плюшки. Фича позиционируется как мобильное рабочее место. Начал работать на работе, продолжил дома. В целом весьма удобно для офисного софта или удалённого подключения. Но у данной технологии было некоторое количество недостатков, которые постепенно эвалюционировали и исправляли.


Начало: Необходимо приобретения специального, лицензированного Samsung, переходника - DEX Station. На момент релиза технологии в Samsung Galaxy S8/S8+ данный переходник стоил 9990 рублей, что весьма не гуманно с учётом того, что надо иметь либо два таких переходника, либо один с собой таскать. Собственно это либо дорого, либо не удобно. Девайс выглядит как стакан-подставка для телефона, к которому подключаются монитор, мышь, клавиатура и обязательно зарядка с quick charge, которая питает всё это счастье.

Новые фишки Samsung DEX Android, Samsung, Рабочее место, Дорого-Богато, Длиннопост

Продолжение: При релизе Samsung Galaxy S9/S9+ был выпущен попутно Dex Pad. Тоже самое, что и Dex Station, но телефон распологается лёжа и может использоваться как трекпад и как следствие минус одно устройство. Стоимость такого устройства 6990. Уже лучше, но всё же дорого.

Новые фишки Samsung DEX Android, Samsung, Рабочее место, Дорого-Богато, Длиннопост

Развитие: При релизе Andoid 9 для флагманов от Samsung S8/S8+ и новее было заявлено, что Dex более не требует оригинального переходника и можно будет использовать любые, в том числе и китайские. Ценник за такой переходник порядка 500 рублей. Уже лучше, но не идеально.

Новые фишки Samsung DEX Android, Samsung, Рабочее место, Дорого-Богато, Длиннопост

Совершенствование: Технология Samsung DEX может работать и без переходников, но только на планшетах. Начиная с Samsung Galaxy Tab S5e и выше. К планшету можно подключить клавиатуру и мышь и переключиться в режим работы "почти как ноутбук". Проводов меньше, удобство и мобильность выше. Разве что планшет в карман не положишь.


Финал: Начиная с Samsung Galaxy Note 10/10+ работа в Dex режиме возможна без каких-либо переходников. Всё, что потребуется - это компьютер на Windows 7/10 или MacOS, кабель USB3 - USB-Type-C (тот, что в комплекте отлично подойдёт), а так же фирменное приложение от Samsung - Samsung Dex, скачать которое можно с официального сайта - samsungdex.com


После установки приложения остаётся следовать простым инструкциям:

Новые фишки Samsung DEX Android, Samsung, Рабочее место, Дорого-Богато, Длиннопост

Ну а вот так, собственно, выглядит рабочий стол Samsung Dex:

Новые фишки Samsung DEX Android, Samsung, Рабочее место, Дорого-Богато, Длиннопост

Все приложения делятся на три типа:

- Работают в окне фиксированного размера

- Работают только в полноэкранном режиме

- Позволяют менять размер окна. Таких приложений со временем всё больше.


Лично я думаю, что продолжением станет полный отказ от проводов и создание локальной инфраструктуры для работы в ней. Подобие умного дома. Или, скорее, умного рабочего места.


Да, я понимаю, что флагманы от Samsung довольно дорого стоят, но в качестве бизнес решения лично я аналогов такого плана не вижу. Разве что аналогичная попытка от Microsoft, которая провалилась.

Показать полностью 4
1365

Трансляция экрана телефона на Android на компьютер на Windows 10.

Мало кто знает, что в Windows 10 "из коробки" есть трансляции экрана. Это удобно, если в домашней сети есть Chromecast приставка или телевизор, скорее всего от Samsung, с поддержкой Miracast. Обе эти технологии позволяют видеть копию происходящего на экране телефона/планшета/ноутбука на большом внешнем экране. Это удобно, например для показа фоток и/или видео в гостях не на экране смартфона, а на большом экране. Разница между Chromecast и Miracast в том, что первый может работать в фоне. Например через Chromecast можно транслировать фильм на телевизор и при этом листать ленту на том же пикабу. Miracast работает подругому - что на экране девайса, то и транслируется.


Однако в Windows 10 появилась обратная функция. Система может работать как Chromecast/Miracast устройство, т.е. принимать трансляции. Всё зависит от типа видеокарты. Например, мой старенький ноут 2012 года с Nvidia 740M, умеет принимать трансляции, а вот более старый компьютер с Nvidia 9600GT - уже нет. Но это только половина дела. Поддержка трансляции экрана есть в Android четвёртой версии и выше. По крайней мере на самом старом моём девайсе с Android 4.2.2 эта функция есть. Значит можно заставить практически любой, не очень древний, Android-смартфон транслировать свой экран на любой комп/ноут средней свежести на Windows 10. Главное условие - устройства должны находиться в одной сети и должны видеть друг друга. Например, и ноут и телефон должны быть подключены к одной и той же Wi-Fi сети.


Чтож, приступим. Кликаем на иконку уведомлений или нажимаем win+A.

Трансляция экрана телефона на Android на компьютер на Windows 10. Android, Windows, Windows 10, How to, Инструкция, Chromecast, Miracast, Длиннопост

Выбираем "Соединиться" на открывшейся вкладке.

Трансляция экрана телефона на Android на компьютер на Windows 10. Android, Windows, Windows 10, How to, Инструкция, Chromecast, Miracast, Длиннопост

Выбираем "Проецирование на этот компьютер" в следующем диалоге.

Трансляция экрана телефона на Android на компьютер на Windows 10. Android, Windows, Windows 10, How to, Инструкция, Chromecast, Miracast, Длиннопост

Откроется меню настройки проецирования. Лично я рекомендую настроить как показано на скриншоте ниже.

Трансляция экрана телефона на Android на компьютер на Windows 10. Android, Windows, Windows 10, How to, Инструкция, Chromecast, Miracast, Длиннопост

Более подробно о выбранных опциях по порядку:

- Когда будет активен режим приёма трансляций. Всегда, никогда, только в защищённых сетях. Последний вариант исключает публичные точки Wi-Fi без пароля.

- Пин-код будет запрашиваться каждый раз при подключении. Можно выбрать "только первый раз", после которого устройства смогут транслировать экран только один раз запросив пин-код.

- Галочка наличия пин-кода.

- Разрешать трансляции только есть ноут работает от сети. На компьютерах этой опции нет. Удобно включить для экономии батареи.


С компьютерной частью разобрались. Приступаем к телефонной. Необходимо найти меню подключения к беспроводному дисплею. В разных версиях android и разных сборках оно может называться по разному. Варианты: WiDi, Wi-Fi Display, Play to, Translate, либо как на скрине ниже - Smart View. Иконка - обычно нечто похожее на телевизор и значёк Wi-Fi или стрелка. Обычно прячется в меню действий, которое открывается свайпом двумя пальцами от верха экрана вниз. Однако бывает такое, что прячется в настройках телефона. Или как отдельный пункт меню, или как опция в настройках Wi-Fi.

Трансляция экрана телефона на Android на компьютер на Windows 10. Android, Windows, Windows 10, How to, Инструкция, Chromecast, Miracast, Длиннопост

При выборе начнётся сканирование сети на предмет наличия беспроводных экранов. При этом смартфон должен найти ноут/комп, как показано ниже:

Трансляция экрана телефона на Android на компьютер на Windows 10. Android, Windows, Windows 10, How to, Инструкция, Chromecast, Miracast, Длиннопост

Выбираем нужное устройство. Откроется диалог на ввод пин-кода. На смарте это будет выглядеть примерно так:

Трансляция экрана телефона на Android на компьютер на Windows 10. Android, Windows, Windows 10, How to, Инструкция, Chromecast, Miracast, Длиннопост

Одновременно с этим, на экране компьютера должно показаться уведомление, что "Телефон с таким-то именем хочет начать проецирование".

Трансляция экрана телефона на Android на компьютер на Windows 10. Android, Windows, Windows 10, How to, Инструкция, Chromecast, Miracast, Длиннопост

Принимаем запрос со стороны компьютера. Откроется окно с пин-кодом на весь экран.

Трансляция экрана телефона на Android на компьютер на Windows 10. Android, Windows, Windows 10, How to, Инструкция, Chromecast, Miracast, Длиннопост

Вводим пин-код на телефоне, ждём несколько секунд и наблюдаем копию экрана смартфона на компьютере.

Трансляция экрана телефона на Android на компьютер на Windows 10. Android, Windows, Windows 10, How to, Инструкция, Chromecast, Miracast, Длиннопост

К сожалению данный метод подходит только для трансляции видео или фото. Ну или для показа презентаций. Дело в том, что картинка запаздывает на 0.5 секунды. Звуковая дорожка, при трансляции видео, чуть сдвигается по времени. В итоге видео воспроизводится корректно. А вот в игры уже не поиграть. В тех же шуттерах/гонках, для которых смартфон можно использовать как контроллер, задержка в полсекунды весьма критична.


Прошу подписчиков не пинать за редкие посты - пишу по мере появления чего то интересного.

Показать полностью 9
4618

Небольшое расследование на тему вирусов для Android

Астрологи объявили неделю вирусов, да и просто так совпало, что мне пришел очередной спам такого содержания:

Небольшое расследование на тему вирусов для Android Android, Вирус, Botnet, Скандалы интриги расследования, Длиннопост

Разумеется при переходе по ссылке показывается нечто типа "Ваш флеш не фреш! Срочно обновите, а то не покажем MMS". MMS. В 2017 году. Ну да ладно, открываем ссылочку с компа, автоматом закачивается файлик mms.apk. Открывать с телефона мы его конечно же не будем [Дружко.jpg].

Наверное многие знают, что apk-файл - это простой zip архив, который можно распаковать и посмотреть файлики внутри. Ну чтож, для начала сделаем это. Внутри много всего, в том числе есть картиночки.

Небольшое расследование на тему вирусов для Android Android, Вирус, Botnet, Скандалы интриги расследования, Длиннопост

Судя по картинкам эта "mms'ка" что-то делает под видом маркета с картами. Возможно даже показывает сиськи, т.к. они имеются, правда в разрешении 48х48 пикселей. Дальнейший просмотр указывает на то, что после установки приложение говорит "Ошибка установки 24" и якобы больше ничего. Но это не так. Внутри apk есть скомпилированный под dalvik файл -  classes.dex, в котором должно быть самое интересное. Гуглим "dex decompiler online", первому же сайту скармливаем apk и получаем архив с исходным кодом. Разве что без коментариев.

Небольшое расследование на тему вирусов для Android Android, Вирус, Botnet, Скандалы интриги расследования, Длиннопост

И таки да, оно под видом Play Market запрашивает данные карты:

Небольшое расследование на тему вирусов для Android Android, Вирус, Botnet, Скандалы интриги расследования, Длиннопост

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

Небольшое расследование на тему вирусов для Android Android, Вирус, Botnet, Скандалы интриги расследования, Длиннопост

А вот и управляющий сервер:

Небольшое расследование на тему вирусов для Android Android, Вирус, Botnet, Скандалы интриги расследования, Длиннопост

Ну а тут видно как "бот" регистрируется на управляющем сайте:

Небольшое расследование на тему вирусов для Android Android, Вирус, Botnet, Скандалы интриги расследования, Длиннопост

Внутри оказывается ещё довольно много интересного. Особенно интересно, что данный вирус/бот общается на русском с управляющим сервером. Внутри сообщения все на русском и расчитан он ра русскоязычных пользователей. Вообщем суть преступления ясна. Начинаем наказание. Вооружившись whois-сервисом смотрим кто владелец подсети откуда качается apk-файл и куда писать абузу?

Небольшое расследование на тему вирусов для Android Android, Вирус, Botnet, Скандалы интриги расследования, Длиннопост

Аналогичным способом смотрим владельцев управляющего сервера:

Небольшое расследование на тему вирусов для Android Android, Вирус, Botnet, Скандалы интриги расследования, Длиннопост

Пишем письма на оба ящика. Описываем ситуацию, прикладываем скриншоты и ждём...

За пару часов оба хостера отписались "Спасибо за содействие, сайт/учётка заблокированы".


P.S: Оба хостера из Питера, что наводит на мысли о том, что автор вируса/бота от туда же. Ну или это просто совпадение.

Показать полностью 7
13

Мини история о покупках в магните.

Предыстория: Я выгляжу очень молодо. Особенно если побрился и подстригся. Знакомые на вскидку дают в среднем на 10 лет меньше моего реального возраста. При этом мне не 50 или 60 лет, а всего лишь 35.

История: Обед. Покупаю в ближайшем магните бичпакет и прочие вкусняшки. Попутно вспоминаю, что по дороге в магазин выкурил последнюю сигарету и решаю пополнить запасы яда. На кассе, после того, как "пропикали" основные покупки, прошу кассира (К):
Я: Можно ещё пачку %название_бренда%, синий, обычный?
К [щурится, как дедушка Ленин]: Не могу понять сколько Вам лет. Можете показать паспорт?
Я: Разумеется. [показываю паспорт]
К: Ой, извините, Вы молодо выглядите, не смотря на то, что курите.
Я: Ну так потому молодо и выгляжу, что курю..
К: Это почему?
Я: Ну Вы же знаете, что курение сокращает жизнь в двое?
К: Что то такое слышала.
Я: Вот по-этому и выгляжу в свои 35 на 17..
Кассир посмеялась, я расплатился и мы оба остались с хорошим настроением..

P.S: Вообще курение это яд. Я курил 18 лет, бросил и не жалею. Чего и Вам желаю.
Отличная работа, все прочитано!