Linux
Kanalga Telegram’da o‘tish
Все для системного администратора, новости и информация из мира Linux По всем вопросам @evgenycarter
Ko'proq ko'rsatish2 446
Obunachilar
Ma'lumot yo'q24 soatlar
-67 kun
-3930 kun
Postlar arxiv
2 446
Кремниевые Титаны
#1. DEC часть 1: PDP
#2. DEC часть 2: VAX
#3. Nintendo Switch
#4. Intel: начало
#5: Fairchild Semiconductor
#6: AmigaOS
#7: MorphOS
#8: Texas Instruments
#9: Эволюция основных накопителей
#10: Philips CDi
источник
👉 @linuxchmod
2 446
SQL за полтора часа в одном видео! Полный базовый курс по SQL. Базы данных курс для начинающих!
00:00:00 Введение
00:02:43 Платные курсы и что изучать дальше
00:04:55 Коротко об онлайн редакторе
00:07:11 Что такое база данных
00:08:10 Что такое CRUD
00:10:05 Запрос на создание первой таблицы
00:11:57 Типы данных у атрибутов(колонок) (DATA TYPES)
00:17:26 Прописываем атрибуты(колонки) первой таблицы
00:21:07 Создаем первую таблицу (CREATE TABLE)
00:21:38 Проверка на наличие таблицы при создании (IF NOT EXISTS)
00:22:18 Запрос на удаление таблицы(DROP TABLE)
00:22:33 Проверка на наличие таблицы при удалении(IF EXISTS)
00:22:57 Запрос на добавление объекта в таблицу (INSER INTO table)
00:23:35 Запрос на чтение(получение) объектов из таблицы(SELECT * FROM table)
00:24:18 Модификаторы для атрибутов(колонок) таблицы(NOT NULL, DEFAULT, UNIQUE)
00:29:26 Изменение уже существующей таблицы(ALTER TABLE, ADD, DROP, RENAME, MODIFY COLUMN)
00:36:08 Удаление объектов из таблицы(DELETE FROM table)
00:37:06 Редактирование объекта в таблице(UPDATE table)
00:39:03 Первичный ключ(PRIMARY KEY)
00:45:37 Композиция в бд
00:50:38 "Иностранный" ключ(FOREIGN KEY)
00:57:26 Индексы в бд(INDEX)
00:59:24 Готовим данные для темы алиас, юнион и слияние таблиц
01:03:30 Слияние таблиц(INNER JOIN)
01:06:02 Слияние таблиц(LEFT JOIN)
01:06:53 Слияние таблиц(RIGHT JOIN)
01:07:26 Слияние таблиц(FULL JOIN/OUTER JOIN) и Union
01:09:04 Алиас(table AS alias)
01:12:18 Select Distinct в SQL
01:13:42 AND OR NOT в SQL
01:16:18 ORDER BY и LIMIT в SQL
01:17:35 MIN и MAX в SQL
01:18:25 COUNT SUM AVG в SQL
01:19:29 LIKE в SQL
01:21:31 IN и BETWEEN в SQL
01:22:50 GROUP BY в SQL
01:25:17 EXISTS в SQL
01:27:37 ANY и SOME в SQL
01:29:00 INSERT INTO в SQL
01:30:40 Отношения в базе данных
01:32:11 Отношения один к одному
01:33:09 Отношения один ко многим
01:34:09 Отношения многие ко многим
01:37:10 Отношения один к одному и один ко многим "через"
01:39:10 SQL инъекции
источник
👉 @linuxchmod
2 446
💡 Масштабируемая блокировка IP с fail2ban + nftables sets
🛠 Шаги настройки
1. Создаём таблицу и set для заблокированных IP:
sudo nft add table inet filter
sudo nft add set inet filter banned_ips { type ipv4_addr\; timeout 1h\; }
sudo nft add chain inet filter input { type filter hook input priority 0\; }
sudo nft add rule inet filter input ip saddr @banned_ips drop
2. Конфигурируем fail2ban для работы с nftables sets:
Создайте файл /etc/fail2ban/action.d/nftables-set.conf:
[Definition]
actionstart =
actionstop =
actioncheck =
actionban = nft add element inet filter banned_ips { <ip> }
actionunban = nft delete element inet filter banned_ips { <ip> }
И укажите его в вашем jail:
[sshd]
enabled = true
filter = sshd
action = nftables-set[name=SSH, port=ssh, protocol=tcp]
logpath = /var/log/auth.log
maxretry = 5
3. Перезапускаем сервисы:
sudo systemctl reload nftables
sudo systemctl restart fail2ban
🔹Обычно используется для:
- Высокая частота банов (бот-атаки, сканирование)
- Централизованное управление — все IP в одном set’e
- Минимальная задержка: проверка set ≪ цепочки из отдельных правил
⚡ Полезный трюк
Можно задать TTL для записей в set, чтобы баны автоматически снимались по истечении:
nft add element inet filter banned_ips { 203.0.113.5 timeout 3600s }
Или использовать timeout при создании set’а (как в шаге 1) для массовых записей.
👉 @linuxchmod2 446
Linux - Использование SSH ключа вместо Пароля | SSH Key Pair
Как создать ключ SSH на Linux и Windows
Как настроить логин для SSH ключей
Как логиниться с SSH ключем
Linux - Использование множества SSH ключей для подключения на разные Linux | ssh config
Создание файла ssh config для логина на разные Linux сервера используя разные ssh ключи
источник
👉 @linuxchmod
2 446
Линуксовые Фишечки
Файлы и навигация
History
Работа с текстом
Permissions
Root и sudo
источник
👉 @linuxchmod
2 446
Подборка часто используемых команд для первоначальной настройки устройств MikroTik: имя устройства, DNS сервера, Email, время, доступы и т.д.
Установки имени устройства
/system identity set name=MyHomeMikrotik
Установка своих DNS серверов и отключение получения их по DHCP
/ip dns set servers=8.8.8.8,1.1.1.1
/ip dhcp-client set [find ] use-peer-dns=no
Настройка email клиента для работы с Yandex.Mail
Для корректной работы разрешите в настройках профиля авторизацию SMTP по обычному паролю или [рекомендуется] используйте пароли приложений (почта)
/tool e-mail
set address=smtp.yandex.ru from=example@yandex.ru password=example-pass port=587 start-tls=yes user=example@yandex.ru
Настройка синхронизации времени по NTP и MikroTik Cloud Time (Москва)
/system ntp client set enabled=yes server-dns-names=time.google.com,0.pool.ntp.org,1.pool.ntp.org,2.pool.ntp.org,3.pool.ntp.org
/system clock set time-zone-autodetect=no
/system clock set time-zone-name=Europe/Moscow
/ip cloud set update-time=yes
Изменение количества строк системного лога
/system logging action set memory memory-lines=10000
Очистка системного лога (оставляет сообщение о смене настроек лога)
/system logging action set memory memory-lines=1
/system logging action set memory memory-lines=10000
Контроль доступа с IP адресов домена
Это позволяет использовать DynamicDNS для записей своего домена, и получать доступ к устройству с IP адресов, которые будут резолвится с домена. RouterOS будет сам обновлять записи и access-list при изменении записи в домене.
Обратите внимание, в конце 2 строки с move. Это сделано для того, чтобы правило корректно двигалось на первое место при включенном fasttrack (то есть первое место), а также при отключенном (на нулевое место)
/ip firewall address-list
add address=access.example.con list=DomainIPsAccess
/ip firewall filter
add action=accept chain=input src-address-list=DomainIPsAccess comment="Allow DomainIPsAccess"
move [find comment="Allow DomainIPsAccess"] 1
move [find comment="Allow DomainIPsAccess"] 0
Отключение ненужных служб доступа (web тоже отключается, осторожно)
/ip service disable www,ftp,api,api-ssl,telnet
/ip service enable ssh,winbox
/ip service set ssh address=""
/ip service set winbox address=""
Фикс MTU (нужен редко, но метко)
/ip firewall mangle
add chain=postrouting out-interface-list=WAN protocol=tcp tcp-flags=syn,!ack action=change-mss new-mss=clamp-to-pmtu comment="MTU Fix" passthrough=yes
Заблокировать доступ к WiFi по MAC-адресу
/interface wireless access-list authentication=no mac-address=8A:EA:B7:2E:38:C1
Поместить клиента WiFi в отдельный VLAN по MAC-адресу
/interface wireless access-list
add interface=all mac-address=8A:EA:B7:2E:38:C1 vlan-id=99 vlan-mode=use-tag
Настройка пароля и безопасности WiFi на default профиль
/interface wireless security-profiles set default mode=dynamic
-keys authentication-types=wpa2-psk unicast-ciphers=aes-ccm group-ciphers=aes-ccm
wpa2-pre-shared-key=bigpassword
Включение пробросов портов SSH
/ip ssh set forwarding-enabled=both
👉 @linuxchmod2 446
Основы компьютерных сетей
Тема №1. Основные сетевые термины и сетевые модели
Тема №2. Протоколы верхнего уровня
Тема №3. Протоколы нижних уровней (транспортного, сетевого и канального)
Тема №4. Сетевые устройства и виды применяемых кабелей
Тема №5. Понятие IP адресации, масок подсетей и их расчет
Тема №6. Понятие VLAN, Trunk и протоколы VTP и DTP
Тема №7. Протокол связующего дерева: STP
Тема №8. Протокол агрегирования каналов: Etherchannel
Тема №9. Маршрутизация: статическая и динамическая на примере RIP, OSPF и EIGRP
👉 @linuxchmod
2 446
+9
Экскурсия в логово ретро-гика
Ностальгирующие по 80-м наверняка отдали бы правую руку за возможность оказаться в таком месте. Нет, это не музей. Это логово Брайана Грина, старшего системного инженера в Арканзасе, а ещё страстного коллекционера ретро-компьютеров. Самое классное, что все его древние Apple, Atari и Commodore прекрасно работают!
👉 @linuxchmod
2 446
SPRINT OFFER в команду Телекома по направлению DevOps ➡️
YADRO в поиске Infrastructure и CI/CD Engineer — отправляйте резюме до 8 июня 😊
Как получить оффер за 3 дня?
Выбирайте направление, отправляйте заявку и пройдите техническое и менеджерское интервью. Если всё пройдёт успешно — оффер будет ваш!
С чем вам предстоит работать?
Наши DevOps-инженеры поддерживают процессы разработки (на С/С++, Go, Node.JS) и отвечают за инфраструктуру, которая позволяет бизнес-решениям работать. Также специалисты постоянно улучшают качество внутренних сервисов и занимаются развитием инструментов CI/CD.
Кого ждём в команду?
DevOps-инженеров с опытом работы от года и желанием развивать новые продукты в нашей команде.
💙Оставляйте заявку до 8 июня и станьте частью команды YADRO.
Все подробности — по ссылке.
2 446
Zabbix с нуля до короля
Часть 1
Часть 2. UserParameters, LLD
Часть 4. Ansible, Zabbix Agent
Часть 5. Ansible, Vagrant, Benchmark
Часть 6. Интерфейс: Hosts, Problems
Docker так, чтоб нормально. Запуск GitLab CE.
Часть 7. С наколенки в Git
Gitlab CE. Ansible, Molecule, Lints
источник
👉 @linuxchmod
2 446
Dynamic-wallpaper
Простой bash-скрипт для установки обоев в зависимости от текущего времени, используя планировщик заданий cron.
Описание
25+(более) различных типов обоев (HD/UHD/4K/5K).
Добавлена поддержка pywal.
Пользователи могут добавлять свои собственные обои.
С помощью Cron обои меняются в зависимости от времени в течение дня.
Протестировано на :
Оконные менеджеры: Openbox, i3wm, bspwm, awesomewm, Fluxbox, Fvwm, Swaywm.
Окружения рабочего стола : KDE, Pantheon, Gnome, Deepin, Cinnamon, XFCE, LXDE, MATE
https://github.com/adi1090x/dynamic-wallpaper
👉@linuxchmod
2 446
Средства анализа и просмотра log-файлов
Alco (Apache Log Colorizing Tool)
Утилита для подсветки log-файлов web-сервера Apache. Написана на awk.
KDE LogViewer
Утилита для просмотра log-файлов для KDE. Имеет: фильтр, события, отображение строк разными цветами в зависимости от log-файла.
Logcheck
Простая утилита для фильтрации log-файлов на «не обычные» записи (в.т.ч. и с помощью регулярных выражений) и отправки отчета на e-mail.
LogMiner
Мощный анализатор log-файлов для Apache или другого web-сервера, использующего комбинированный формат файлов отчёта. Может выводить детализированную статистику визитов, трафика, навигационных путей, браузеров посетителей и их операционных систем.
MultiTail
Аналог утилиты tail, позволяющий показывать данные из файлов в нескольких окнах одной консоли. Основан на ncurses.
👉@linuxchmod
2 446
KVM быстрый перенос виртуальной машины на другой сервер
Представим, что есть несколько гипервизоров - 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
👉@linuxchmod2 446
Shell скрипт для управления Linux- пользователями
Функциональные возможности
Создание пользователей
Просмотр списка существующих пользователей
Сброс пароля для существующих пользователей
Блокировка / Разблокировка пользовтеля
Просмотр всех заблокированных пользователей
Создание резервной копии домашнего каталога пользователя
Генерирование SSH ключей для пользователя
Повышение пользователя до админа и обратно
Удаление пользователя
Запись всех действий в журнал actions.log
Резервные копии
Скрипт создает каталог резервных копий в папке скрипта и создает архив tar.gz с именем, содержащим - имя пользователя и текущую дату
Генерация SSH ключа
Для генерации используется ssh-keygen, в результате будут отображены сведения о том, куда был сохранен ключ и отображено содержимое публичного ключа:
https://github.com/m0zgen/user-manager
👉@linuxchmod
2 446
💡 Bash-совет дня: Поиск самых “тяжёлых” файлов в системе 🐘📦
Иногда нужно быстро найти, что именно жрёт всё место на диске. Вот простой однострочный скрипт, который покажет топ-10 самых больших файлов в директории (и её поддиректориях):
find / -type f -exec du -h {} + 2>/dev/null | sort -hr | head -n 10
🔍 Что делает этот скрипт:
* find / -type f — ищет все файлы начиная с корня
* du -h — оценивает размер каждого файла в человеко-читаемом виде
* sort -hr — сортирует по размеру (от большего к меньшему)
* head -n 10 — показывает только 10 самых больших
⚠️ Важно: запуск от рута даст полную картину, но может занять время. Если хочешь искать в конкретной директории — просто замени / на нужный путь.
📌 Альтернатива, если установлен ncdu:
ncdu /
👉@linuxchmod