Linux Skill - Освой Linux c нуля до DevOps
11.3K subscribers
56 photos
101 videos
483 links
Освой Linux c нуля до DevOps
Подробный гайд по Linux и море других уроков для системных администраторов

📩 По всем вопросам: @chorapov

РКН https://vk.cc/cMUwm4
Download Telegram
📦 100GB логов → 0: безопасная очистка одной командой

Эй, борец с переполненными дисками!

Знакомо? Zabbix кричит "disk full", а в /var/log лежит 100GB мусора. Держи улучшенный скрипт очистки, который не сломает ротацию логов.

🔧 cleanup:
#!/bin/bash
# cleanup v2: Безопасная очистка логов

# Проверка root-прав
if [[ $EUID -ne 0 ]]; then
echo "Ошибка: запускай от root!"
exit 1
fi

LOG_DIR=/var/log

# Переходим в директорию логов
cd $LOG_DIR || exit 1

# Очищаем, но не удаляем файлы
cat /dev/null > messages
cat /dev/null > wtmp

echo "Логи очищены."
exit 0


💡 Почему именно так:

cat /dev/null > вместо rm — сохраняет файл и права доступа. Сервисы продолжат писать логи без перезапуска.

Проверка root — защита от случайного запуска.

exit 0 — явный код возврата для автоматизации.

🚀 Автоматизируй:
# Добавь в cron для еженедельной очистки
0 3 * * 0 /root/cleanup.sh


Теперь диск не переполнится внезапно, а сервисы продолжат работать!
____________________

Дополнительный материал:
🧠 - LSOF: Многофункциональный инструмент для системных администраторов Linux
🧠 - User Private Group: Революционный подход Red Hat к безопасности пользователей в Linux
🧠 - Настройка sudo для аутентификации без пароля root: Пошаговое руководство

#bash_guide #bash #logs #cleanup #Linux #sysadmin #script
🔥13👍4
🎯 8-я строка из 10000: достаём мгновенно

Привет, хирург логов!

Нужна конкретная строка из огромного файла? Забудь про медленный grep. Комбо head + tail работает как скальпель!

🔧 Базовый мониторинг логов:

#!/bin/bash
filename=sys.log

# Создаём/очищаем файл
cat /dev/null > $filename
# Альтернативы: : > $filename или > $filename

# Снимок последних строк системного журнала
tail /var/log/messages > $filename
echo "$filename содержит 10 последних строк системного журнала."


💡 Извлекаем конкретную строку:

# 8-я строка из файла
head -n 8 database.txt | tail -n 1

# 100-я строка? Легко!
head -n 100 huge.log | tail -n 1


🚀 Продвинутый трюк — блок в переменную:

# Сохраняем строки 50-55 в переменную
var=$(head -n 55 $filename | tail -n 5)

# Формула:
# head -n $m | tail -n $n
# m = до какой строки читать
# n = сколько строк от конца взять


📝 Важно:

# Старый синтаксис (deprecated)
tail -10 file.txt

# Правильный синтаксис
tail -n 10 file.txt


🛡️ Права доступа:

# Для общего доступа к логам
chmod 644 /var/log/messages


Теперь ты можешь выдёргивать любую строку из любого лога мгновенно!
________________

Дополнительный материал:
🧠 - Понимание UID и GID в Linux: Не просто числа, а ключи к безопасности
🧠 - Установка нового пароля root в Linux: Пошаговое руководство для системных администраторов
🧠 - Мастерство управления пользователями в Linux: Ваше полное руководство

#bash_guide #bash #logs #tail #head #Linux #sysadmin
👍13
🔥 Читаемые логи одной командой: секрет в xargs

Привет, укротитель логов!

Устал от нечитаемого месива в /var/log/messages? Покажу трюк с xargs, который превратит системные логи в аккуратный отчёт.

🔧 Скрипт мониторинга:
#!/bin/bash
# logfile.sh - создаём читаемый отчёт из системных логов

LINES=5

# Заголовок с датой и системой
( date; uname -a ) >>logfile
echo "----------------------------------------" >>logfile

# Магия: tail + xargs + fmt
tail -n $LINES /var/log/messages | xargs | fmt -s >>logfile

echo >>logfile
exit 0


💡 Как это работает:
- tail -n 5 — берём последние 5 строк
- xargs — объединяет строки в одну
- fmt -s — форматирует текст для читаемости

🚨 Защита от кавычек:
# Если в логах есть непарные кавычки
tail -n $LINES /var/log/messages | tr -d "\"'" | xargs | fmt -s >>logfile


🚀 Автоматический мониторинг:
# Каждые 20 минут
watch -n 1200 ./logfile.sh

# Или через cron
*/20 * * * * /path/to/logfile.sh


📝 Не забудь права:
# Чтобы скрипт работал не только от root
chmod 644 /var/log/messages


Теперь вместо каши получишь структурированный отчёт!
____________________

Дополнительный материал:
🧠 - Усиление безопасности веб-серверов Linux с помощью самоподписанных сертификатов
🧠 - Секретные техники от Linux Skill: Откройте для себя мир возможностей!
🧠 - Взгляд в прошлое: Историческая роль файла /etc/passwd в Linux

