🚨 НИКОГДА не редактируй bash-скрипт во время его выполнения!
Привет, повелитель терминала! 👋
Знаешь, что может превратить безобидный скрипт в оружие массового уничтожения данных? Всего одно неосторожное редактирование.
💣 Смотри, какая бомба:
Выглядит безопасно? Команда
⚡ Что происходит:
1. Запускаешь скрипт → bash начинает читать его частями
2. Меняешь
3. Сохраняешь файл → смещение байтов сбивается
4. BOOM! → bash читает
🔍 Доказательство через strace:
🛡️ Как защититься:
• Копируй скрипт перед редактированием
• Останови выполнение перед правками
• Используй блокировки файлов
• Тестируй на копиях важных скриптов
💡 Вывод
Bash читает скрипт блоками по 64 байта и отслеживает позицию. Удаление символов сдвигает содержимое, но не позицию чтения!
🌐 Источник: https://habr.com/ru/articles/500832/
________________
Дополнительный материал:
🧠 - GRUB Files Unveiled: Путеводитель по конфигурационным файлам
🧠 - Как настроить автоматическое включение вашего компьютера с помощью RTC
🧠 - GRUB Rescue Ops: Как оживить систему, замершую на grub>
#Linux_Mastery #Linux #Bash #Security #DevOps #SysAdmin #ScriptSafety
Привет, повелитель терминала! 👋
Знаешь, что может превратить безобидный скрипт в оружие массового уничтожения данных? Всего одно неосторожное редактирование.
💣 Смотри, какая бомба:
#!/bin/bash
sleep 30
#rm -rf --no-preserve-root /
echo "Time's up!"
Выглядит безопасно? Команда
rm закомментирована, скрипт просто ждёт 30 секунд. Но стоит тебе отредактировать его во время выполнения...⚡ Что происходит:
1. Запускаешь скрипт → bash начинает читать его частями
2. Меняешь
sleep 30 на sleep 3 в редакторе3. Сохраняешь файл → смещение байтов сбивается
4. BOOM! → bash читает
rm -rf / вместо комментария🔍 Доказательство через strace:
# Открытие скрипта
openat(AT_FDCWD, "delay.sh", O_RDONLY) = 3
# Парсинг первой строчки (до 80 символов)
read(3, "#!/bin/bash\nsleep 30\n#echo \"Don'"..., 80) = 64
# Возврат к началу
lseek(3, 0, SEEK_SET) = 0
# Переключение на на файловый дескриптор 255
dup2(3, 255) = 255
# Чтение 64-байтового куска файла, чтобы получить команду
read(255, "#!/bin/bash\nsleep 30\n#echo \"Don'"..., 64) = 64
# Поместить курсор обратно в конец команды, которую мы собираемся выполнить
# Offset 21 is the `#`
lseek(255, -43, SEEK_CUR) = 21
# Приостановка выполнения, уход в sleep
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 2072
# До возвращения wait4 файл редактируется с `30` на `3`
# Чтение 64-байтового куска файла, чтобы получить следующую команду
# В этом демо я заменил опасную команду на echo
read(255, "echo \"Don't execute me\"\necho \"Ti"..., 64) = 42
# Bash решает выполнить оба echo одновременно без нового чтения
# Очевидно, что-то идёт не так
write(1, "Don't execute me\n", 17) = 17
write(1, "Time's up!\n", 11) = 11
# Чтение следующего фрагмента и обнаружение конца файла
read(255, "", 64) = 0
🛡️ Как защититься:
• Копируй скрипт перед редактированием
• Останови выполнение перед правками
• Используй блокировки файлов
• Тестируй на копиях важных скриптов
💡 Вывод
Bash читает скрипт блоками по 64 байта и отслеживает позицию. Удаление символов сдвигает содержимое, но не позицию чтения!
🌐 Источник: https://habr.com/ru/articles/500832/
________________
Дополнительный материал:
🧠 - GRUB Files Unveiled: Путеводитель по конфигурационным файлам
🧠 - Как настроить автоматическое включение вашего компьютера с помощью RTC
🧠 - GRUB Rescue Ops: Как оживить систему, замершую на grub>
#Linux_Mastery #Linux #Bash #Security #DevOps #SysAdmin #ScriptSafety
Хабр
Осторожнее с редактированием bash-скриптов
Предположим, я написал такой bash-скрипт с названием delay.sh . Как думаете, что он делает? #!/bin/bash sleep 30 #rm -rf --no-preserve-root / echo "Time's up!" Похоже, он ожидает 30 секунд,...
👍24
🔐 Забыл заблокировать ПК? Твой телефон сделает это за тебя
Привет, мастер безопасности!
Знакомо? Отошёл за кофе, а коллега уже изучает твой браузер. Сейчас покажу, как превратить твой смартфон в умный ключ — Linux будет автоматически блокироваться, когда ты уходишь.
📌 Что понадобится:
- Bluetooth на компе и телефоне
- 5 минут времени
- Bash-скрипт ниже
🔧 Настройка за 3 шага:
1. Найди MAC-адрес телефона:
2. Создай скрипт автоблокировки:
3. Запусти и забудь:
💡 Как это работает:
Скрипт каждые 5 секунд проверяет, видит ли компьютер твой телефон по Bluetooth. Ушёл дальше 10 метров — экран автоматически блокируется. Вернулся — всё как было.
____________________
Дополнительный материал:
🧠 - GRUB Boot Mastery: Изучаем искусство восстановления
🧠 - Как настроить ночное выключение вашего компьютера с помощью cron
🧠 - GRUB Makeover: Как дать новую жизнь конфигурации загрузчика
#Linux_Mastery #Linux #Security #Bash #Bluetooth #Desktop #Automation
Привет, мастер безопасности!
Знакомо? Отошёл за кофе, а коллега уже изучает твой браузер. Сейчас покажу, как превратить твой смартфон в умный ключ — Linux будет автоматически блокироваться, когда ты уходишь.
📌 Что понадобится:
- Bluetooth на компе и телефоне
- 5 минут времени
- Bash-скрипт ниже
🔧 Настройка за 3 шага:
1. Найди MAC-адрес телефона:
# Включи Bluetooth на телефоне и запусти
hcitool scan
2. Создай скрипт автоблокировки:
#!/bin/bash
# MAC-адрес твоего телефона
DEVICE="AA:BB:CC:DD:EE:FF"
# Имя устройства из hcitool scan
DEV_NAME="My Phone"
# Интервал проверки (сек)
INTERVAL=5
# PID xscreensaver
XSS_PID=
# Запускаем xscreensaver, если не запущен
pgrep xscreensaver
if [ $? -eq 1 ]; then
echo "Starting xscreensaver..."
xscreensaver &
fi
# Основной цикл проверки
while [ 1 ]; do
opt=$(hcitool name $DEVICE)
if [ "$opt" = "$DEV_NAME" ]; then
echo "Device '$opt' found"
if [ -n "$XSS_PID" ]; then
echo "Killing $XSS_PID"
kill $XSS_PID
XSS_PID=
fi
else
echo "Can't find device $DEVICE ($DEV_NAME); locking!"
xscreensaver-command -lock
XSS_PID=$!
fi
sleep $INTERVAL
done
3. Запусти и забудь:
chmod +x bluetooth-lock.sh
./bluetooth-lock.sh &
💡 Как это работает:
Скрипт каждые 5 секунд проверяет, видит ли компьютер твой телефон по Bluetooth. Ушёл дальше 10 метров — экран автоматически блокируется. Вернулся — всё как было.
____________________
Дополнительный материал:
🧠 - GRUB Boot Mastery: Изучаем искусство восстановления
🧠 - Как настроить ночное выключение вашего компьютера с помощью cron
🧠 - GRUB Makeover: Как дать новую жизнь конфигурации загрузчика
#Linux_Mastery #Linux #Security #Bash #Bluetooth #Desktop #Automation
Telegram
Linux Skill - Освой Linux c нуля до DevOps
🚀🛠️ GRUB Boot Mastery: Изучаем искусство восстановления! 🖥️🔍
Привет, мастера загрузки и покорители GRUB! Сегодня мы погрузимся в мир загрузочных секретов и узнаем, как действовать, когда система отказывается стартовать. Приготовьтесь к путешествию в глубины…
Привет, мастера загрузки и покорители GRUB! Сегодня мы погрузимся в мир загрузочных секретов и узнаем, как действовать, когда система отказывается стартовать. Приготовьтесь к путешествию в глубины…
👍23🔥10👀1
🔥 HTTPS в локалке: от красного замка к зелёному за 10 команд
Привет, укротитель сертификатов!
Браузер постоянно ругается на самоподписанный сертификат? Надоело кликать "Продолжить несмотря на риск"? Создаём свой CA (Certificate Authority - центр сертификации) и забываем про предупреждения навсегда!
🔧 Создаём свой CA:
📝 Генерируем сертификат для сервера:
⚙️ Конфиг с альтернативными именами:
🚀 Подписываем сертификат:
🔧 Настройка Nginx:
💡 Финальный штрих:
Добавь myCA.crt в доверенные корневые сертификаты на клиенте. Всё! Зелёный замок на 27 лет!
____________________
Дополнительный материал:
🧠 - Настройка Ctrl+Alt+Delete в Linux: Перезагрузка или Выключение?
🧠 - GRUB's Got Talent": За кулисами самотестирования компьютера
🧠 - Linux на ночь: Как уложить систему спать с помощью systemctl
#Linux_Mastery #ssl #nginx #https #certificates #Linux #security
Привет, укротитель сертификатов!
Браузер постоянно ругается на самоподписанный сертификат? Надоело кликать "Продолжить несмотря на риск"? Создаём свой CA (Certificate Authority - центр сертификации) и забываем про предупреждения навсегда!
🔧 Создаём свой CA:
# mkdir ~/tls && cd ~/tls
# openssl ecparam -out myCA.key -name prime256v1 -genkey
# openssl req -x509 -new -nodes -key myCA.key -sha256 -days 9999 -out myCA.crt
📝 Генерируем сертификат для сервера:
# openssl genrsa -out zabbix.internal.key 2048
# openssl req -new -key zabbix.internal.key -out zabbix.internal.csr
⚙️ Конфиг с альтернативными именами:
# mcedit zabbix.internal.ext
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names
[alt_names]
IP.1 = 172.30.245.222
DNS.1 = zabbix.internal
🚀 Подписываем сертификат:
# openssl x509 -req -in zabbix.internal.csr -CA myCA.crt -CAkey myCA.key \
-CAcreateserial -out zabbix.internal.crt -days 9999 -sha256 -extfile zabbix.internal.ext
🔧 Настройка Nginx:
# mkdir /etc/nginx/certs
# cp zabbix.internal.crt /etc/nginx/certs/.
# cp zabbix.internal.key /etc/nginx/certs/.
# openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
listen 443 http2 ssl;
server_name zabbix.internal 172.30.245.222;
ssl_certificate /etc/nginx/certs/zabbix.internal.crt;
ssl_certificate_key /etc/nginx/certs/zabbix.internal.key;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
💡 Финальный штрих:
Добавь myCA.crt в доверенные корневые сертификаты на клиенте. Всё! Зелёный замок на 27 лет!
____________________
Дополнительный материал:
🧠 - Настройка Ctrl+Alt+Delete в Linux: Перезагрузка или Выключение?
🧠 - GRUB's Got Talent": За кулисами самотестирования компьютера
🧠 - Linux на ночь: Как уложить систему спать с помощью systemctl
#Linux_Mastery #ssl #nginx #https #certificates #Linux #security
Telegram
Linux Skill - Освой Linux c нуля до DevOps
🎛️🔧 "Настройка Ctrl+Alt+Delete в Linux: Перезагрузка или Выключение?" ⌨️🔄
Привет, мастера консоли и поклонники кастомизации! Сегодня мы поговорим о том, как настроить поведение знаменитой комбинации клавиш Ctrl+Alt+Delete в Linux. 🐧🛠️
🎯 Задача: Вы хотите…
Привет, мастера консоли и поклонники кастомизации! Сегодня мы поговорим о том, как настроить поведение знаменитой комбинации клавиш Ctrl+Alt+Delete в Linux. 🐧🛠️
🎯 Задача: Вы хотите…
👍21
💥 Забудь про медленный SCP: NFS-сервер одной командой
Привет, скоростной гонщик!
Копируешь терабайты через SCP и ждёшь часами? NFS быстрее в разы! Держи готовую инструкцию для копипаста — настройка временной шары за 5 минут.
🖥️ На сервере:
Подготовка:
Настройка экспорта:
Запуск:
💻 На клиенте:
🚀 Автомонтирование:
💡 Порт 2049/tcp должен быть открыт!
Теперь копирование файлов летает! По скорости: NFS > HTTP > SMB > SSH > SCP.
________________
Дополнительный материал:
🧠 - Временная спираль Linux: От SysV к Systemd
🧠 - GRUB Rescue Mission: Как восстановить систему из grub rescue>
🧠 - Systemd для начинающих: Первые шаги к мастерству в Linux
#Linux_Mastery #nfs #network #storage #Linux #performance #filesharing
Привет, скоростной гонщик!
Копируешь терабайты через SCP и ждёшь часами? NFS быстрее в разы! Держи готовую инструкцию для копипаста — настройка временной шары за 5 минут.
🖥️ На сервере:
Подготовка:
# mkdir /mnt/nfs
# chown nobody:nogroup /mnt/nfs
# apt install nfs-kernel-server
Настройка экспорта:
# nano /etc/exports
# Для одного IP:
/mnt/nfs 10.20.1.56(rw,all_squash,no_subtree_check,crossmnt)
# Для подсети:
/mnt/nfs 10.20.1.56/24(rw,all_squash,no_subtree_check,crossmnt)
# Для нескольких IP:
/mnt/nfs 10.20.1.56(rw,all_squash,no_subtree_check,crossmnt)
/mnt/nfs 10.20.1.52(rw,all_squash,no_subtree_check,crossmnt)
Запуск:
# systemctl restart nfs-server
💻 На клиенте:
# apt install nfs-common
# Проверка доступности:
# showmount -e 10.20.1.36
# Монтирование:
# mkdir /mnt/nfs
# mount 10.20.1.36:/mnt/nfs /mnt/nfs
# Проверка версии (должна быть v4):
# mount -t nfs4
🚀 Автомонтирование:
# echo "10.20.1.36:/mnt/nfs /mnt/nfs nfs4 defaults 0 0" >> /etc/fstab
💡 Порт 2049/tcp должен быть открыт!
Теперь копирование файлов летает! По скорости: NFS > HTTP > SMB > SSH > SCP.
________________
Дополнительный материал:
🧠 - Временная спираль Linux: От SysV к Systemd
🧠 - GRUB Rescue Mission: Как восстановить систему из grub rescue>
🧠 - Systemd для начинающих: Первые шаги к мастерству в Linux
#Linux_Mastery #nfs #network #storage #Linux #performance #filesharing
Telegram
Linux Skill - Освой Linux c нуля до DevOps
🕰️🐧 "Временная спираль Linux: От SysV к Systemd" 📜✨
Привет, путешественники в истории технологий и хранители Linux-саг! Сегодня мы откроем страницы истории и окунемся в рассказ о трансформации систем инициализации, которая кардинально изменила мир Linux.…
Привет, путешественники в истории технологий и хранители Linux-саг! Сегодня мы откроем страницы истории и окунемся в рассказ о трансформации систем инициализации, которая кардинально изменила мир Linux.…
👍16
🎯 Nginx выдаёт домены по IP? Решение, которое работает
Привет, страж безопасности!
Заметил, что при обращении к серверу по IP адресу Nginx показывает первый попавшийся сайт? Это палит все твои виртуальные хосты. Сейчас покажу элегантное решение, о котором знают немногие.
📌 Стандартная заглушка для HTTP:
С HTTP всё просто. А вот с HTTPS начинаются танцы с бубном...
🔧 Проблема HTTPS:
Без сертификата Nginx использует сертификат первого виртуального хоста. Пользователь видит:
- Предупреждение о несоответствии домена
- Реальное имя твоего сайта в сертификате 😱
💭 Старое решение — сертификат-пустышка:
Домены скрыты, но предупреждение о сертификате остаётся...
🚀 Новое решение — ssl_reject_handshake:
💡 Что происходит:
- Никаких предупреждений о сертификатах
- Мгновенная ошибка соединения
- Полная анонимность виртуальных хостов
Теперь любопытные не узнают, какие сайты крутятся на твоём сервере!
____________________
Дополнительный материал:
🧠 - Linux для продвинутых: Как проверить, использует ли ваша система systemd?
🧠 - Linux Deep Dive: PID 1 и его детище - systemd
🧠 - Linux Command Mastery: Управление службами с помощью systemd
#Linux_Mastery #nginx #webserver #security #ssl #DevOps #angie
Привет, страж безопасности!
Заметил, что при обращении к серверу по IP адресу Nginx показывает первый попавшийся сайт? Это палит все твои виртуальные хосты. Сейчас покажу элегантное решение, о котором знают немногие.
📌 Стандартная заглушка для HTTP:
server {
listen 80 default_server;
server_name _;
return 404;
}
С HTTP всё просто. А вот с HTTPS начинаются танцы с бубном...
🔧 Проблема HTTPS:
Без сертификата Nginx использует сертификат первого виртуального хоста. Пользователь видит:
- Предупреждение о несоответствии домена
- Реальное имя твоего сайта в сертификате 😱
💭 Старое решение — сертификат-пустышка:
# Генерируем самоподписанный сертификат
openssl req -x509 -nodes -days 3650 -newkey rsa:2048 \
-keyout /etc/nginx/certs/nginx.key \
-out /etc/nginx/certs/nginx.crt
server {
listen 443 ssl default_server;
server_name _;
ssl_certificate /etc/nginx/certs/nginx.crt;
ssl_certificate_key /etc/nginx/certs/nginx.key;
return 404;
}
Домены скрыты, но предупреждение о сертификате остаётся...
🚀 Новое решение — ssl_reject_handshake:
server {
listen 80 default_server;
listen 443 ssl default_server;
server_name _;
ssl_reject_handshake on;
return 404;
}
💡 Что происходит:
ssl_reject_handshake on отклоняет SSL-соединение на уровне handshake, если запрос не соответствует server_name. Результат:- Никаких предупреждений о сертификатах
- Мгновенная ошибка соединения
- Полная анонимность виртуальных хостов
Теперь любопытные не узнают, какие сайты крутятся на твоём сервере!
____________________
Дополнительный материал:
🧠 - Linux для продвинутых: Как проверить, использует ли ваша система systemd?
🧠 - Linux Deep Dive: PID 1 и его детище - systemd
🧠 - Linux Command Mastery: Управление службами с помощью systemd
#Linux_Mastery #nginx #webserver #security #ssl #DevOps #angie
Telegram
Linux Skill - Освой Linux c нуля до DevOps
🐧🔧 "Linux для продвинутых: Как проверить, использует ли ваша система systemd?" 🕵️♂️💡
Привет, линуксоиды и системные маги! Сегодня мы погрузимся в увлекательный мир управления службами и разберемся, как проверить, использует ли ваш дистрибутив Linux систему…
Привет, линуксоиды и системные маги! Сегодня мы погрузимся в увлекательный мир управления службами и разберемся, как проверить, использует ли ваш дистрибутив Linux систему…
👍19👀4
⚡ 15 строк кода = полный контроль над производительностью
Эй, повелитель серверов!
Надоело переключаться между htop, df и free? Сейчас соберём свой монитор системы, который покажет всё важное одной командой. Bash + Python = твоя личная панель управления.
📌 Что получишь:
- CPU, RAM и диск в одном месте
- JSON-формат для интеграции
- Легко расширить под свои нужды
🔧 Шаг 1: Python-сборщик данных
Создай
🔧 Шаг 2: Bash-обработчик
Создай
🚀 Запускаем:
Результат:
💡 Прокачай скрипт:
- Добавь алерты при превышении порогов
- Логируй данные для графиков
- Отправляй метрики в Telegram при критических значениях
Теперь один скрипт заменяет кучу утилит. А главное — ты можешь допилить его под свои задачи!
____________________
Дополнительный материал:
🧠 - Мастер-класс по выключению и перезагрузке Linux с помощью команды shutdown
🧠 - Прозрачность systemd: Освещаем теневые уголки системных процессов в Linux
🧠 - Управление питанием в Linux: Искусство выключения с помощью systemctl
#Linux_Mastery #Linux #Monitoring #Python #Bash #DevOps #Performance
Эй, повелитель серверов!
Надоело переключаться между htop, df и free? Сейчас соберём свой монитор системы, который покажет всё важное одной командой. Bash + Python = твоя личная панель управления.
📌 Что получишь:
- CPU, RAM и диск в одном месте
- JSON-формат для интеграции
- Легко расширить под свои нужды
🔧 Шаг 1: Python-сборщик данных
Создай
monitor.py:import psutil
import json
def get_system_stats():
stats = {
"cpu": psutil.cpu_percent(interval=1),
"memory": psutil.virtual_memory().percent,
"disk": psutil.disk_usage('/').percent
}
return json.dumps(stats)
if __name__ == "__main__":
print(get_system_stats())
🔧 Шаг 2: Bash-обработчик
Создай
monitor.sh:#!/bin/bash
# Получаем данные от Python
stats=$(python3 monitor.py)
# Парсим JSON через jq
cpu=$(echo $stats | jq -r '.cpu')
memory=$(echo $stats | jq -r '.memory')
disk=$(echo $stats | jq -r '.disk')
# Красивый вывод
echo "CPU Usage: $cpu%"
echo "Memory Usage: $memory%"
echo "Disk Usage: $disk%"
🚀 Запускаем:
# Делаем исполняемым
chmod +x monitor.sh
# Смотрим магию
./monitor.sh
Результат:
CPU Usage: 12.3%
Memory Usage: 45.6%
Disk Usage: 67.8%
💡 Прокачай скрипт:
- Добавь алерты при превышении порогов
- Логируй данные для графиков
- Отправляй метрики в Telegram при критических значениях
Теперь один скрипт заменяет кучу утилит. А главное — ты можешь допилить его под свои задачи!
____________________
Дополнительный материал:
🧠 - Мастер-класс по выключению и перезагрузке Linux с помощью команды shutdown
🧠 - Прозрачность systemd: Освещаем теневые уголки системных процессов в Linux
🧠 - Управление питанием в Linux: Искусство выключения с помощью systemctl
#Linux_Mastery #Linux #Monitoring #Python #Bash #DevOps #Performance
Telegram
Linux Skill - Освой Linux c нуля до DevOps
🌙⏲️ "Мастер-класс по выключению и перезагрузке Linux с помощью команды shutdown" 💤🖥️
Привет, ночные стражи цифрового мира и дневные планировщики задач! Сегодня мы погрузимся в управление системой Linux и научимся использовать команду shutdown для выключения…
Привет, ночные стражи цифрового мира и дневные планировщики задач! Сегодня мы погрузимся в управление системой Linux и научимся использовать команду shutdown для выключения…
🔥8👍6
🔥 SSH забивает вывод? Вот как отладить сеть через tcpdump
Привет, сетевой детектив!
Знакомо? Запускаешь tcpdump для отладки, а SSH-трафик забивает весь экран. Сейчас покажу мою шпаргалку — только те команды, которые реально использую. Без воды, только практика.
📌 С чего начать:
Список интерфейсов:
Базовый перехват:
🔧 Главный лайфхак — исключаем SSH:
📡 Фильтруем по адресам:
🎯 Работа с протоколами:
💡 Реальный пример из жизни:
Отладка SIP-трафика через VPN:
🚀 Про-совет:
Большой поток? Сохраняй в файл:
Что искать в выводе:
Читается: IP источник.порт > получатель.порт
Вот и всё! Этих команд хватает для 90% задач. tcpdump выглядит страшно, но на деле нужно только видеть, откуда и куда идут пакеты.
____________________
Дополнительный материал:
🧠 - Linux Systemd: Искусство мониторинга служб
🧠 - Linux Systemd: Мастер-класс по управлению службами
🧠 - Linux Systemd: Как стать магистром служб
#Linux_Mastery #network #tcpdump #Linux #DevOps #networking #debug
Привет, сетевой детектив!
Знакомо? Запускаешь tcpdump для отладки, а SSH-трафик забивает весь экран. Сейчас покажу мою шпаргалку — только те команды, которые реально использую. Без воды, только практика.
📌 С чего начать:
Список интерфейсов:
# Посмотреть доступные интерфейсы
tcpdump -D
Базовый перехват:
# Все интерфейсы без резолва имён (-nn это важно!)
tcpdump -nn -i any
# Конкретный интерфейс
tcpdump -nn -i ens3
🔧 Главный лайфхак — исключаем SSH:
# SSH забивает вывод? Исключаем порт 22
tcpdump -nn -i any port not 22
📡 Фильтруем по адресам:
# Трафик к конкретному адресу
tcpdump -nn dst 8.8.8.8
# К нескольким адресам
tcpdump -nn dst 8.8.8.8 or dst 8.8.4.4
# Комбо: адрес + порт
tcpdump -nn dst 8.8.8.8 and port 53
🎯 Работа с протоколами:
# Только ARP
tcpdump arp -nn -i any
# Всё, кроме ARP
tcpdump not arp -nn -i any
# Исключаем несколько протоколов
tcpdump not arp and not icmp -nn -i any
💡 Реальный пример из жизни:
Отладка SIP-трафика через VPN:
tcpdump -nn -i tun4 src 10.1.4.23 and dst 10.1.3.205 and port 5060
🚀 Про-совет:
Большой поток? Сохраняй в файл:
tcpdump -nn -i any > ~/tcpdump.txt
Что искать в выводе:
IP 10.8.2.2.13083 > 10.8.2.3.8118
Читается: IP источник.порт > получатель.порт
Вот и всё! Этих команд хватает для 90% задач. tcpdump выглядит страшно, но на деле нужно только видеть, откуда и куда идут пакеты.
____________________
Дополнительный материал:
🧠 - Linux Systemd: Искусство мониторинга служб
🧠 - Linux Systemd: Мастер-класс по управлению службами
🧠 - Linux Systemd: Как стать магистром служб
#Linux_Mastery #network #tcpdump #Linux #DevOps #networking #debug
Telegram
Linux Skill - Освой Linux c нуля до DevOps
🔍🐧 "Linux Systemd: Искусство мониторинга служб" 🚦💡
Привет, поклонники Linux и мастера системного мониторинга! Сегодня мы погрузимся в мир systemd, чтобы научиться определять состояние служб, которые являются жизненно важными компонентами наших систем. 🖥️🛠️…
Привет, поклонники Linux и мастера системного мониторинга! Сегодня мы погрузимся в мир systemd, чтобы научиться определять состояние служб, которые являются жизненно важными компонентами наших систем. 🖥️🛠️…
👍22👎1
🔥 20 Docker-команд = 90% всех задач. Проверено!
Эй, контейнерный кудесник!
Накопил за годы работы идеальный набор Docker-команд. Никакой воды — только то, что использую каждый день. Сохраняй и забудь про поиски в документации!
🚀 Быстрый старт:
📦 Управление контейнерами:
Запуск с автостартом:
Просмотр контейнеров:
Удаление:
Массовые операции:
🖼️ Работа с образами:
🔍 Отладка и мониторинг:
Войти в контейнер:
Логи:
Мониторинг ресурсов:
Процессы в контейнере:
🛠️ Продвинутые команды:
Детальная информация:
Управление местом:
Копирование файлов:
Экспорт контейнера:
📚 Бонус — полезные темы:
🔧 Инструменты: Portainer, ctop, cdebug
🛡️ Безопасность: Trivy, Dockle, CIS рекомендации
📊 Мониторинг: Zabbix, Prometheus
🗃️ Бэкапы: docker-volume-backup
Теперь у тебя есть всё для работы с Docker. Эти команды покрывают 90% повседневных задач!
____________________
Дополнительный материал:
🧠 - Открытый мир Linux: Сокровищница инструментов для системных администраторов
🧠 - Стартуйте в IT с Бесплатным курсом по Linux: от Нуля до DevOps
🧠 - От /etc/passwd к централизованному управлению: Как Linux трансформировал учетные записи
#Linux_Mastery #docker #DevOps #containers #Linux #подборка #automation
Эй, контейнерный кудесник!
Накопил за годы работы идеальный набор Docker-команд. Никакой воды — только то, что использую каждый день. Сохраняй и забудь про поиски в документации!
🚀 Быстрый старт:
# Установка одной строкой
curl -o - https://get.docker.com | bash -
📦 Управление контейнерами:
Запуск с автостартом:
docker run -d -p 80:80 --restart always --name nginx-proxy nginx
Просмотр контейнеров:
docker ps # запущенные
docker ps -a # все
Удаление:
docker rm nginx-proxy # остановленный
docker rm -f nginx-proxy # принудительно
Массовые операции:
# Остановить все
docker stop $(docker ps -a -q)
# Удалить все
docker rm $(docker ps -a -q)
🖼️ Работа с образами:
docker images # список
docker rmi nginx # удалить один
docker rmi $(docker images -a -q) # удалить все
🔍 Отладка и мониторинг:
Войти в контейнер:
docker exec -it nginx-proxy bash
Логи:
docker logs nginx-proxy # все логи
docker logs -n 100 nginx-proxy # последние 100 строк
docker logs -f nginx-proxy # следить в реальном времени
Мониторинг ресурсов:
docker stats nginx-proxy
docker stats --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}"
Процессы в контейнере:
docker top nginx-proxy
🛠️ Продвинутые команды:
Детальная информация:
docker inspect nginx-proxy
docker inspect -f '{{ .NetworkSettings.Networks.bridge.IPAddress }}' nginx-proxy
docker inspect --format '{{json .Mounts}}' grafana | jq .
Управление местом:
docker system df # занятое место
docker system prune # очистка
Копирование файлов:
# Из контейнера
docker cp nginx-proxy:/etc/nginx/nginx.conf ~/nginx
# В контейнер
docker cp ~/nginx/nginx.conf nginx-proxy:/etc/nginx
Экспорт контейнера:
docker export nginx-proxy -o ~/nginx-proxy.tar.gz
📚 Бонус — полезные темы:
🔧 Инструменты: Portainer, ctop, cdebug
🛡️ Безопасность: Trivy, Dockle, CIS рекомендации
📊 Мониторинг: Zabbix, Prometheus
🗃️ Бэкапы: docker-volume-backup
Теперь у тебя есть всё для работы с Docker. Эти команды покрывают 90% повседневных задач!
____________________
Дополнительный материал:
🧠 - Открытый мир Linux: Сокровищница инструментов для системных администраторов
🧠 - Стартуйте в IT с Бесплатным курсом по Linux: от Нуля до DevOps
🧠 - От /etc/passwd к централизованному управлению: Как Linux трансформировал учетные записи
#Linux_Mastery #docker #DevOps #containers #Linux #подборка #automation
Telegram
Linux Skill - Освой Linux c нуля до DevOps
🌟🐧 ""Открытый мир Linux: Сокровищница инструментов для системных администраторов"" 🛠️💼
Привет, мастера системного администрирования и поклонники Linux! Сегодня хотим поделиться с вами впечатляющим списком open source инструментов, которые заслуживают вашего…
Привет, мастера системного администрирования и поклонники Linux! Сегодня хотим поделиться с вами впечатляющим списком open source инструментов, которые заслуживают вашего…
👍12
💾 Невидимые файлы съели весь диск? Вот решение
Привет, спасатель серверов!
Знакомо: df кричит "100% занято", а найти виновника не можешь? Держи шпаргалку для экстренных ситуаций — все команды проверены в боевых условиях.
Базовая диагностика
Смотрим общую картину:
Ищем самые прожорливые директории:
Проверка inodes
Иногда место есть, но закончились inodes:
Охота на файлы-призраки
Ситуация: du показывает мало занятого места, но df говорит "диск полный". Причина — удалённые файлы, которые держит процесс:
Нашли большие deleted-файлы? Перезапусти службу или убей процесс через
Ловушка с точками монтирования
Хитрый случай: скрипт должен был писать в смонтированный диск
Как проверить:
1. Отмонтируй диск временно
2. Загляни в директорию
3. Удали мусор
4. Примонтируй обратно
Профилактика: всегда проверяй успешность монтирования перед записью данных в скриптах.
💡 Итог: 90% проблем с местом решаются этими командами. Сохрани и используй при первых признаках "disk full".
____________________
Дополнительный материал:
🧠 - Осваиваем RAID Массивы в Linux: Путь к Надежности и Производительности
🧠 - История OpenSUSE: От Зеленого Ящерика к Глобальному Сообществу
🧠 - Разблокируем секреты Linux: Специальные разрешения файлов
#Linux_Mastery #bash #terminal #linux #sysadmin #troubleshooting #storage
Привет, спасатель серверов!
Знакомо: df кричит "100% занято", а найти виновника не можешь? Держи шпаргалку для экстренных ситуаций — все команды проверены в боевых условиях.
Базовая диагностика
Смотрим общую картину:
# df -h
Ищем самые прожорливые директории:
# du -h -d 1 / | sort -hr
# du -hs /* | sort -hr
# Ограничиваем вывод топ-10
# du -h -d 1 / | sort -hr | head -10
# Топ-20 самых больших директорий
# du -hcx --max-depth=6 / | sort -rh | head -n 20
# Топ-20 самых больших файлов
# find / -mount -ignore_readdir_race -type f -exec du -h "{}" + 2>&1 \
> | sort -rh | head -n 20
Проверка inodes
Иногда место есть, но закончились inodes:
# df -ih
Охота на файлы-призраки
Ситуация: du показывает мало занятого места, но df говорит "диск полный". Причина — удалённые файлы, которые держит процесс:
# lsof | grep '(deleted)'
# lsof +L1
Нашли большие deleted-файлы? Перезапусти службу или убей процесс через
kill -9 <pid>.Ловушка с точками монтирования
Хитрый случай: скрипт должен был писать в смонтированный диск
/mnt/backup, но диск не подключился. Файлы записались в локальную систему и теперь скрыты под точкой монтирования!Как проверить:
1. Отмонтируй диск временно
2. Загляни в директорию
3. Удали мусор
4. Примонтируй обратно
Профилактика: всегда проверяй успешность монтирования перед записью данных в скриптах.
💡 Итог: 90% проблем с местом решаются этими командами. Сохрани и используй при первых признаках "disk full".
____________________
Дополнительный материал:
🧠 - Осваиваем RAID Массивы в Linux: Путь к Надежности и Производительности
🧠 - История OpenSUSE: От Зеленого Ящерика к Глобальному Сообществу
🧠 - Разблокируем секреты Linux: Специальные разрешения файлов
#Linux_Mastery #bash #terminal #linux #sysadmin #troubleshooting #storage
Telegram
Linux Skill - Освой Linux c нуля до DevOps
🔧💾 Осваиваем RAID Массивы в Linux: Путь к Надежности и Производительности! 💾🔧
Привет, энтузиасты Linux и защитники данных! Сегодня мы погрузимся в мир RAID массивов, которые являются ключевым элементом для обеспечения надежности и производительности ваших…
Привет, энтузиасты Linux и защитники данных! Сегодня мы погрузимся в мир RAID массивов, которые являются ключевым элементом для обеспечения надежности и производительности ваших…
🔥12👍8
🚀 Забудь про SCP! Вот как передавать файлы в 10 раз быстрее
Привет, повелитель скорости!
Устал ждать, пока SCP докачает твои гигабайты? NFS обгоняет SSH, SMB и HTTP по скорости передачи. Вот готовая шпаргалка — копипасть и используй.
Настройка NFS сервера
Создаём директорию для шары:
Ставим NFS сервер:
Настраиваем экспорт в
Перезапускаем и проверяем:
💡 Важно: открой TCP порт 2049 в файрволе!
Настройка клиента
Ставим клиентский пакет:
Проверяем доступность сервера:
Монтируем шару:
Проверяем результат:
Тестируем запись:
Для постоянного монтирования добавь в
Результат: максимальная скорость передачи файлов между серверами. Особенно выручает для временных задач — поднял, скопировал, удалил.
____________________
Дополнительный материал:
🧠 - Путешествие во Времени: От ext до ext4 - Эволюция Файловых Систем Linux
🧠 - Linux Mastery: Организация файлов и каталогов
🧠 - Как пентестеры взломали ИТ-компанию через сайт уролога и Роскомнадзор
#Linux_Mastery #fileserver #nfs #linux #sysadmin #devops #performance
Привет, повелитель скорости!
Устал ждать, пока SCP докачает твои гигабайты? NFS обгоняет SSH, SMB и HTTP по скорости передачи. Вот готовая шпаргалка — копипасть и используй.
Настройка NFS сервера
Создаём директорию для шары:
# mkdir /mnt/nfs
# chown nobody:nogroup /mnt/nfs
Ставим NFS сервер:
# apt install nfs-kernel-server
Настраиваем экспорт в
/etc/exports:# Для одного IP
/mnt/nfs 10.20.1.56(rw,all_squash,no_subtree_check,crossmnt)
# Для подсети
/mnt/nfs 10.20.1.56/24(rw,all_squash,no_subtree_check,crossmnt)
# Для нескольких IP (каждый в своей строке)
/mnt/nfs 10.20.1.56(rw,all_squash,no_subtree_check,crossmnt)
/mnt/nfs 10.20.1.52(rw,all_squash,no_subtree_check,crossmnt)
Перезапускаем и проверяем:
# systemctl restart nfs-server
# systemctl status nfs-server
💡 Важно: открой TCP порт 2049 в файрволе!
Настройка клиента
Ставим клиентский пакет:
# apt install nfs-common
Проверяем доступность сервера:
# showmount -e 10.20.1.36
Export list for 10.20.1.36:
/mnt/nfs 10.20.1.56
Монтируем шару:
# mkdir /mnt/nfs
# mount 10.20.1.36:/mnt/nfs /mnt/nfs
Проверяем результат:
# df -h | grep nfs
10.20.1.36:/mnt/nfs 48G 3.2G 43G 7% /mnt/nfs
# Смотрим версию протокола (должна быть v4)
# mount -t nfs4
Тестируем запись:
# echo "test" > /mnt/nfs/testfile
Для постоянного монтирования добавь в
/etc/fstab:10.20.1.36:/mnt/nfs /mnt/nfs nfs4 defaults 0 0
Результат: максимальная скорость передачи файлов между серверами. Особенно выручает для временных задач — поднял, скопировал, удалил.
____________________
Дополнительный материал:
🧠 - Путешествие во Времени: От ext до ext4 - Эволюция Файловых Систем Linux
🧠 - Linux Mastery: Организация файлов и каталогов
🧠 - Как пентестеры взломали ИТ-компанию через сайт уролога и Роскомнадзор
#Linux_Mastery #fileserver #nfs #linux #sysadmin #devops #performance
Telegram
Linux Skill - Освой Linux c нуля до DevOps
#short_story
📚💾 Путешествие во Времени: От ext до ext4 - Эволюция Файловых Систем Linux! 🚀🌌
Привет, путешественники в мире Linux и хранители данных! Сегодня я хочу поделиться с вами увлекательной историей о том, как файловая система ext преобразовалась,…
📚💾 Путешествие во Времени: От ext до ext4 - Эволюция Файловых Систем Linux! 🚀🌌
Привет, путешественники в мире Linux и хранители данных! Сегодня я хочу поделиться с вами увлекательной историей о том, как файловая система ext преобразовалась,…
👍12
🎯 Почему твой Nmap работает медленно: трюки ускорения
Эй, сканер сетей!
Устал ждать, пока Nmap просканирует сеть? Я тоже постоянно забываю нужные ключи и лезу в заметки. Собрал рабочую шпаргалку с трюками ускорения — сохраняй и используй.
Базовое сканирование
Быстрый скан портов до 1024:
Полное сканирование всех 65535 портов:
Скан хоста, игнорирующего ping:
Техники сканирования
Поиск живых хостов
Обнаружение без сканирования портов:
ARP-сканирование в локалке (в разы быстрее!):
Просто список IP без проверки:
Определение сервисов
Быстрая проверка версий (1 порт = 1 строка):
Полный анализ (ОС, версии, скрипты, traceroute):
🚀 Трюк для ускорения в 10 раз
Вместо долгого полного сканирования — сначала найди открытые порты, потом анализируй только их:
Использование:
Скорость сканирования
💡 Совет: в локальной сети смело используй
Итог: правильные ключи = экономия времени. Особенно скрипт с двухэтапным сканированием — реально ускоряет работу в разы.
____________________
Дополнительный материал:
🧠 - Путешествие по Виртуальным Интерфейсам и Канальному Уровню в Linux: От Туннелей до Мостов
🧠 - История AppArmor: Как Linux Стал Крепостью Безопасности
🧠 - Linux Mastery: Быстрое создание пакетов файлов для тестирования
#Linux_Mastery #nmap #security #pentesting #networking #linux
Эй, сканер сетей!
Устал ждать, пока Nmap просканирует сеть? Я тоже постоянно забываю нужные ключи и лезу в заметки. Собрал рабочую шпаргалку с трюками ускорения — сохраняй и используй.
Базовое сканирование
Быстрый скан портов до 1024:
nmap 192.168.1.1
nmap 192.168.1.1 192.168.2.1
nmap 192.168.1.1-254
nmap 192.168.1.0/24
Полное сканирование всех 65535 портов:
nmap 192.168.1.1 -p-
Скан хоста, игнорирующего ping:
nmap 192.168.1.1 -Pn
Техники сканирования
nmap 192.168.1.1 -sS # TCP SYN (по умолчанию)
nmap 192.168.1.1 -sT # TCP connect
nmap 192.168.1.1 -sU # UDP сканирование
# Полное TCP+UDP (очень долго!)
nmap 192.168.1.1 -sS -sU -p-
Поиск живых хостов
Обнаружение без сканирования портов:
nmap 192.168.1.1/24 -sn
ARP-сканирование в локалке (в разы быстрее!):
nmap 192.168.1.1/24 -PR
Просто список IP без проверки:
nmap 192.168.1.1-15 -sL
Определение сервисов
Быстрая проверка версий (1 порт = 1 строка):
nmap 192.168.1.1 -sV
Полный анализ (ОС, версии, скрипты, traceroute):
nmap 192.168.1.1 -A
🚀 Трюк для ускорения в 10 раз
Вместо долгого полного сканирования — сначала найди открытые порты, потом анализируй только их:
#!/bin/bash
ports=$(nmap -p- --min-rate=500 $1 | grep ^[0-9] | cut -d '/' -f 1 | tr '\n' ',' | sed s/,$//)
nmap -p$ports -A $1
Использование:
./nmap.sh 192.168.1.1
Скорость сканирования
-T0 # paranoid (паранойдный)
-T1 # sneaky (хитрый)
-T2 # polite (вежливый)
-T3 # normal (обычный, по умолчанию)
-T4 # aggressive (для локалки)
-T5 # insane (безумный)
💡 Совет: в локальной сети смело используй
-T4, для внешних хостов — -T3 или ниже.Итог: правильные ключи = экономия времени. Особенно скрипт с двухэтапным сканированием — реально ускоряет работу в разы.
____________________
Дополнительный материал:
🧠 - Путешествие по Виртуальным Интерфейсам и Канальному Уровню в Linux: От Туннелей до Мостов
🧠 - История AppArmor: Как Linux Стал Крепостью Безопасности
🧠 - Linux Mastery: Быстрое создание пакетов файлов для тестирования
#Linux_Mastery #nmap #security #pentesting #networking #linux
Telegram
Linux Skill - Освой Linux c нуля до DevOps
🌉🔗 Путешествие по Виртуальным Интерфейсам и Канальному Уровню в Linux: От Туннелей до Мостов! 🚀🛤️
Привет, поклонники Linux и архитекторы сетей! Сегодня мы окунемся в мир виртуальных интерфейсов и канального уровня в Linux. Это руководство раскроет вам секреты…
Привет, поклонники Linux и архитекторы сетей! Сегодня мы окунемся в мир виртуальных интерфейсов и канального уровня в Linux. Это руководство раскроет вам секреты…
👍15🔥3
📊 Мониторинг без боли: Prometheus + Grafana одной командой
Привет, строитель мониторинга!
Prometheus проще Zabbix'а в разы — никаких агентов, баз данных, сложных конфигов. 10 минут и у тебя работающий мониторинг с красивыми графиками. Держи готовую шпаргалку.
Установка Docker
Подготовка файлов
Docker-compose конфиг
Создай файл
Конфиг Prometheus
Создай файл
Запуск всего стека
Настройка Grafana
1. Открой
2. Логин:
3. Connections → Data sources → Add Prometheus
4. URL:
5. Dashboards → New → Import
6. Введи ID:
Добавление удалённого сервера
На удалённом сервере запусти exporter:
Добавь в
Перезапусти:
💡 Результат: полноценный мониторинг с графиками CPU, RAM, диска, сети. Всё за 10 минут без танцев с бубном!
❗️ Важно: в проде закрой порты файрволом — оставь доступ только нужным IP.
____________________
Дополнительный материал:
🧠 - Мастерство Управления Правами в Linux: От Новичка до Профи
🧠 - Максимизируйте безопасность с минимальными разрешениями в Linux
🧠 - От Slackware до Pacman: Путешествие Систем Управления Пакетами в Linux
#Linux_Mastery #мониторинг #prometheus #devops #grafana #docker
Привет, строитель мониторинга!
Prometheus проще Zabbix'а в разы — никаких агентов, баз данных, сложных конфигов. 10 минут и у тебя работающий мониторинг с красивыми графиками. Держи готовую шпаргалку.
Установка Docker
# curl https://get.docker.com | bash -
Подготовка файлов
# mkdir ~/prometheus && cd ~/prometheus
# touch docker-compose.yml
Docker-compose конфиг
Создай файл
docker-compose.yml:version: '3.9'
networks:
monitoring:
driver: bridge
volumes:
prometheus_data: {}
services:
prometheus:
image: prom/prometheus:latest
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
- prometheus_data:/prometheus
container_name: prometheus
hostname: prometheus
command:
- '--config.file=/etc/prometheus/prometheus.yml'
- '--storage.tsdb.path=/prometheus'
expose:
- 9090
restart: unless-stopped
environment:
TZ: "Europe/Moscow"
networks:
- monitoring
node-exporter:
image: prom/node-exporter
volumes:
- /proc:/host/proc:ro
- /sys:/host/sys:ro
- /:/rootfs:ro
container_name: exporter
hostname: exporter
command:
- '--path.procfs=/host/proc'
- '--path.rootfs=/rootfs'
- '--path.sysfs=/host/sys'
- '--collector.filesystem.mount-points-exclude=^/(sys|proc|dev|host|etc)($$|/)'
expose:
- 9100
restart: unless-stopped
environment:
TZ: "Europe/Moscow"
networks:
- monitoring
grafana:
image: grafana/grafana
user: root
depends_on:
- prometheus
ports:
- 3000:3000
volumes:
- ./grafana:/var/lib/grafana
- ./grafana/provisioning/:/etc/grafana/provisioning/
container_name: grafana
hostname: grafana
restart: unless-stopped
environment:
TZ: "Europe/Moscow"
networks:
- monitoring
Конфиг Prometheus
Создай файл
prometheus.yml:scrape_configs:
- job_name: 'prometheus'
scrape_interval: 5s
scrape_timeout: 5s
static_configs:
- targets: ['localhost:9090']
- job_name: 'node-local'
scrape_interval: 5s
static_configs:
- targets: ['node-exporter:9100']
Запуск всего стека
# docker-compose up -d
Настройка Grafana
1. Открой
https://твой-ip:30002. Логин:
admin / admin3. Connections → Data sources → Add Prometheus
4. URL:
https://prometheus:90905. Dashboards → New → Import
6. Введи ID:
1860 (готовый дашборд для Node Exporter)Добавление удалённого сервера
На удалённом сервере запусти exporter:
# docker run -d --net="host" --pid="host" -v "/:/host:ro,rslave" \
prom/node-exporter:latest --path.rootfs=/host
# Проверка
# ss -tulnp | grep 9100
Добавь в
prometheus.yml:- job_name: 'node-remote'
scrape_interval: 5s
static_configs:
- targets: ['10.20.1.56:9100']
Перезапусти:
# docker compose restart
💡 Результат: полноценный мониторинг с графиками CPU, RAM, диска, сети. Всё за 10 минут без танцев с бубном!
❗️ Важно: в проде закрой порты файрволом — оставь доступ только нужным IP.
____________________
Дополнительный материал:
🧠 - Мастерство Управления Правами в Linux: От Новичка до Профи
🧠 - Максимизируйте безопасность с минимальными разрешениями в Linux
🧠 - От Slackware до Pacman: Путешествие Систем Управления Пакетами в Linux
#Linux_Mastery #мониторинг #prometheus #devops #grafana #docker
Telegram
Linux Skill - Освой Linux c нуля до DevOps
🔑🛡️ Мастерство Управления Правами в Linux: От Новичка до Профи! 🛡️🔑
Привет, энтузиасты Linux и защитники цифрового мира! Сегодня мы погрузимся в основы управления правами в Linux. Это руководство раскроет вам все о виде прав, как их изменять, особенности…
Привет, энтузиасты Linux и защитники цифрового мира! Сегодня мы погрузимся в основы управления правами в Linux. Это руководство раскроет вам все о виде прав, как их изменять, особенности…
👍10🔥3
🐳 Почему ты не можешь просто скопировать файл из Docker образа
Привет, укротитель контейнеров!
Знакомая боль: нужен один файл из Docker образа, но запускать контейнер не хочется. Docker почему-то не даёт простого решения. Рассказываю рабочий способ и показываю инструмент для анализа образов.
Извлекаем файл из образа
Скачиваем образ и создаём контейнер БЕЗ запуска:
Теперь копируем нужный файл:
Или выгружаем весь образ:
Dive — рентген для образов
Утилита показывает слои образа и что в каждом слое изменилось. Запускаем прямо в Docker:
Создаём alias для удобства:
Теперь просто:
Проверка раздутости образа
Вместо
Dive покажет:
- Размер каждого слоя
- Что добавилось/удалилось
- Efficiency Score образа
- Wasted Space (лишнее место)
💡 Фишка: встрой проверку в CI/CD — автоматически отлавливай неоптимальные образы.
Итог: Docker создан для изоляции, поэтому прямого доступа к файлам нет. Но способы есть — используй их правильно.
____________________
Дополнительный материал:
🧠 - Linux Essentials: Понимание относительных и абсолютных путей к файлам
🧠 - Открытие Rancher: Путешествие от Стартапа до Лидера в Контейнеризации
🧠 - Осваиваем Docker: Искусство Сборки Образов и Управления Сетью
#Linux_Mastery #docker #devops #containers #optimization
Привет, укротитель контейнеров!
Знакомая боль: нужен один файл из Docker образа, но запускать контейнер не хочется. Docker почему-то не даёт простого решения. Рассказываю рабочий способ и показываю инструмент для анализа образов.
Извлекаем файл из образа
Скачиваем образ и создаём контейнер БЕЗ запуска:
# docker pull nginx:latest
# docker create --name nginx nginx:latest
Теперь копируем нужный файл:
# docker cp nginx:/docker-entrypoint.d/30-tune-worker-processes.sh ~/
Или выгружаем весь образ:
# docker export nginx -o ~/nginx-docker.tar.gz
Dive — рентген для образов
Утилита показывает слои образа и что в каждом слое изменилось. Запускаем прямо в Docker:
# docker run -ti --rm -v /var/run/docker.sock:/var/run/docker.sock \
wagoodman/dive nginx:latest
Создаём alias для удобства:
alias dive="docker run -ti --rm -v /var/run/docker.sock:/var/run/docker.sock wagoodman/dive"
Теперь просто:
# dive nginx:latest
Проверка раздутости образа
Вместо
docker build используй dive build — получишь анализ эффективности сборки:# dive build -t myapp:latest .
Dive покажет:
- Размер каждого слоя
- Что добавилось/удалилось
- Efficiency Score образа
- Wasted Space (лишнее место)
💡 Фишка: встрой проверку в CI/CD — автоматически отлавливай неоптимальные образы.
Итог: Docker создан для изоляции, поэтому прямого доступа к файлам нет. Но способы есть — используй их правильно.
____________________
Дополнительный материал:
🧠 - Linux Essentials: Понимание относительных и абсолютных путей к файлам
🧠 - Открытие Rancher: Путешествие от Стартапа до Лидера в Контейнеризации
🧠 - Осваиваем Docker: Искусство Сборки Образов и Управления Сетью
#Linux_Mastery #docker #devops #containers #optimization
Telegram
Linux Skill - Освой Linux c нуля до DevOps
🚀🐧 Linux Essentials: Понимание относительных и абсолютных путей к файлам! 🗂️🔍
Привет, исследователи Linux и мастера файловой системы! Сегодня мы разберемся в одной из фундаментальных концепций Linux - относительных и абсолютных путях к файлам. Это знание…
Привет, исследователи Linux и мастера файловой системы! Сегодня мы разберемся в одной из фундаментальных концепций Linux - относительных и абсолютных путях к файлам. Это знание…
👍15
🔐 Забудь про Nginx для тестов: вот решение проще
Эй, мастер быстрых решений!
Знаешь трюк с HTTP сервером на Python для передачи файлов? А что если нужен HTTPS для тестов, но лень возиться с Nginx? Показываю способ поднять защищённый сервер за минуту.
Классика для HTTP
## Апгрейд до HTTPS
Генерируем самоподписный сертификат:
Создаём файл
Запускаем HTTPS сервер:
Проверяем:
Что получаем:
- Полноценный HTTPS сервер для тестов
- Файловый браузер по умолчанию
- Или веб-страница, если есть index.html
- Никаких конфигов и лишней возни
💡 Где пригодится:
- Тестирование приложений, требующих HTTPS
- Быстрая передача файлов по защищённому каналу
- Временный сервер для демо
- Проверка SSL/TLS настроек
Совет: сохрани скрипт в
____________________
Дополнительный материал:
🧠 - Открываем тайны Linux: Почему скрыть файлы от пользователя root невозможно?
🧠 - Как Создать Идеальный Dockerfile: Секреты Эффективности и Лаконичности
🧠 - Ускоряем YouTube и обходим блокировки на Linux: Ваше руководство
#Linux_Mastery #webserver #python #https #quickfix #sysadmin
Эй, мастер быстрых решений!
Знаешь трюк с HTTP сервером на Python для передачи файлов? А что если нужен HTTPS для тестов, но лень возиться с Nginx? Показываю способ поднять защищённый сервер за минуту.
Классика для HTTP
# python3 -m http.server 8000
## Апгрейд до HTTPS
Генерируем самоподписный сертификат:
# openssl req -new -x509 -keyout localhost.pem -out localhost.pem -days 365 -nodes
Создаём файл
webserver.py:import http.server, ssl
server_address = ('172.20.0.210', 8000)
httpd = http.server.HTTPServer(server_address, http.server.SimpleHTTPRequestHandler)
httpd.socket = ssl.wrap_socket(httpd.socket,server_side=True,certfile='localhost.pem',ssl_version=ssl.PROTOCOL_TLSv1_2)
httpd.serve_forever()
Запускаем HTTPS сервер:
# python3 webserver.py
Проверяем:
# Открываем в браузере
https://172.20.0.210:8000
Что получаем:
- Полноценный HTTPS сервер для тестов
- Файловый браузер по умолчанию
- Или веб-страница, если есть index.html
- Никаких конфигов и лишней возни
💡 Где пригодится:
- Тестирование приложений, требующих HTTPS
- Быстрая передача файлов по защищённому каналу
- Временный сервер для демо
- Проверка SSL/TLS настроек
Совет: сохрани скрипт в
/usr/local/bin/ и используй как команду для быстрого запуска HTTPS где угодно.____________________
Дополнительный материал:
🧠 - Открываем тайны Linux: Почему скрыть файлы от пользователя root невозможно?
🧠 - Как Создать Идеальный Dockerfile: Секреты Эффективности и Лаконичности
🧠 - Ускоряем YouTube и обходим блокировки на Linux: Ваше руководство
#Linux_Mastery #webserver #python #https #quickfix #sysadmin
Telegram
Linux Skill - Освой Linux c нуля до DevOps
#Linux_Mastery
🚀🐧 Открываем тайны Linux: Почему скрыть файлы от пользователя root невозможно? 🛡️🔍
Привет, исследователи Linux и стражи цифровой безопасности! Сегодня мы раскроем одну из самых интересных особенностей Linux - почему невозможно скрыть файлы…
🚀🐧 Открываем тайны Linux: Почему скрыть файлы от пользователя root невозможно? 🛡️🔍
Привет, исследователи Linux и стражи цифровой безопасности! Сегодня мы раскроем одну из самых интересных особенностей Linux - почему невозможно скрыть файлы…
👍14🔥3
🔍 Как объединить логи всех контейнеров в одном месте
Привет, укротитель логов!
Вчера в комментах подсказали инструмент logdy — теперь смотрю все логи через браузер. Один бинарник, никаких зависимостей. Показываю все режимы работы.
Установка за 10 секунд
## Простой режим — один лог
Или так:
Открывай
Логи Docker контейнера
Объединение нескольких контейнеров
Запускаем logdy в режиме сокетов:
Направляем логи каждого контейнера:
Теперь все логи в одном интерфейсе с фильтрацией по источнику!
Для локальной разработки
В VS Code:
API режим с токеном
Запускаем с API:
Отправляем логи через curl:
Режим stdin для пайпов
Фишки logdy:
- Парсит JSON логи автоматически
- Разбивает на колонки
- Фильтрация и поиск в реальном времени
- Защита паролем через ключи запуска
- Экспорт логов
💡 Где выручает:
- Отладка микросервисов
- Мониторинг нескольких контейнеров
- Быстрый просмотр логов без SSH
- Демо для заказчика
Итог: один инструмент покрывает 90% задач с логами. Особенно круто для Docker-окружения.
____________________
Дополнительный материал:
🧠 - Путешествие LXD: Как Контейнеры LXD Переопределили Виртуализацию
🧠 - Удаление файлов и каталогов без стресса
🧠 - Создание Docker Образов и Магия Сетей: От Одиночных Узлов до Docker Swarm
#Linux_Mastery #logs #devops #docker #monitoring #tools
Привет, укротитель логов!
Вчера в комментах подсказали инструмент logdy — теперь смотрю все логи через браузер. Один бинарник, никаких зависимостей. Показываю все режимы работы.
Установка за 10 секунд
# curl https://logdy.dev/install.sh | sh
## Простой режим — один лог
# tail -f /var/log/syslog | logdy --ui-ip=0.0.0.0
Или так:
# logdy --ui-ip=0.0.0.0 follow /var/log/syslog
Открывай
https://твой-ip:8080 — логи в браузере!Логи Docker контейнера
# docker logs 761965fa13b2 --follow | logdy --ui-ip=0.0.0.0
Объединение нескольких контейнеров
Запускаем logdy в режиме сокетов:
# logdy --ui-ip=0.0.0.0 socket 8123 8124
Направляем логи каждого контейнера:
# docker logs d20339949095 --follow | logdy forward 8123
# docker logs 761965fa13b2 --follow | logdy forward 8124
Теперь все логи в одном интерфейсе с фильтрацией по источнику!
Для локальной разработки
# node app.js | logdy
В VS Code:
Ctrl+Shift+P → "Simple Browser: Show" → https://localhost:8080API режим с токеном
Запускаем с API:
# logdy --ui-ip=0.0.0.0 --api-key=secrettoken
Отправляем логи через curl:
curl --location --request POST 'https://1.2.3.4:8080/api/log' \
--header 'Authorization: Bearer secrettoken' \
--header 'Content-Type: application/json' \
--data '{"logs": [{"log": "this is a log message as a string" }],"source":"machine identifier"}'
Режим stdin для пайпов
# logdy stdin
Фишки logdy:
- Парсит JSON логи автоматически
- Разбивает на колонки
- Фильтрация и поиск в реальном времени
- Защита паролем через ключи запуска
- Экспорт логов
💡 Где выручает:
- Отладка микросервисов
- Мониторинг нескольких контейнеров
- Быстрый просмотр логов без SSH
- Демо для заказчика
Итог: один инструмент покрывает 90% задач с логами. Особенно круто для Docker-окружения.
____________________
Дополнительный материал:
🧠 - Путешествие LXD: Как Контейнеры LXD Переопределили Виртуализацию
🧠 - Удаление файлов и каталогов без стресса
🧠 - Создание Docker Образов и Магия Сетей: От Одиночных Узлов до Docker Swarm
#Linux_Mastery #logs #devops #docker #monitoring #tools
Telegram
Linux Skill - Освой Linux c нуля до DevOps
#short_story
🌟📦 Путешествие LXD: Как Контейнеры LXD Переопределили Виртуализацию! 🚀🔐
В мире, где скорость разработки и развертывания приложений играет ключевую роль, одна технология выделяется своей мощью и гибкостью - LXD от Canonical. Это история о том…
🌟📦 Путешествие LXD: Как Контейнеры LXD Переопределили Виртуализацию! 🚀🔐
В мире, где скорость разработки и развертывания приложений играет ключевую роль, одна технология выделяется своей мощью и гибкостью - LXD от Canonical. Это история о том…
👍9🔥7
🔧 История команд исчезает? Вот решение
Привет, хранитель команд!
Бесит, когда нужная команда не сохранилась в history? На всех своих серверах первым делом настраиваю правильное хранение истории. Делюсь проверенными настройками для ~/.bashrc.
Мгновенное сохранение команд
Команда сохраняется сразу после ввода, а не при выходе из сессии.
Метки времени для команд
Теперь видно когда выполнялась команда:
Увеличение размера истории
Вместо дефолтных 500 команд — храним 10000. Хватает с запасом.
Исключение мусорных команд
Эти команды не засоряют историю.
Пробел = команда не сохраняется
Поставил пробел перед командой — она не попадёт в историю.
Применение настроек
Проверка параметров
Для всех пользователей
Создай файл
Поиск по истории
Быстрый поиск:
Мой способ через grep:
⚠️ Опасный подвох HISTIGNORE
История из жизни: htop в исключениях → перезагрузил сервер командой reboot → зашёл обратно → запустил htop → закрыл → нажал стрелку вверх для повтора → там reboot (htop не сохранился!) → Enter на автомате → сервер ушёл в ребут 🤦
Мораль: осторожнее с исключениями и стрелкой вверх!
💡 Итог: правильная настройка history экономит часы при поиске той самой команды, которую вводил месяц назад.
____________________
Дополнительный материал:
🧠 - Btrfs: Революция Файловых Систем в Мире Linux
🧠 - Станьте мастером привилегий в Linux: Всё о sudo и su
🧠 - Docker Swarm & GitLab: Ускоряем Деплой Проектов с Шифрованием Секретов
#Linux_Mastery #linux #terminal #bash #productivity #sysadmin
Привет, хранитель команд!
Бесит, когда нужная команда не сохранилась в history? На всех своих серверах первым делом настраиваю правильное хранение истории. Делюсь проверенными настройками для ~/.bashrc.
Мгновенное сохранение команд
PROMPT_COMMAND='history -a'
Команда сохраняется сразу после ввода, а не при выходе из сессии.
Метки времени для команд
export HISTTIMEFORMAT='%F %T '
Теперь видно когда выполнялась команда:
2024-09-25 16:39:30Увеличение размера истории
export HISTSIZE=10000
Вместо дефолтных 500 команд — храним 10000. Хватает с запасом.
Исключение мусорных команд
export HISTIGNORE="ls:history:w:htop:pwd:top:iftop"
Эти команды не засоряют историю.
Пробел = команда не сохраняется
export HISTCONTROL=ignorespace
Поставил пробел перед командой — она не попадёт в историю.
Применение настроек
# source ~/.bashrc
Проверка параметров
# export | grep -i hist
Для всех пользователей
Создай файл
/etc/profile.d/history.sh с этими настройками — применится для всех.Поиск по истории
Быстрый поиск:
Ctrl+R и начинай вводить команду. Повторное Ctrl+R — следующее совпадение.Мой способ через grep:
# history | grep 'apt install'
⚠️ Опасный подвох HISTIGNORE
История из жизни: htop в исключениях → перезагрузил сервер командой reboot → зашёл обратно → запустил htop → закрыл → нажал стрелку вверх для повтора → там reboot (htop не сохранился!) → Enter на автомате → сервер ушёл в ребут 🤦
Мораль: осторожнее с исключениями и стрелкой вверх!
💡 Итог: правильная настройка history экономит часы при поиске той самой команды, которую вводил месяц назад.
____________________
Дополнительный материал:
🧠 - Btrfs: Революция Файловых Систем в Мире Linux
🧠 - Станьте мастером привилегий в Linux: Всё о sudo и su
🧠 - Docker Swarm & GitLab: Ускоряем Деплой Проектов с Шифрованием Секретов
#Linux_Mastery #linux #terminal #bash #productivity #sysadmin
Telegram
Linux Skill - Освой Linux c нуля до DevOps
#short_story
🌌📁 Btrfs: Революция Файловых Систем в Мире Linux! 🚀💾
В мире Linux, где инновации не знают границ, история Btrfs - это захватывающее путешествие от идеи до революции. Эта файловая система, ставшая стандартом для ведущего дистрибутива Linux, открывает…
🌌📁 Btrfs: Революция Файловых Систем в Мире Linux! 🚀💾
В мире Linux, где инновации не знают границ, история Btrfs - это захватывающее путешествие от идеи до революции. Эта файловая система, ставшая стандартом для ведущего дистрибутива Linux, открывает…
👍23🔥2
⚡ SS: находим атакующих за 30 секунд
Эй, ловец сетевых пакетов!
Netstat устарел, в новых дистрибутивах его нет. Пора привыкать к SS. Делюсь рабочими командами и трюком, как запомнить ключи через слово "тулуп".
Базовые команды SS
Все открытые порты (запомни как "тулуп"):
Проверка unix-сокетов:
Все unix-сокеты (но вывод перегружен):
Активные соединения
Поиск атакующих — практика
Подсчёт соединений с каждого IP:
Только IP с более 30 соединениями:
Общее количество активных соединений:
Все соединения (не только активные):
Применение на практике
Получил список подозрительных IP? Отправляй их в:
- fail2ban
- ipset
- nftables
И блокируй атакующих автоматически!
Минус SS: в узком терминале вывод расползается. Приходится разворачивать окно на весь экран, в отличие от компактного netstat.
Лайфхак: "tulnp" = "тулуп". Глупо звучит, но реально помогает запомнить ключи навсегда.
💡 Итог: SS неудобнее netstat визуально, но работает быстрее и есть везде по умолчанию. Пора переучиваться.
____________________
Дополнительный материал:
🧠 - От Knoppix до MX Linux: Путешествие Debian-базированных Дистрибутивов
🧠 - Управление файлами и каталогами как профи
🧠 - Ваш путеводитель по командам Adduser и Addgroup в Linux
#Linux_Mastery #linux #terminal #networking #security #ddos
Эй, ловец сетевых пакетов!
Netstat устарел, в новых дистрибутивах его нет. Пора привыкать к SS. Делюсь рабочими командами и трюком, как запомнить ключи через слово "тулуп".
Базовые команды SS
Все открытые порты (запомни как "тулуп"):
# ss -tulnp
Проверка unix-сокетов:
# ss -l | grep .sock
Все unix-сокеты (но вывод перегружен):
# ss -ax
Активные соединения
# ss -ntu
Поиск атакующих — практика
Подсчёт соединений с каждого IP:
# ss -ntuH | awk '{print $6}' | grep -vE 127.0.0.1 | \
cut -d: -f1 | sort | uniq -c | sort -n | sed 's/^[ \t]*//'
Только IP с более 30 соединениями:
# ss -ntuH | awk '{print $6}' | grep -vE 127.0.0.1 | \
cut -d: -f1 | sort | uniq -c | sort -n | sed 's/^[ \t]*//' | \
awk '{if ($1 > 30) print$2}'
Общее количество активных соединений:
# ss -ntuH | awk '{print $6}' | grep -vE 127.0.0.1 | wc -l
Все соединения (не только активные):
# ss -ntua
Применение на практике
Получил список подозрительных IP? Отправляй их в:
- fail2ban
- ipset
- nftables
И блокируй атакующих автоматически!
Минус SS: в узком терминале вывод расползается. Приходится разворачивать окно на весь экран, в отличие от компактного netstat.
Лайфхак: "tulnp" = "тулуп". Глупо звучит, но реально помогает запомнить ключи навсегда.
💡 Итог: SS неудобнее netstat визуально, но работает быстрее и есть везде по умолчанию. Пора переучиваться.
____________________
Дополнительный материал:
🧠 - От Knoppix до MX Linux: Путешествие Debian-базированных Дистрибутивов
🧠 - Управление файлами и каталогами как профи
🧠 - Ваш путеводитель по командам Adduser и Addgroup в Linux
#Linux_Mastery #linux #terminal #networking #security #ddos
Telegram
Linux Skill - Освой Linux c нуля до DevOps
#short_story
🚀🐧 От Knoppix до MX Linux: Путешествие Debian-базированных Дистрибутивов! 🌌💻
В мире Linux, где каждый дистрибутив несет в себе частицу уникальности и инноваций, Debian стоит особняком. Это история о том, как Debian стал основой для множества…
🚀🐧 От Knoppix до MX Linux: Путешествие Debian-базированных Дистрибутивов! 🌌💻
В мире Linux, где каждый дистрибутив несет в себе частицу уникальности и инноваций, Debian стоит особняком. Это история о том, как Debian стал основой для множества…
👍22
🔥 Fstab блокирует загрузку? Переходи на systemd
Привет, мастер монтирования!
Облачные провайдеры давно используют systemd для управления дисками в твоих виртуалках. Я однажды чуть не потерял данные, не зная этого.
👉 Показываю, как systemd заменяет fstab и почему это лучше
#Linux_Mastery #systemd #mount #linux #devops #storage
Привет, мастер монтирования!
Облачные провайдеры давно используют systemd для управления дисками в твоих виртуалках. Я однажды чуть не потерял данные, не зная этого.
👉 Показываю, как systemd заменяет fstab и почему это лучше
#Linux_Mastery #systemd #mount #linux #devops #storage
👍7👀4
💾 Потерял данные? Вот скрипт, который этого не допустит
Привет, хранитель данных!
Делаешь бэкапы вручную? Пора автоматизировать! Готовый bash-скрипт архивирует важные директории и отправляет на удалённый сервер. Настрой раз и спи спокойно.
Скрипт backup.sh
Как работает скрипт
Переменные:
-
-
-
-
Процесс:
1. Архивирует каждую директорию в tar.gz
2. Отправляет по scp на удалённый сервер
3. Проверяет успешность каждого шага
4. Удаляет локальные временные архивы
Пример работы
Автоматизация через cron
Добавь в crontab для ежедневного запуска в 3 ночи:
💡 Совет: настрой SSH-ключи для scp без пароля, иначе скрипт не сработает в cron.
Результат: автоматические бэкапы критически важных данных каждую ночь. Никакой рутины, полная автоматизация.
____________________
Дополнительный материал:
🧠 - От первого контейнера до мощного Swarm: Путешествие Docker в мире DevOps
🧠 - Углубляемся в безопасность Linux: Специальные режимы и их мощь!
🧠 - Разгадываем тайны команды "Apropos": Ваш ключ к миру Linux Man Pages
#Linux_Mastery #bash #backup #automation #sysadmin #scripts
Привет, хранитель данных!
Делаешь бэкапы вручную? Пора автоматизировать! Готовый bash-скрипт архивирует важные директории и отправляет на удалённый сервер. Настрой раз и спи спокойно.
Скрипт backup.sh
#!/bin/bash
backup_dirs=("/etc" "/home" "/boot")
dest_dir="/backup"
dest_server="server1"
backup_date=$(date +%b-%d-%y)
echo "Starting backup of: ${backup_dirs[@]}"
for i in "${backup_dirs[@]}"; do
sudo tar -Pczf /tmp/$i-$backup_date.tar.gz $i
if [ $? -eq 0 ]; then
echo "$i backup succeeded."
else
echo "$i backup failed."
fi
scp /tmp/$i-$backup_date.tar.gz $dest_server:$dest_dir
if [ $? -eq 0 ]; then
echo "$i transfer succeeded."
else
echo "$i transfer failed."
fi
done
sudo rm /tmp/*.gz
echo "Backup is done."
Как работает скрипт
Переменные:
-
backup_dirs — массив директорий для бэкапа-
dest_dir — куда складывать на удалённом сервере-
dest_server — имя/IP целевого сервера-
backup_date — дата в имени архиваПроцесс:
1. Архивирует каждую директорию в tar.gz
2. Отправляет по scp на удалённый сервер
3. Проверяет успешность каждого шага
4. Удаляет локальные временные архивы
Пример работы
kabary@handbook:~$ ./backup.sh
Starting backup of: /etc /home /boot
/etc backup succeeded.
etc-Aug-30-20.tar.gz 100% 1288KB 460.1KB/s 00:02
/etc transfer succeeded.
/home backup succeeded.
home-Aug-30-20.tar.gz 100% 2543KB 547.0KB/s 00:04
/home transfer succeeded.
/boot backup succeeded.
boot-Aug-30-20.tar.gz 100% 105MB 520.2KB/s 03:26
/boot transfer succeeded.
Backup is done.
Автоматизация через cron
Добавь в crontab для ежедневного запуска в 3 ночи:
0 3 * * * /home/user/backup.sh >> /var/log/backup.log 2>&1
💡 Совет: настрой SSH-ключи для scp без пароля, иначе скрипт не сработает в cron.
Результат: автоматические бэкапы критически важных данных каждую ночь. Никакой рутины, полная автоматизация.
____________________
Дополнительный материал:
🧠 - От первого контейнера до мощного Swarm: Путешествие Docker в мире DevOps
🧠 - Углубляемся в безопасность Linux: Специальные режимы и их мощь!
🧠 - Разгадываем тайны команды "Apropos": Ваш ключ к миру Linux Man Pages
#Linux_Mastery #bash #backup #automation #sysadmin #scripts
Telegram
Linux Skill - Освой Linux c нуля до DevOps
#short_story
🚢⚙️ От первого контейнера до мощного Swarm: Путешествие Docker в мире DevOps 🌍💻
В мире, где каждая секунда на счету и гибкость внедрения определяет успех, одна технология выделяется, переопределяя архитектуру современных приложений. Это история…
🚢⚙️ От первого контейнера до мощного Swarm: Путешествие Docker в мире DevOps 🌍💻
В мире, где каждая секунда на счету и гибкость внедрения определяет успех, одна технология выделяется, переопределяя архитектуру современных приложений. Это история…
👍18
🔧 20+ переменных Bash, которые ты точно не использовал
Привет, повелитель скриптов!
Видел скрипты, где пути и настройки вбиты намертво? А потом ломаешь голову, почему они не работают на другой машине. Bash уже всё придумал за тебя — используй зарезервированные переменные.
📂 Навигация и окружение
$DIRSTACK — Содержимое вершины стека каталогов
$OLDPWD — Прежний рабочий каталог
$PATH — Путь поиска программ
$HOME — Домашний каталог пользователя
👤 Информация о пользователе
$UID — Содержит реальный идентификатор, который устанавливается только при логине
$EUID — Эффективный UID. Если вы использовали программу su для выполнения команд от другого пользователя, то эта переменная содержит UID этого пользователя
$GROUPS — Массив групп к которым принадлежит текущий пользователь
🖥️ Информация о системе
$HOSTNAME — hostname машины
$HOSTTYPE — Архитектура машины
$OSTYPE — Тип ОС
⚙️ Работа со скриптами и функциями
$EDITOR — Текстовый редактор по-умолчанию
$FUNCNAME — Имя текущей функции в скрипте
$SECONDS — Время работы скрипта (в сек.)
$$ — PID самого скрипта
$PPID — Идентификатор родительского процесса
$! — PID последнего запущенного в фоне процесса
$? — Содержит код завершения последней команды
📝 Работа с параметрами
$# — Общее количество параметров переданных скрипту
$* — Все аргументы переданные скрипту (выводятся в строку)
$@ — Тоже самое, что и предыдущий, но параметры выводятся в столбик
🔍 Дополнительные переменные
$LC_CTYPE — Внутренняя переменная, которая определяет кодировку символов
🔖 Сохрани шпаргалку — пригодится в каждом скрипте!
#Linux_Mastery #bash #scripting #linux #automation #devops #sysadmin
Привет, повелитель скриптов!
Видел скрипты, где пути и настройки вбиты намертво? А потом ломаешь голову, почему они не работают на другой машине. Bash уже всё придумал за тебя — используй зарезервированные переменные.
📂 Навигация и окружение
$DIRSTACK — Содержимое вершины стека каталогов
$OLDPWD — Прежний рабочий каталог
$PATH — Путь поиска программ
$HOME — Домашний каталог пользователя
👤 Информация о пользователе
$UID — Содержит реальный идентификатор, который устанавливается только при логине
$EUID — Эффективный UID. Если вы использовали программу su для выполнения команд от другого пользователя, то эта переменная содержит UID этого пользователя
$GROUPS — Массив групп к которым принадлежит текущий пользователь
🖥️ Информация о системе
$HOSTNAME — hostname машины
$HOSTTYPE — Архитектура машины
$OSTYPE — Тип ОС
⚙️ Работа со скриптами и функциями
$EDITOR — Текстовый редактор по-умолчанию
$FUNCNAME — Имя текущей функции в скрипте
$SECONDS — Время работы скрипта (в сек.)
$$ — PID самого скрипта
$PPID — Идентификатор родительского процесса
$! — PID последнего запущенного в фоне процесса
$? — Содержит код завершения последней команды
📝 Работа с параметрами
$# — Общее количество параметров переданных скрипту
$* — Все аргументы переданные скрипту (выводятся в строку)
$@ — Тоже самое, что и предыдущий, но параметры выводятся в столбик
🔍 Дополнительные переменные
$LC_CTYPE — Внутренняя переменная, которая определяет кодировку символов
🔖 Сохрани шпаргалку — пригодится в каждом скрипте!
#Linux_Mastery #bash #scripting #linux #automation #devops #sysadmin
👍8🔥3