Системный администратор
Відкрити в Telegram
Канал для системных администраторов. Linux, Windows, Active Directory, GPO, PowerShell. Виртуализация Hyper-V, VMWare. Облака Azure, AWS. По всем вопросам @evgenycarter
Показати більше2 097
Підписники
-924 години
-227 днів
-14530 день
Архів дописів
Cамые нужные команд SSH
Запускай команды быстро
Чтобы выполнить всего одну удаленную команду, совсем не обязательно подключаться к SSH, вводить команду, а затем отключаться. Можно сделать это сразу. Например, так можно посмотреть заполненность ФС удаленной машины:
$ ssh user@host df -h
А так — перезагрузить ее:
$ ssh user@host sudo reboot
Составляй списки команд и запускай их разом
Если у тебя есть целый список команд, которые следует выполнить, их можно записать в файл и скормить этот файл SSH:
$ ssh user@host "`cat file.txt`"
Редактируй удаленные файлы локальным редактором
Чтобы отредактировать файл на удаленной машине, не требуется заходить на нее и использовать консольный редактор. На самом деле файл можно открыть в твоем любимом текстовом редакторе на локальной машине (gvim заменяем на свой редактор):
$ gvim scp://user@host//путь/к/файлу
Копируй содержимое удаленного файла в буфер обмена
Если необходимо скопировать содержимое удаленного файла или вывод команды в буфер обмена, не обязательно выводить его на экран или открывать в текстовом редакторе и копировать вручную. Можно использовать следующую команду:
$ ssh user@host cat /путь/к/файлу | xclip
А так можно скопировать вывод команды:
$ ssh user@host uname -a | xclip
Сравнивай удаленный и локальный файл без копирования
Похожий прием можно использовать для сравнения двух файлов:
$ ssh user@host cat /путь/к/удаленному/файлу | diff /путь/к/лoкальному/файлу -
Работай с удаленными файлами с помощью локального файлового менеджера
Не всегда удобно работать с большим количеством файлов с помощью консольных команд или mc, запущенного на удаленной машине. Но всегда можно подключить любой каталог удаленной машины как сетевой диск. Для этого достаточно установить sshfs:
$ sudo apt-get install sshfs
Создать каталог для подключения «сетевого диска»:
$ mkdir remote_files
И подключить его:
$ sshfs user@host:/home/user ~/remote_files/
Теперь все файлы удаленного каталога /home/user будут видны в каталоге ~/remote_files/ и с ними можно работать, как с обычными.
Копируй ключи быстро
Хоть и копирование публичного ключа на удаленный сервер — задача простая, но она требует выполнения нескольких действий вручную. Если тебя это напpягает, скопировать ключ можно в автоматическом режиме:
$ ssh-copy-id user@host
При этом не обязательно копировать основной ключ, с помощью флага -i можно указать любой другой:
$ ssh-copy-id -i ~/my_key.pub user@host
Создай постоянное соединение с машиной
Если в течение дня ты часто подключаешься к одной машине, в том числе на несколько минут или секунд (чтобы просто запустить одну команду, например), есть смысл создать с ней постоянное соединение. Твой комп будет держать соединение открытым и использовать его для каждого подключения к машине. Это намного быстрее и экономичнее с точки зрения трафика и нагрузки на процессор.
Добавь следующие строки в ~/.ssh/config:
Host host
ControlPath ~/.ssh/master-%r@%h:%p
ControlMaster no
А затем создай соединение:
$ ssh -MNf user@host
👉 @i_linuxПодборка из 4 альтернативых SSH клиентов
1. Mosh
Mosh - это замена интерактивных терминалов SSH. Он более надежен и отзывчив, особенно при работе через Wi-Fi, сотовую связь и на дальних расстояниях.
Mosh - это свободное программное обеспечение, доступное для GNU/Linux, BSD, macOS, Solaris, Android, Chrome и iOS.
2. Teleport
Teleport с открытым исходным кодом был разработан для обеспечения доступа к необходимой инфраструктуре без замедления работы. С помощью одного инструмента инженеры получают унифицированный доступ к серверам Linux и Windows, кластерам Kubernetes, базам данных и приложениям DevOps, таким как AWS Management Console, CI/CD, контроль версий и панели мониторинга во всех средах.
3. Eternal Terminal
Удаленный терминал для занятых и нетерпеливых
Eternal Terminal (ET) - это удаленная оболочка, которая автоматически переподключается, не прерывая сеанса.
4. tmux
tmux - это терминальный мультиплексор: он позволяет создавать несколько терминалов, получать к ним доступ и управлять ими с одного экрана. tmux может работать в фоновом режиме.
Работает на OpenBSD, FreeBSD, NetBSD, Linux, macOS и Solaris.
👉 @i_linux
Уровни «RAID» 0, 1, 2, 3, 4, 5, 6, 7 и что они означают
Главный основополагающий принцип работы «RAID» заключается в размещении пользовательских данных на нескольких дисках. Данный подход позволяет операциям ввода-вывода («I / O»), напрямую связанными с передачей данных на компьютер или с компьютера, сбалансированным образом перекрывать друг друга, существенно улучшая итоговую производительность.
https://telegra.ph/Urovni-RAID-0-1-2-3-4-5-6-7-i-chto-oni-oznachayut-04-16
👉 @i_linux
#vacancy #сисадмин #системныйадминистратор #Linux #Ubuntu #Centos #fulltime #вакансия #москва
Системный администратор Linux
Локация: Москва
ЗП: 250к-350к net
Занятость: Полная, Гибридный формат
Оформление: ТКРФ
Компания: Федеральное Медико-биологическое агентство
ЦСП ФМБА занимается научными исследованиями связанными с геномом человека и анализом полученных данных.
Группа разработки создает внутренние сервисы для автоматизации движения, обработки и распределенного хранения больших объемов данных.
Требования:
• Высокий уровень системного администрирование и траблшутинг серверных операционных систем Linux (Ubuntu,Centos)
• Виртуализация VMWare, Proxmox, KVM.
• Знания и практический опыт в области развертывания и обслуживания СУБД (Postgresql,mysql);
• Опыт проектирования и развертывания сетевых служб DNS,DHCP
• Знания технологий RAID;
• Опыт работы с сетевым оборудованием: DELL, MikroTik, Mellanox, HP; знание и понимание принципов работы сетей TCP/IP, маршрутизации, VLAN;
• Опыт работы с серверными платформами: Dell, Supermicro, IBM
• Опыт внедрения и администрирования терминальных ферм, знание правил и принципов;
• Практические навыки написания скриптов (Bash,Python);
• Практический опыт работы с Zabbix, написания триггеров.
Чем предстоит заниматься:
- Развертывание, настройка и поддержка инфраструктуры
- Настройка и работа с виртуализацией
- Взаимодействие с командой разработки по ключевым вопросам
Мы предлагаем:
Москва, офис недалеко от метро Щукинская
График работы 5/2
Гибридный режим работы
Официальное оформление по ТК РФ
Белая стабильная заработная плата
Бронь от мобилизации
Обслуживание в корпоративной поликлинике
Резюме отправлять: @ddsh_kl
Как увеличить размер каталога /tmp/
Иногда необходимо увеличить размер каталога, который в свою очередь находится в корневом каталоге системы.
Решить это можно перемонтированием каталога:
# mount -t tmpfs tmpfs /tmp -o size=1024M,mode=1777,remount
Теперь проверим, есть ли у нас каталог в фстабе:
# cat/etc/fstab
Если нет, создаем, если существует то выполняем следующую команду:
# none /tmp tmpfs size=1024M,mode=1777,rw 0 0
Теперь готов каталог/tmp/ с размером, указанным в операторе “size” размером 1024 mb.
👉 @i_linuxПодключение удаленных USB устройств. USBIP
В этом видео мы расскажем о том, как получить общий доступ к usb-устройствам через ip-сеть для совместного использования. Расскажем, какие устройства можно подключить таким способом и продемонстрируем подключение в консольном и графическом варианте.
00:00 Вступление
01:14 Настройка на сервере
02:40 Настройка на клиенте
04:37 Графическая утилита
👉 @i_linux
Карта ядра ОС Linux (Linux kernel map)
https://makelinux.github.io/kernel/map/
👉 @i_linux
Как скопировать структуру директорий в Linux
В этой статье мы расскажем как в две команды скопировать структуру директорий без файлов через командрую строку Linux.
Сначала необходимо перейти в директорию, где находятся нужная структура
# cd /dir1
Затем выполняем команду, которая находит директории и сохраняет пути к ни в файл
# find . -type d > dirs.txt
Теперь необходимо перенести этот файл в директорию, где мы хотим воссоздать структуру
# mv ./dirs.txt /dir2
Переходим туда
# cd /dir2
И используя xargs читаем из файла пути и создаем по ним структуру директорий
# xargs mkdir -p < dirs.txt
👉@i_linuxCisco. ACL
Стандартные ACL
access-list 100 permit host 172.16.6.0 0.0.0.255
access-list 100 deny host 172.16.6.0 0.0.0.255
Расширенные ACL
ip access-list extended TEST
permit tcp host 172.16.6.66 host 172.16.0. eq ftp
permit tcp host 172.16.6.66 gt 1023 any eq www
ПРАВИЛА ПРОВЕРЯЮТСЯ СВЕРХУ ВНИЗ. КАК ТОЛЬКО ПРОВЕРКА ДОХОДИТ ДО ПРАВИЛА ПОД КОТОРОЕ ПАКЕТ ПОДПАДАЕТ, ПРОВЕРКА ПРЕКРАЩАЕТСЯ, НЕЗАВИСИМО ОТ ТОГО КАКИЕ ПРАВИЛА ИДУТ ДАЛЬШЕ.
В КОНЦЕ ЗАДАЁТСЯ НЕЯВНОЕ ПРАВИЛО
deny ip any any
Т.Е. ЕСЛИ ЯВНО ЧТО-ТО НЕ РАЗРЕШИТЬ СВЕРХУ, ТО ЭТО БУДЕТ ЗАПРЕЩЕНО
Вешаем ACL на интерфейс(in или out)
ip access-group TEST out
Иногда необходимо удалить конкретную запись в access-list(для примера ip 94.123.2.139). Для этого, сначала смотрим порядковые номера записей
# show access-lists
Standard IP access list 1
10 permit 185.40.30.134
20 permit 94.141.60.123
30 permit 94.123.2.139
90 permit 88.196.234.16
50 permit 222.251.243.67
40 permit 143.35.7.238
Затем удаляем нужную
# conf t
(config)# ip access-list s 1
(config-ext-nacl)# no 30
В данном случае S - Standard Access List
Если вдруг понадобилось вставить запись в конкретное место, делаем так
# conf t
(config)# ip access-list s 1
(config-ext-nacl)# 40 permit 94.123.2.139
OBJECT-GROUP
Предположим, надо составить ACL, выпускающий три определенных адреса в интернет по трем одинаковым портам c перспективой расширения количества адресов и портов.
Создаём список разрешённых портов
object-group service INET-PORTS
description Ports allowed for some hosts
tcp eq www
tcp eq 8080
tcp eq 443
Создаём список разрешённых ипишек
object-group network HOSTS-TO-INET
description Hosts allowed to browse the net
host 172.16.0.2
host 172.16.0.3
host 172.16.0.4
Создаём ACL
ip access-list extended INET-OUT
permit object-group INET-PORTS object-group HOSTS-TO-INET any
И в завершении вешаем ACL на интерфейс
ip access-group TEST out
👉@i_linuxРабота с Kubernetes®: эффективные практики и лайфхаки
10 апреля в 12:00 (мск) бесплатный вебинар для тех, кто хочет разобраться, как облачные сервисы Yandex Cloud делают работу с Kubernetes® удобнее, быстрее и эффективнее.
Почему это важно?
Kubernetes — в топ-3 самых востребованных навыков на IT-рынке. Разобраться в нем — значит получить конкурентное преимущество и оптимизировать работу с контейнерными приложениями.
Что обсудим на вебе?
➡️ Как правильно использовать Yandex Managed Service for Kubernetes®.
➡️ Разберем реальные сценарии и кейсы, с которыми сталкиваются разработчики и DevOps-инженеры.
➡️ На демо-стенде покажем типичные ошибки и сложности при работе с Yandex Cloud и способы их решения.
➡️ Лайфхаки по работе с облачными сервисами, которые упростят администрирование.
Бонус⚡ На вебинаре расскажем о кастомном обучении Kubernetes: Yandex Cloud и Rebrain под руководством ментора. Если столько полезного на бесплатнике, представьте, сколько будет на полном курсе 😉
Для участия нужна регистрация. Прокачай свои навыки Kubernetes®!
Cisco (защищаем доступ)
Установим пароль на доступ через консольный порт:
line console 0
login
password password
Создаём access-list с разрешёнными для доступа сетями или хостами (пишем сети с обратной маской):
access-list 1 permit 192.168.1.0 0.0.0.255
access-list 1 permit 192.168.2.0 0.0.0.255
Отключаем доступ по виртуальному терминалу для протокола telnet и применяем ранее созданный access-list для ограничения доступа по ssh:
line vty 0 4
transport input ssh
access-class 1 in
privilege level 15
login local
Добавляем watch for login Attacks
login block-for 600 attempts 2 within 30
login delay 5
login quiet-mode access-class 1
👉@i_linuxCisco. Базовая настройка
Заливаем последнюю прошивку (для SSH необходим минимум Advanced Security), избавляемся от преднастроенного мусора и перегружаемся
erase startup-config
Включаем шифрование паролей
service password-encryption
Используем новую модель ААА и локальную базу пользователей
aaa new-model
aaa authentication login default local
Заводим пользователя с максимальными правами
username user privilege 15 secret password
Назначаем имя роутеру
hostname R1
ip domain-name R1.domain
Генерируем ключ для SSH
crypto key generate rsa
Настраиваем SSH
ip ssh authentication-retries 5
ip ssh version 2
ip ssh time-out 60
Разрешаем telnet и ssh на удаленной консоли и делаем доступ сразу в привилегированный режим 15го уровня line vty 0 4
transport input telnet ssh
privilege level 15
Отключаем доступ по http и https
no ip http server
no ip http secure-server
Настройка временной зоны и ntp
clock timezone MSK 3
ntp server 146.0.32.144
Настраиваем DNS
ip domain name domain
ip name-server 8.8.8.8
Блокируем доступ при определённом количестве неправильных попыток
login block-for 600 attempts 5 within 30
Отключаем ошибку резолва при неправильном наборе чего-либо в консоли
no ip domain-lookup
Задаём timeout неактивности telnet сессии
exec-timeout 15 0
👉@i_linuxШпаргалка по Tmux: установка, настройка, работа
Tmux (ти-макс) — это менеджер терминалов, который позволяет работать с несколькими сессиями в одном окне. То есть вместо нескольких открытых окон терминала — вы используете одно, которое можно делить на несколько окон.
Установка и настройка Tmux
Устанавливается Tmux из стандартных репозиториев Linux:
apt-get install tmux
После установки рекомендуем сразу отредактировать конфигурационный файл ти-макса (/etc/tmux.conf) и внести следующие изменения:
set -g mouse on
Эта строчка кода позволит свободно перемещать границы разделения окон с помощью курсора мышки.
Работа с Tmux
Для работы с ти-миксом используется широкий набор горячих клавиш, состоящих из базового сочетания Ctrl + b и отдельных целевых клавиш (n,p,w,b и т.д.).
Работа с сессиями в Tmux
Для создания рабочей сессии без идентификатора — достаточно ввести tmux в терминале. Будет создана сессия 0:
Идентификатор сессии отображается внизу слева в квадратных скобках. Для создания именной сессии достаточно ввести следующую команду:
tmux new -s название сессии
Поскольку ти-макс завершает соединение с сохранением состояния сессии, правильным способом возобновить работу ти-макса будет его запуск командой:
tmux attach || tmux new
Команда запускает проверку уже созданных сессий и если активных подключений нет — создается новое подключение.
Просмотреть список созданных сессий можно командой:
tmux ls
Команда вернёт список следующего вида:
0: 1 windows (created Mon Aug 30 13:02:31 2021) (attached)
Если в списке одна сессия, то командой tmux attach она будет автоматически восстановлена, а если в списке несколько сессий — необходимо ввести следующую команду:
tmux attach -t наименование сессии
В нашем случае сессия называется 0.
Сменить сессию можно также, находясь в другой сессии. Для этого нужно воспользоваться сочетанием клавиш Ctrl + b, s.
Выйти из сессии можно с помощью сочетания клавиш Ctrl + b, d. А завершить сессию командой:
tmux kill-session -t название сессии
Закрыть все сессии можно командой:
tmux kill-server
👉@i_linuxШпаргалка по поиску узких мест в Linux с помощью различных инструментов
👉 @i_linux
🎯 Топ-5 инструментов, которые облегчат жизнь Linux-админу
Если ты всё ещё вручную лазаешь по логам и не автоматизируешь рутину — этот пост для тебя:
1.
btop — продвинутый мониторинг ресурсов. Графика, интерактивность, кайф. Заменяет top и htop, особенно если ты ценишь эстетику и удобство.
2. glances — универсальный мониторинг "всё в одном". Работает даже через веб-интерфейс. Можно настроить алерты и метрики.
3. bpytop + ncdu — для анализа диска. Один показывает активность, другой — кто съел весь твой SSD.
4. atuin — мощный аналог истории bash/zsh с поиском по FZF и синхронизацией между машинами. Забудь про Ctrl+R.
5. tldr — короткие, понятные примеры команд. Особенно если ты не хочешь каждый раз читать мануал на 200 строк.
👉 @i_linuxKVM быстрый перенос виртуальной машины на другой сервер
Представим, что есть несколько гипервизоров - server1 и server2, как быстро перенести виртуального гостя с одного сервера, на другой? Очень просто.
Действия на server1
Выключить машину:
virsh shutdown vm1
Сделать дамп конфигурации машины:
virsh dumpxml vm1 > ~/vm1.xml
Скопировать данные на другой хост:
scp ~/vm1.xml server2:/path/to/folder/
scp /var/lib/libvirt/images/vm1.qcow2 server2:/var/lib/libvirt/images/
Действия на server2
Импортировать конфиг:
virsh define /path/to/folder/vm1.xml
Запустить виртуалную машину:
virsh start vm1
Удаление виртуальной машины KVM
Удалить машину:
virsh undefine vm1
Удалить диск:
virsh vol-delete --pool default vm1
Убедиться, что файл образа так же удален:
rm /var/lib/libvirt/images/vm1.qcow2
👉 @i_linuxShell скрипт для управления Linux- пользователями
Функциональные возможности
Создание пользователей
Просмотр списка существующих пользователей
Сброс пароля для существующих пользователей
Блокировка / Разблокировка пользовтеля
Просмотр всех заблокированных пользователей
Создание резервной копии домашнего каталога пользователя
Генерирование SSH ключей для пользователя
Повышение пользователя до админа и обратно
Удаление пользователя
Запись всех действий в журнал actions.log
Резервные копии
Скрипт создает каталог резервных копий в папке скрипта и создает архив tar.gz с именем, содержащим - имя пользователя и текущую дату
Генерация SSH ключа
Для генерации используется ssh-keygen, в результате будут отображены сведения о том, куда был сохранен ключ и отображено содержимое публичного ключа:
https://github.com/m0zgen/user-manager
👉 @i_linux
Вже доступно! Дослідження Telegram за 2025 — головні інсайти року 