#bash_guide #bash_guide #bash #logs #xargs #monitoring #Linux #sysadmin
👍7
🔥 Циклы в Bash: от каменного века до современности

Эй, мастер итераций!

Всё ещё пишешь for i in 1 2 3 4 5? Покажу эволюцию циклов в Bash — от динозавров до современного синтаксиса!

🦕 Каменный век:
for a in 1 2 3 4 5 6 7 8 9 10
do
echo -n "$a "
done


🏛️ Античность (seq):
for a in `seq 10`
do
echo -n "$a "
done


🏭 Индустриальная эра (Bash 3+):
for a in {1..10}
do
echo -n "$a "
done


🚀 Современность (C-style):
LIMIT=10
for ((a=1; a <= LIMIT; a++))
do
echo -n "$a "
done


💥 Высший пилотаж — оператор запятая:
# Инкремент двух переменных одновременно!
for ((a=1, b=1; a <= LIMIT; a++, b++))
do
echo -n "$a-$b "
done
# Вывод: 1-1 2-2 3-3 4-4 5-5...


💡 Что выбрать:
- {1..10} — для простых диапазонов
- C-style — для сложной логики
- seq — для обратной совместимости

Все примеры выводят: 1 2 3 4 5 6 7 8 9 10

Больше никаких длинных перечислений! Используй современный синтаксис.
____________________

Дополнительный материал:
🧠 - Централизованное управление пользователями в Linux: Гармония преимуществ и вызовов
🧠 - Создание учетной записи пользователя в Linux: Пошаговое руководство
🧠 - Мастер-класс по созданию системных аккаунтов в Linux

#bash_guide #bash #loops #scripting #Linux #programming #for
👍17
🔥 Зависло 100 вкладок в Chrome? Убей все одной командой

Эй, терминатор процессов!

Знакомо? Открыл 100 вкладок Chrome, система зависла, а killall не установлен. Держи скрипт, который работает везде!

🔧 kill-byname.sh:
#!/bin/bash
# Убийца процессов по имени

E_BADARGS=66

if test -z "$1"; then
echo "Usage: $(basename $0) имя_процесса"
exit $E_BADARGS
fi

PROCESS_NAME="$1"

# Магическая строка
ps ax | grep "$PROCESS_NAME" | awk '{print $1}' | xargs -i kill {} 2>/dev/null

exit $?


💡 Как работает магия:
- ps ax — список всех процессов
- grep — фильтруем по имени
- awk '{print $1}' — извлекаем PID
- xargs -i kill {} — убиваем каждый процесс

🚀 Использование:
# Убить все Chrome
./kill-byname.sh chrome

# Закрыть все терминалы
./kill-byname.sh xterm

# Остановить Firefox
./kill-byname.sh firefox


⚠️ ВНИМАНИЕ:
Скрипт опасен! Особенно под root. Можешь случайно убить системные процессы.

💡 Альтернативы:
# Если есть killall
killall chrome

# Через pkill
pkill -f chrome

# Через pidof
kill $(pidof chrome)


Теперь ты можешь массово управлять процессами даже на минимальной системе!
____________________

Дополнительный материал:
🧠 - Революция в управлении дисковым пространством: Встречайте topdiskconsumer
🧠 - Все о группах в Linux: Почему это важно для каждого пользователя?
🧠 - Энциклопедия Docker: Незаменимые инструменты для системных администраторов

#bash_guide #bash #process #kill #Linux #sysadmin #script
👍9
🔥 Забудь про $1 $2 $3: умные опции через getopts

Привет, архитектор CLI!

Надоело парсить аргументы через позиционные параметры? Делаем профессиональные флаги как в настоящих утилитах!

🔧 Базовый шаблон с getopts:
#!/bin/bash

# Проверка аргументов
if [ $# -eq 0 ]; then
echo "Usage: $(basename $0) -mnopqrs"
exit 1
fi

# Парсинг опций
while getopts ":mnopq:rs" Option; do
case $Option in
m ) echo "Опция -m активна";;
n|o ) echo "Опция -$Option активна";;
p ) echo "Опция -p активна";;
q ) echo "Опция -q с аргументом: $OPTARG";;
r|s ) echo "Опция -$Option";;
* ) echo "Неверная опция";;
esac
done

# Сдвиг к не-опциям
shift $(($OPTIND - 1))


💡 Как работает:
- :mnopq:rs — строка опций (: после q = требует аргумент)
- $OPTARG — значение для опции с аргументом
- $OPTIND — индекс следующего аргумента

🚀 Примеры вызова:
./script.sh -m -n
./script.sh -mn # можно слитно!
./script.sh -q "значение"
./script.sh -mnop -q test


📌 Бонус — импорт функций:
# Загружаем общие функции
source /path/to/common_functions.sh
# или
. ./config.sh


Теперь твои скрипты выглядят как настоящие Linux-утилиты!
____________________

Дополнительный материал:
🧠 - Командный центр Linux: Ваше руководство по базовым консольным программам
🧠 - Защитный барьер Linux: Как система обеспечивает безопасность пользователей и групп
🧠 - Мастер-класс по консольным программам Linux: Разбираемся с UID и GID

#bash_guide #bash #getopts #cli #scripting #Linux #arguments
👍13