
💸 Скидки до 70% для бизнеса и финансов
Ловите лучшие слоты в каналах бизнес-тематик — только до 6 апреля!
Забрать скидку

6.4

BashTex | Linux
5.0
Авторский канал про мир Linux и Bash. Основная аудитория: системные администраторы, DevOps, Python-разработчики и другие.
Поделиться
В избранное
Купить рекламу в этом канале
Формат:
keyboard_arrow_down
- 1/24
- 2/48
- 3/72
- 7 дней
- Репост
1 час в топе / 24 часа в ленте
Количество:
%keyboard_arrow_down
- 1
- 2
- 3
- 4
- 5
- 8
- 10
- 15
Стоимость публикации:
local_activity
839.16₽839.16₽local_mall
0.0%
Осталось по этой цене:0
Последние посты канала
Настройка Failover-интерфейсов для отказоустойчивости сети
При сбое основного сетевого интерфейса система может автоматически переключаться на резервный интерфейс, обеспечивая бесперебойное сетевое соединение. Это особенно важно для серверов и критически важных сервисов.
Разберём, как настроить failover-интерфейсы в Linux с помощью bonding и keepalived.
▪️ Метод 1: Используем bonding. Он позволяет объединять два интерфейса в один логический и автоматически переключаться на рабочий при отказе основного.
1️⃣ Установите модуль bonding:
2️⃣ Настроим интерфейсы (пример для Ubuntu/Debian в /etc/netplan/01-netcfg.yaml):
Режим active-backup: Используется eth0, если он работает. Если eth0 выходит из строя, подключается eth1.
3️⃣ Применяем настройки:
Проверяем статус:
▪️ Метод 2: Используем keepalived для виртуального IP. Этот метод позволяет создать виртуальный IP (VIP), который будет переключаться между интерфейсами при отказе.
1️⃣ Установите keepalived:
2️⃣ Настроим keepalived (файл
3️⃣ Запускаем сервис:
Проверяем виртуальный IP:
▪️ Итоги:
bonding: объединяет интерфейсы в один и автоматически переключается между ними.
keepalived: создаёт виртуальный IP, который "переезжает" на другой интерфейс при отказе основного.
BashTex📱 #linux #networks
При сбое основного сетевого интерфейса система может автоматически переключаться на резервный интерфейс, обеспечивая бесперебойное сетевое соединение. Это особенно важно для серверов и критически важных сервисов.
Разберём, как настроить failover-интерфейсы в Linux с помощью bonding и keepalived.
sudo modprobe bonding
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: no
eth1:
dhcp4: no
bonds:
bond0:
interfaces: [eth0, eth1]
parameters:
mode: active-backup
primary: eth0
Режим active-backup: Используется eth0, если он работает. Если eth0 выходит из строя, подключается eth1.
sudo netplan apply
Проверяем статус:
cat /proc/net/bonding/bond0
sudo apt install keepalived -y
/etc/keepalived/keepalived.conf
):
vrrp_instance FAILOVER {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass secret
}
virtual_ipaddress {
192.168.1.100/24
}
}
sudo systemctl enable --now keepalived
Проверяем виртуальный IP:
ip a show eth0
bonding: объединяет интерфейсы в один и автоматически переключается между ними.
keepalived: создаёт виртуальный IP, который "переезжает" на другой интерфейс при отказе основного.
BashTex
402
10:33
02.04.2025
imageИзображение не доступно для предпросмотра
434
08:57
01.04.2025
Создание собственных горячих клавиш в терминале
Хотите сделать работу в терминале удобнее и быстрее? Используйте
▪️ Простейший пример: привязываем Ctrl+T для вывода текущей даты и времени:
Теперь при нажатии Ctrl+T в терминале будет отображаться текущая дата
▪️ Практические примеры
1️⃣ Быстрое переключение между папками. Допустим, вы часто переходите в каталог /var/log. Назначим для этого Ctrl+L:
Теперь при нажатии Ctrl+L вас мгновенно перебросит в /var/log и покажет содержимое.
2️⃣ Очистка экрана командой Ctrl+K. Вместо ввода clear вручную:
3️⃣ Открытие htop на Ctrl+H. Мониторинг процессов без лишних команд:
4️⃣ Быстрый выход из терминала (Ctrl+Q). Чтобы не писать exit:
▪️ Как сохранить бинды навсегда? Добавьте их в ~/.bashrc и выполните:
Теперь ваши горячие клавиши будут работать при каждом запуске терминала.
BashTex📱 #bash #utils
Хотите сделать работу в терминале удобнее и быстрее? Используйте
bind -x
для создания горячих клавиш, которые выполняют команды прямо в командной строке. Команда bind -x
позволяет привязать сочетание клавиш к выполнению произвольного bash-скрипта.
bind -x '"\C-t": "echo $(date)"'
Теперь при нажатии Ctrl+T в терминале будет отображаться текущая дата
bind -x '"\C-l": "cd /var/log; ls"'
Теперь при нажатии Ctrl+L вас мгновенно перебросит в /var/log и покажет содержимое.
bind -x '"\C-k": "clear"'
bind -x '"\C-h": "htop"'
bind -x '"\C-q": "exit"'
source ~/.bashrc
Теперь ваши горячие клавиши будут работать при каждом запуске терминала.
BashTex
575
09:32
31.03.2025
Настройка удалённого аудита логов с rsyslog
1️⃣ Настройка сервера (приём логов). На сервере, который будет принимать логи, включаем поддержку удалённых сообщений:
Редактируем конфиг
UDP - быстрее, но ненадёжно.
TCP - более надёжно, но может вызывать задержки.
Перезапускаем rsyslog:
И не забываем открыть порт в firewalld или iptables:
2️⃣ Настройка клиента (отправка логов). На сервере-отправителе редактируем /etc/rsyslog.conf и добавляем в конец:
Где 192.168.1.100 - IP сервера сбора логов.
Перезапускаем rsyslog:
Проверяем отправку тестового сообщения:
3️⃣ Фильтрация и хранение логов. Можно настроить rsyslog на приём и сортировку логов по папкам:
Теперь логи будут храниться по серверам и сервисам в
4️⃣ Шифрование логов (TLS). Открытые логи могут содержать чувствительные данные. Для безопасной передачи можно включить TLS.
Добавляем в
И на клиенте:
➕ rsyslog позволяет собирать логи с разных серверов в одном месте.
➕ Можно использовать фильтрацию и сортировку логов по сервисам.
➕ Для безопасности передача логов может быть зашифрована через TLS.
BashTex📱 #linux #utils
rsyslog
позволяет пересылать логи с серверов на удалённый лог-агрегатор, обеспечивая удобный аудит и хранение.Редактируем конфиг
/etc/rsyslog.conf
. Добавляем:
# Разрешаем приём логов по TCP и UDP
$ModLoad imudp
$UDPServerRun 514
$ModLoad imtcp
$InputTCPServerRun 514
UDP - быстрее, но ненадёжно.
TCP - более надёжно, но может вызывать задержки.
Перезапускаем rsyslog:
systemctl restart rsyslog
И не забываем открыть порт в firewalld или iptables:
firewall-cmd --permanent --add-port=514/udp
firewall-cmd --permanent --add-port=514/tcp
firewall-cmd --reload
*.* @192.168.1.100:514 # Отправка по UDP
# *.* @@192.168.1.100:514 # Для TCP — две @
Где 192.168.1.100 - IP сервера сбора логов.
Перезапускаем rsyslog:
systemctl restart rsyslog
Проверяем отправку тестового сообщения:
logger "Тестовая запись в удалённые логи"
$template RemoteLogs,"/var/log/remote/%HOSTNAME%/%PROGRAMNAME%.log"
*.* ?RemoteLogs
& stop
Теперь логи будут храниться по серверам и сервисам в
/var/log/remote/
.Добавляем в
/etc/rsyslog.conf
на сервере:
$DefaultNetstreamDriverCAFile /etc/rsyslog.d/ca.pem
$DefaultNetstreamDriverCertFile /etc/rsyslog.d/server-cert.pem
$DefaultNetstreamDriverKeyFile /etc/rsyslog.d/server-key.pem
$ModLoad imtcp
$InputTCPServerStreamDriverMode 1
$InputTCPServerStreamDriverAuthMode anon
$InputTCPServerRun 6514
И на клиенте:
$DefaultNetstreamDriverCAFile /etc/rsyslog.d/ca.pem
$DefaultNetstreamDriverCertFile /etc/rsyslog.d/client-cert.pem
$DefaultNetstreamDriverKeyFile /etc/rsyslog.d/client-key.pem
*.* @@(overtls)192.168.1.100:6514
BashTex
588
09:37
28.03.2025
Сжатие логов в реальном времени
Логи быстро накапливаются и могут занимать гигабайты дискового пространства. Вместо того чтобы ждать ротации логов, можно сжимать их в реальном времени без потери данных, используя
1️⃣ Перехват логов и их сжатие на лету. Если процесс пишет логи в stdout, можно сразу сжимать их:
tee дублирует вывод в сжатый файл, при этом логи остаются видимыми в консоли.
Для zstd (он быстрее, чем gzip):
2️⃣ Сжатие логов nginx в реальном времени. Добавляем gzip в конфигурацию logrotate:
Логи будут сжиматься автоматически после ротации.
3️⃣ Прямая передача логов в сжатый файл. Если приложение пишет в файл, можно использовать именованный канал:
Логи идут в gzip, при этом процесс не знает, что его вывод сжимается.
4️⃣ Использование systemd-journald для сжатия. Если система использует journald, включаем сжатие в конфиге:
Затем перезапускаем службу:
Логи будут автоматически сжаты, освобождая место.
BashTex📱 #bash #utils
Логи быстро накапливаются и могут занимать гигабайты дискового пространства. Вместо того чтобы ждать ротации логов, можно сжимать их в реальном времени без потери данных, используя
gzip
или zstd
в связке с tee
и systemd
.
some_command 2>&1 | tee >(gzip -c > logs.gz)
tee дублирует вывод в сжатый файл, при этом логи остаются видимыми в консоли.
Для zstd (он быстрее, чем gzip):
some_command 2>&1 | tee >(zstd > logs.zst)
/var/log/nginx/*.log {
daily
rotate 7
compress
delaycompress
missingok
notifempty
}
Логи будут сжиматься автоматически после ротации.
mkfifo /tmp/logpipe
gzip -c < /tmp/logpipe > /var/log/app.log.gz &
some_command > /tmp/logpipe 2>&1
Логи идут в gzip, при этом процесс не знает, что его вывод сжимается.
[Journal]
Compress=yes
SystemMaxUse=500M
Затем перезапускаем службу:
systemctl restart systemd-journald
Логи будут автоматически сжаты, освобождая место.
BashTex
537
10:44
27.03.2025
Выполнение команд с ограничением по времени
Иногда нужно запустить команду, но ограничить её время выполнения. Например, если программа зависла или работает слишком долго. Для этого используется команда
▪️ Простой пример. Запустим команду sleep на 5 секунд, но прервём её через 2 секунды:
Через 2 секунды процесс будет завершён.
▪️ Прерывание долгих команд. Если вы хотите ограничить время выполнения скрипта:
Если скрипт не завершится за 10 секунд, timeout его принудительно остановит.
▪️ Игнорирование SIGTERM. Некоторые команды игнорируют сигнал SIGTERM. В таком случае можно использовать -k для отправки SIGKILL:
Сначала timeout подождёт 30 секунд, затем отправит SIGTERM.
Если процесс не завершится через 5 секунд, отправится SIGKILL.
▪️ Использование с ping. Ограничим ping 5 секундами:
Через 5 секунд ping остановится автоматически.
▪️ Вывод кода завершения
Если команда успела завершиться - timeout передаст её код возврата.
Если команда была принудительно остановлена - код возврата будет 124.
Проверим:
BashTex📱 #linux #utils
Иногда нужно запустить команду, но ограничить её время выполнения. Например, если программа зависла или работает слишком долго. Для этого используется команда
timeout
.
timeout 2s sleep 5
Через 2 секунды процесс будет завершён.
timeout 10s ./долгий_скрипт.sh
Если скрипт не завершится за 10 секунд, timeout его принудительно остановит.
timeout -k 5s 30s ./непослушный_процесс
Сначала timeout подождёт 30 секунд, затем отправит SIGTERM.
Если процесс не завершится через 5 секунд, отправится SIGKILL.
timeout 5s ping 8.8.8.8
Через 5 секунд ping остановится автоматически.
Если команда успела завершиться - timeout передаст её код возврата.
Если команда была принудительно остановлена - код возврата будет 124.
Проверим:
timeout 2s sleep 5
echo $? # Выведет 124
BashTex
559
10:07
26.03.2025
Краткие и понятные мануалы вместо man
Если вам надоели километровые страницы man, где сложно найти примеры, то tldr - хорошая альтернатива! Это сборник кратких и понятных примеров для популярных команд.
🛠 Установка tldr
🔎 Как пользоваться? Просто вводите команду:
Вы получите краткую и понятную инструкцию:
Гораздо удобнее, чем листать man tar и быстрее, чем лезть в гугл.
💡 Если хотите использовать tldr в оффлайн-режиме, выполните:
BashTex📱 #linux #utils
Если вам надоели километровые страницы man, где сложно найти примеры, то tldr - хорошая альтернатива! Это сборник кратких и понятных примеров для популярных команд.
brew install tldr #MacOS
sudo pacman -S tldr #Arch Linux
sudo apt install tldr #Ubuntu/Debian
tldr tar
Вы получите краткую и понятную инструкцию:
tar -xvf archive.tar # Распаковать архив
tar -cvf archive.tar dir/ # Создать архив из папки
tar -tvf archive.tar # Просмотреть содержимое
Гораздо удобнее, чем листать man tar и быстрее, чем лезть в гугл.
tldr --update
BashTex
736
09:12
24.03.2025
chattr и lsattr для защиты файлов от изменений
Иногда
🛠
i (immutable) - файл нельзя удалить, изменить или переименовать.
📍 Просмотр всех атрибутов в папке:
🛠
1️⃣ Запрет любых изменений (даже root'ом)
Теперь даже root не сможет удалить или изменить файл:
Чтобы снять защиту:
2️⃣ Защита от случайного удаления (флаг a). Файл можно дописывать, но нельзя удалить или изменить существующее содержимое:
Теперь команды вроде rm log.txt не сработают, но echo "data" >> log.txt работает.
Снять защиту можно так:
3️⃣ Защита каталогов (запрет удаления файлов внутри)
Это запретит любые изменения в папке (нельзя добавлять/удалять файлы).
4️⃣ Автоматическая очистка файла при перезаписи (s)
Файл будет перезаписан нулями перед удалением, что затруднит восстановление.
5️⃣ Файл не записывается в журналы (j)
Полезно для файлов, которые не должны попадать в журналируемую файловую систему (ext3/ext4).
BashTex📱 #linux #utils
Иногда
chmod
и chown
недостаточно для защиты важных файлов. В linux есть инструмент chattr
, который позволяет устанавливать атрибуты, защищающие файлы от удаления, изменений или перезаписи, даже root'омlsattr
- просмотр атрибутов файлов. Прежде чем что-то менять, посмотрим на атрибуты файла:
lsattr myfile.txt
----i--------- myfile.txt
i (immutable) - файл нельзя удалить, изменить или переименовать.
lsattr /etc
chattr
- защита файлов
chattr +i important.conf
Теперь даже root не сможет удалить или изменить файл:
rm important.conf
rm: cannot remove 'important.conf': Operation not permitted
Чтобы снять защиту:
chattr -i important.conf
chattr +a log.txt
Теперь команды вроде rm log.txt не сработают, но echo "data" >> log.txt работает.
Снять защиту можно так:
chattr -a log.txt
chattr +i /important_dir
Это запретит любые изменения в папке (нельзя добавлять/удалять файлы).
chattr +s secret.txt
Файл будет перезаписан нулями перед удалением, что затруднит восстановление.
chattr +j critical.log
Полезно для файлов, которые не должны попадать в журналируемую файловую систему (ext3/ext4).
BashTex
792
10:23
21.03.2025
chattr и lsattr для защиты файлов от изменений
Иногда
🛠
i (immutable) - файл нельзя удалить, изменить или переименовать.
📍 Просмотр всех атрибутов в папке:
🛠
1️⃣ Запрет любых изменений (даже root'ом)
Теперь даже root не сможет удалить или изменить файл:
Чтобы снять защиту:
2️⃣ Защита от случайного удаления (флаг a). Файл можно дописывать, но нельзя удалить или изменить существующее содержимое:
Теперь команды вроде rm log.txt не сработают, но echo "data" >> log.txt работает.
Снять защиту можно так:
3️⃣ Защита каталогов (запрет удаления файлов внутри)
Это запретит любые изменения в папке (нельзя добавлять/удалять файлы).
4️⃣ Автоматическая очистка файла при перезаписи (s)
Файл будет перезаписан нулями перед удалением, что затруднит восстановление.
5️⃣ Файл не записывается в журналы (j)
Полезно для файлов, которые не должны попадать в журналируемую файловую систему (ext3/ext4).
BashTex📱 #linux #utils
Иногда
chmod
и chown
недостаточно для защиты важных файлов. В linux есть инструмент chattr
, который позволяет устанавливать атрибуты, защищающие файлы от удаления, изменений или перезаписи, даже root'омlsattr
- просмотр атрибутов файлов. Прежде чем что-то менять, посмотрим на атрибуты файла:
lsattr myfile.txt
----i--------- myfile.txt
i (immutable) - файл нельзя удалить, изменить или переименовать.
lsattr /etc
chattr
- защита файлов
chattr +i important.conf
Теперь даже root не сможет удалить или изменить файл:
rm important.conf
rm: cannot remove 'important.conf': Operation not permitted
Чтобы снять защиту:
chattr -i important.conf
chattr +a log.txt
Теперь команды вроде rm log.txt не сработают, но echo "data" >> log.txt работает.
Снять защиту можно так:
chattr -a log.txt
chattr +i /important_dir
Это запретит любые изменения в папке (нельзя добавлять/удалять файлы).
chattr +s secret.txt
Файл будет перезаписан нулями перед удалением, что затруднит восстановление.
chattr +j critical.log
Полезно для файлов, которые не должны попадать в журналируемую файловую систему (ext3/ext4).
BashTex
792
10:23
21.03.2025
close
С этим каналом часто покупают
Отзывы канала
keyboard_arrow_down
- Добавлен: Сначала новые
- Добавлен: Сначала старые
- Оценка: По убыванию
- Оценка: По возрастанию
5.0
1 отзыва за 6 мес.
Превосходно (100%) За последние 6 мес
v
**.zhukoff@*****.com
на сервисе с ноября 2024
18.03.202512:21
5
Оперативное размещение
Лучшие в тематике
Новинки в тематике
Выбрано
0
каналов на сумму:0.00₽
Подписчики:
0
Просмотры:
lock_outline
Перейти в корзинуКупить за:0.00₽
Комментарий