ОС семейства Unix
Unix

Unix (21)

Вы заходите на сервер по SSH. Вам нужно понять, почему он «тормозит». Вы вводите top. Цифры мелькают, проценты скачут, но общей картины нет. Вы открываете второе окно, запускаете iotop, чтобы проверить диск. Третье — htop для памяти. Четвёртое — nethogs для сети. Через минуту у вас открыто четыре терминала, вы теряетесь в потоке данных и тратите время на переключение контекста. Знакомая ситуация?

Переезд на отечественную операционную систему часто воспринимается как приговор. Пользователи жалуются на отсутствие привычных кнопок, администраторы — на несовместимость драйверов и программ. Однако Астра Линукс (особенно версии «Смоленск» и «Орёл») построена на базе Debian, что даёт доступ к огромной базе знаний и инструментов. Проблема не в самой системе, а в попытке работать с ней так же, как с Windows. Если перестроить подход и использовать правильные инструменты, рутина исчезает, а стабильность вырастает. Разберём пять конкретных лайфхаков, которые работают в актуальных версиях Астры, экономят время и решают реальные проблемы миграции. Каждый пункт проверен на практике в корпоративной среде.

На прошлой неделе я столкнулся с проблемой, которая поставила в тупик даже опытных коллег. На свежеустановленной Астра Linux 1.7 (на базе Debian 11) перестали обновляться пакеты через apt update. Система выдавала ошибку: "Failed to fetch https://download.astralinux.ru/repo/1.7_x86-64/repository/updates/Release 404 Not Found".

Последнее обновление чуть не стоило мне работы. Я выполнил стандартную команду sudo apt update && sudo apt upgrade -y, перезагрузил сервер и... он не поднялся. BIOS прошел, но система не загружалась дальше initramfs. На экране мигало: "ALERT! /dev/sda1 does not exist. Dropping to shell!"

Холодный пот покатился по спине. Это был продакшн-сервер с сайтом, который приносил компании деньги каждый час простоя. Я подключился через KVM, оказался в emergency shell initramfs. Стандартные команды не работали, файловая система не смонтирована.

Первым делом проверил доступные диски: ls /dev/sd*. Вместо ожидаемого /dev/sda там был /dev/nvme0n1. Ага! Проблема в том, что после обновления initramfs изменил способ именования дисков. Раньше был SATA-диск как /dev/sda, а теперь система видит NVMe-диск как /dev/nvme0n1.

Представьте: вы заходите на сервер, видите нужный файл в директории, пытаетесь его открыть (cat config.php), а система отвечает "Permission denied". Файл существует, вы его видите через ls, но прочитать не можете. Это классическая проблема прав доступа, с которой сталкивается каждый начинающий сисадмин.

Недавно такой случай был у меня с коллегой-новичком. Он пытался прочитать логи веб-сервера в /var/log/nginx/access.log, но получал ошибку доступа. Он пытался sudo cat, но это не помогало — sudo тоже выдавал "Permission denied". Ситуация казалась безнадежной.

Помните ваш первый день за Linux-сервером? У меня это было пять лет назад. Мне дали доступ к тестовому серверу с фразой "настрой там веб-сервер для проекта". Я знал Windows как свои пять пальцев, но Linux для меня был темной комнатой с выключенным светом. 

Первое, что я сделал — попытался кликнуть правой кнопкой мыши. Сервер, конечно, не отреагировал. Тогда я открыл терминал и напечатал "help". Система ответила "command not found". Я начал паниковать. Потом случайно нажал Tab дважды и увидел список команд. Это был мой первый прорыв. Самая частая проблема новичков — боязнь сломать что-то. Я тоже боялся. Поэтому мой первый совет: всегда работайте на тестовом сервере или в виртуальной машине. Я установил VirtualBox на домашний компьютер и там учился основам. Это спасло мне от многих ошибок. 

Автоматизируй это: на чём пишет скрипты умный сисадмин в 2025?

Давайте без холиваров. Я тоже когда-то считал, что Bash — это святое, а PowerShell — выдумка дьявола. Потом жизнь расставила всё по местам. Выбор языка для автоматизации — не вопрос веры, а вопрос задачи и среды.

Представьте, что у вас в ящике с инструментами лежат: универсальная отвертка (Bash), швейцарский армейский нож (Python) и специализированный набор для конкретного бренда авто (PowerShell). Бессмысленно ремонтировать ВАЗ ножом, верно?

ZABBIX — свободная система мониторинга и отслеживания статусов разнообразных сервисов компьютерной сети, серверов и сетевого оборудования, написанная Алексеем Владышевым. Для хранения данных используется MySQL, PostgreSQL, SQLite или Oracle. Веб-интерфейс написан на PHP. ZABBIX поддерживает несколько видов мониторинга: Simple checks — может проверять доступность и реакцию стандартных сервисов, таких как SMTP или HTTP, без установки какого-либо программного обеспечения на наблюдаемом хосте. ZABBIX agent — может быть установлен на UNIX-подобных или Windows-хостах для получения данных о нагрузке процессора, использования сети, дисковом пространстве и т. д. External check — выполнение внешних программ. ZABBIX также поддерживает мониторинг через SNMP.

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

Итак, нам необходим сервер без заморочек с лицензиями, конечно взор падает на популярные дистрибутивы семейства Линукс. Я остановился на Ubuntu 14.04.4 LTS Server. начинаем ставить и коротко пояснять ход событий.

Воскресенье, 19 июля 2015 13:45

Немного интересных команд UNIX

Автор

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

Сочетания клавиш
Shift + PageUp/PageDown - листает терминал по страницам
Ctrl + P - предыдущая коммнда (как курсор вверх)
Ctrl + N - следующая команда (как курсор вниз)
Alt + F - прыжок курсора к следующему слову
Alt + B - прыжок курсора к предыдущему слову
Последние четыре сочетания - это стандартные комбинации Emacs. Большинство сочетаний этого редактора также работает в терминале

Интересные команды
^X^Y - заменяет первое вхождение X в предыдущей команде на Y и выполняет её. Пример:

# mount /mnt/dvd
# ^mount^cd
результат: cd /mnt/dvd

!! - повторное выполнение предыдущей команды

Оригинальное использование стандартных команд
cat video.avi > copy.avi - копирует любой файл (даже не текстовый)
mv file1 file2 - переименовывает файл file1 в file2 (изначально команда создана для перемещения файлов)

В коментариях к статье эту тему можно продолжить, думаем всем будет инетересно.

Страница 1 из 2