Linux: Системный администратор
1.94K subscribers
79 photos
8 videos
15 files
30 links
Здесь вы найдете полезные советы, практические материалы и интересные инсайты по администрированию Linux. Погружаемся в мир команд, скриптов и серверов вместе! 🚀

Авторский канал действующего админа 👨🏼‍💻
Download Telegram
🚀 Подборка полезных IT каналов в Max


Системное администрирование, DevOps 📌

https://max.ru/i_odmin Все для системного администратора
https://max.ru/bash_srv Bash Советы
https://max.ru/sysadminof Книги для админов, полезные материалы
https://max.ru/i_odmin_book Библиотека Системного Администратора
https://max.ru/i_devops DevOps: Пишем о Docker, Kubernetes и др.
https://max.ru/tipsysdmin Типичный Сисадмин

1C разработка 📌
https://max.ru/odin1c_rus Cтатьи, курсы, советы, шаблоны кода 1С

Программирование C++📌
https://max.ru/cpp_lib Библиотека C/C++ разработчика

Программирование Go📌
https://max.ru/golang_lib Библиотека Go (Golang) разработчика

Программирование React📌
https://max.ru/react_lib React

Программирование Python 📌
https://max.ru/python_of Python академия.
https://max.ru/BookPython Библиотека Python разработчика

Java разработка 📌
https://max.ru/bookjava Библиотека Java разработчика

GitHub Сообщество 📌
https://max.ru/githublib Интересное из GitHub

Базы данных (Data Base) 📌
https://max.ru/database_info Все про базы данных

Фронтенд разработка 📌
https://max.ru/frontend_1 Подборки для frontend разработчиков

Библиотеки 📌
https://max.ru/programmist_of Книги по программированию
https://max.ru/proglb Библиотека программиста
https://max.ru/bfbook Книги для программистов

Программирование 📌
https://max.ru/bookflow Лекции, видеоуроки, доклады с IT конференций
https://max.ru/itmozg Программисты, дизайнеры, новости из мира IT
https://max.ru/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻

Шутки программистов 📌
https://max.ru/itumor Шутки программистов

Защита, взлом, безопасность 📌
https://max.ru/thehaking Канал о кибербезопасности
https://max.ru/xakkep_1 Хакер Free

Книги, статьи для дизайнеров 📌
https://max.ru/odesigners Статьи, книги для дизайнеров

Математика 📌
https://max.ru/Pomatematike Канал по математике
https://max.ru/phismat_1 Обучающие видео, книги по Физике и Математике

Вакансии 📌
https://max.ru/progjob Вакансии в IT

Мир технологий 📌
https://max.ru/mir_teh Канал для любознательных


Бонус 📌
https://max.ru/piterspb_78 Свежие новости Санкт-Петербурга
https://max.ru/mockva_life Свежие новости Москвы
👎2🤮1
📌 Как увеличить размер каталога /tmp/ в Linux

Привет, коллеги! Сегодня поговорим об увеличении каталога tmp.


Каталог /tmp/ используется для временных файлов и обычно располагается в RAM (tmpfs) или на диске. Если /tmp/ переполняется, это может вызвать сбои в работе системы. Давайте разберем, как его увеличить.

🔍 Проверка текущего размера /tmp/
Чтобы узнать, как /tmp/ смонтирован и его размер, используем:


df -h /tmp

или

mount | grep /tmp

Если /tmp/ использует tmpfs, то он находится в оперативной памяти.

🔹 Вариант 1: Увеличение tmpfs (в RAM)
Если /tmp/ смонтирован как tmpfs, можно увеличить его размер командой:


mount -o remount,size=4G /tmp

Где 4G — новый размер. Проверяем:

df -h /tmp

⚠️ Это временное изменение! После перезагрузки сбросится.

Чтобы сделать его постоянным, добавляем строку в /etc/fstab:

tmpfs /tmp tmpfs defaults,size=4G 0 0

Затем применяем изменения:

mount -o remount /tmp


🔹 Вариант 2: Использование раздела на диске
Если нужно хранить данные на диске, можно создать отдельный раздел.

1️⃣ Выбираем диск и создаем раздел (например, /dev/sdb1):

mkfs.ext4 /dev/sdb1

2️⃣ Монтируем его:

mount /dev/sdb1 /tmp

3️⃣ Делаем постоянным, добавив в /etc/fstab:

/dev/sdb1 /tmp ext4 defaults 0 0


🔹 Вариант 3: Использование файла-контейнера
Если новый раздел не вариант, можно создать файл и смонтировать его как /tmp/:

1️⃣ Создаем файл (например, 4ГБ):

dd if=/dev/zero of=/swapfile bs=1M count=4096

2️⃣ Форматируем его:

mkfs.ext4 /swapfile

3️⃣ Монтируем его в /tmp/:

mount /swapfile /tmp

4️⃣ Добавляем в /etc/fstab:

/swapfile /tmp ext4 defaults 0 0


🔥 Итог
Быстрое изменение (RAM)mount -o remount,size=4G /tmp
Постоянное изменение (RAM) – правка /etc/fstab
Использование диска – монтирование отдельного раздела
Файл-контейнер – если раздел недоступен

#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin

👉 @linux_odmin
1👍1
🛡 Как быстро заблокировать IP через iptables и не забыть про это

Иногда нужно срочно заблокировать IP — скажем, увидели подозрительную активность в логах sshd. Простой способ:


iptables -A INPUT -s 203.0.113.5 -j DROP


Но есть нюанс: при следующей перезагрузке этот IP снова станет "добрым". Чтобы сохранить правило:

1. Для систем на Debian/Ubuntu
Установите iptables-persistent:

apt install iptables-persistent

И сохраните правила:

netfilter-persistent save


2. Для CentOS/RHEL
Используйте iptables-save и iptables-restore:

iptables-save > /etc/sysconfig/iptables


💡 Совет: если часто блокируете IP вручную — сделайте себе алиас в .bashrc:

alias blockip='iptables -A INPUT -s'

Теперь можно будет писать так:

blockip 203.0.113.5 -j DROP


📌 А вы как чаще блокируете IP — через iptables, firewalld, fail2ban или что-то ещё? Напишите в комментах👇

#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin

👉 @linux_odmin
2👍1
🧰 Проверка сетевых подключений с помощью ss
Заменим устаревший netstat!

Сегодня хочу показать вам, как удобно и эффективно использовать команду ss для анализа сетевых подключений. Это современная альтернатива netstat, которая работает быстрее и дает больше деталей.

🔍 Примеры, которые стоит запомнить:


ss -tuln

Показывает все слушающие TCP/UDP порты без разрешения имён. Часто использую при проверке, какие службы открыты наружу.


ss -tp

Показывает активные TCP-соединения с указанием PID/имени процесса. Очень выручает при отладке приложений, которые что-то "держат".


ss -s

Краткая сводка по соединениям — как netstat -s, но быстрее. Отлично, чтобы быстро глянуть на состояние TCP-стека.

💡 Совет: если у вас в системе много соединений, используйте ss с фильтрами, например:

ss -t state established '( dport = :ssh or sport = :ssh )'

Покажет только установленные SSH-соединения — очень удобно, если сервер используется как bastion.



👨‍💻 А вы уже полностью перешли на ss или ещё пользуетесь netstat по привычке? Делитесь в комментариях своим опытом!

#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin

👉 @linux_odmin
👍3
🛠 Как узнать, кто перезагрузил сервер?

Сегодня покажу вам простой способ выяснить, кто именно инициировал перезагрузку сервера. Иногда бывает так: сервер внезапно ушёл в ребут, и ты не уверен — это был плановый рестарт, баг или кто-то нажал reboot не подумав. Давайте разбираться!

🔍 Шаг 1: Проверяем журнал перезагрузки

last -x | grep reboot

Эта команда покажет дату и время перезагрузки. Но кто?

🔍 Шаг 2: Ищем инициатора в журнале auditd (если он включён)

ausearch -k reboot

или

ausearch -x /sbin/reboot

Это поможет, если у вас включён auditd. Если нет — смотри следующий шаг.

🔍 Шаг 3: Проверка journalctl

journalctl -b -1 | grep -i 'reboot\|shutdown\|poweroff'

Здесь могут быть строки вроде:

systemd-logind[...]: Power key pressed.
systemd-logind[...]: Rebooting system.

или

systemd[1]: Received request to reboot from UID=1000

UID поможет понять, какой пользователь инициировал ребут.

🔍 Шаг 4: Кто был в системе до ребута?

last -F | head

Посмотри, кто был залогинен незадолго до перезагрузки. Возможно, это и есть "виновник".



🧠 Мой совет: Настрой логирование и аудит таких событий заранее — особенно на продакшене. А ещё можешь повесить алерт на неожиданные ребуты через Prometheus + Alertmanager.

Полезно? Делитесь в комментах своими кейсами, когда сервер ушёл в ребут «сам по себе» 😅

#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin

👉 @linux_odmin
👍31
🧠 Что делает команда exec в bash — и зачем она нужна?

Многие слышали о exec, но используют редко. А зря! Это мощный инструмент, особенно в скриптах и системном администрировании.

🔹 Что делает exec?
Она заменяет текущий процесс новым, без создания дочернего. То есть, вместо запуска новой программы — текущий процесс «перевоплощается» в неё.

Простой пример:

exec top

В этом случае оболочка bash будет заменена на top, и когда вы закроете top, сессия завершится.



🛠 Где это может пригодиться:

1. В systemd-юнитах — при запуске сервиса через скрипт:

#!/bin/bash
exec /usr/bin/myapp

Это позволит системе правильно отслеживать основной процесс.

2. В контейнерах (например, Docker) — если вы запускаете скрипт в качестве ENTRYPOINT, используйте exec, чтобы сигналы (например, SIGTERM) корректно передавались вашему приложению.

3. Для перенаправления ввода/вывода:

exec >> /var/log/myscript.log 2>&1

Всё, что будет выведено в stdout и stderr после этой строки — пойдёт в лог.


exec не делает магии, но помогает делать вещи правильно. Особенно там, где важна замена PID и корректная работа сигналов.

А вы используете exec в своих скриптах? Поделитесь опытом 👇

#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin

👉 @linux_odmin
2👍2
📌 Команда : xargs — что это, как использовать с find, реальные примеры


Если ты всё ещё пишешь

bash
find . -name "*.log" -exec rm {} \;

— пора познакомиться с xargs.


🔹 Что делает xargs
Простыми словами: берёт вывод одной команды и передаёт его как аргументы другой.
Часто используется в связке с find, grep, ls, cat и т.д.


🔧 Пример 1: удаление файлов

bash
find . -name "*.log" | xargs rm

Быстрее и читаемее, чем -exec.
А если в путях есть пробелы — добавь -print0 и -0:

bash
find . -name "*.log" -print0 | xargs -0 rm



🔧 Пример 2: архивация большого списка файлов

bash
cat filelist.txt | xargs tar -czf archive.tar.gz

Но лучше писать так:

bash
xargs -a filelist.txt tar -czf archive.tar.gz



⚠️ Полезные флаги
- -n N — запускать по N аргументов
- -P N — параллельное выполнение (например, -P 4 для 4 потоков)
- -I {} — подстановка аргументов вручную:

bash
cat urls.txt | xargs -I {} curl -O {}



🧠 Где применять
- Удаление, копирование, перемещение файлов
- Обработка списков (имён, URL, путей)
- Массовый запуск скриптов
- Комбинация с parallel — огонь 🔥


✍️ Итог
xargs — это must-have в наборе админа.
Один раз освоил — и половина баш-магии стала проще.

#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin

👉 @linux_odmin
👍3🔥1🤯1
🎯 Как быстро очистить лог-файлы, не перезапуская сервис

Привет, коллеги! Сегодня хочу показать простой, но очень полезный приём для работы с логами. Иногда лог-файлы разрастаются до гигантских размеров, и хочется их обнулить — но без остановки сервиса, который пишет в этот файл.

🔧 Вот как это сделать:


: > /var/log/your-log.log


Или, альтернативно:


truncate -s 0 /var/log/your-log.log


📌 Что здесь происходит:

- : > — это no-op команда (:) с перенаправлением вывода в файл, по сути затирает его.
- truncate -s 0 — устанавливает размер файла в 0 байт.

💡 Главное: не удаляйте лог-файл напрямую!
Если вы сделаете rm /var/log/your-log.log, то большинство демонов продолжат писать в уже открытый файловый дескриптор — и вы потеряете лог, не освободив место.

Если лог-файл всё-таки нужно удалить — сделайте это аккуратно:


> /var/log/your-log.log && systemctl reload your-service


Или используйте logrotate — но об этом в одном из следующих постов 😉

#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin

👉 @linux_odmin
👍4
🚀 Подборка полезных IT каналов в Max


Системное администрирование, DevOps 📌

https://max.ru/i_odmin Все для системного администратора
https://max.ru/bash_srv Bash Советы
https://max.ru/sysadminof Книги для админов, полезные материалы
https://max.ru/i_odmin_book Библиотека Системного Администратора
https://max.ru/i_devops DevOps: Пишем о Docker, Kubernetes и др.
https://max.ru/tipsysdmin Типичный Сисадмин

Excel лайфхак 📌
https://t.me/Excel_lifehack Excel лайфхак

1C разработка 📌
https://max.ru/odin1c_rus Cтатьи, курсы, советы, шаблоны кода 1С

Программирование C++📌
https://max.ru/cpp_lib Библиотека C/C++ разработчика

Программирование Go📌
https://max.ru/golang_lib Библиотека Go (Golang) разработчика

Программирование React📌
https://max.ru/react_lib React

Программирование Python 📌
https://max.ru/python_of Python академия.
https://max.ru/BookPython Библиотека Python разработчика

Java разработка 📌
https://max.ru/bookjava Библиотека Java разработчика

GitHub Сообщество 📌
https://max.ru/githublib Интересное из GitHub

Базы данных (Data Base) 📌
https://max.ru/database_info Все про базы данных

Фронтенд разработка 📌
https://max.ru/frontend_1 Подборки для frontend разработчиков

Библиотеки 📌
https://max.ru/programmist_of Книги по программированию
https://max.ru/proglb Библиотека программиста
https://max.ru/bfbook Книги для программистов

Программирование 📌
https://max.ru/bookflow Лекции, видеоуроки, доклады с IT конференций
https://max.ru/itmozg Программисты, дизайнеры, новости из мира IT
https://max.ru/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻

Шутки программистов 📌
https://max.ru/itumor Шутки программистов

Защита, взлом, безопасность 📌
https://max.ru/thehaking Канал о кибербезопасности
https://max.ru/xakkep_1 Хакер Free

Книги, статьи для дизайнеров 📌
https://max.ru/odesigners Статьи, книги для дизайнеров

Математика 📌
https://max.ru/Pomatematike Канал по математике
https://max.ru/phismat_1 Обучающие видео, книги по Физике и Математике

Вакансии 📌
https://max.ru/progjob Вакансии в IT

Мир технологий 📌
https://max.ru/mir_teh Канал для любознательных


Бонус 📌
https://max.ru/piterspb_78 Свежие новости Санкт-Петербурга
https://max.ru/mockva_life Свежие новости Москвы
https://max.ru/piterspb Питер Новости: Санкт-Петербург / СПБ / ДТП
👎5🤮1🤡1
⚙️ Автоматизация рутинных задач с systemd timers

Привет, друзья! Сегодня расскажу, как я заменил cron на более гибкое решение — systemd timers.

Почему это круто?
👉 Логирование, зависимость от сервисов, простая отладка и интеграция в systemctl.

🔧 Пример: бэкап каталога каждый день

1. Создаем сервис-файл:

/etc/systemd/system/backup-home.service

[Unit]
Description=Backup /home to /backup

[Service]
Type=oneshot
ExecStart=/usr/local/bin/backup-home.sh


2. Создаем таймер:

/etc/systemd/system/backup-home.timer

[Unit]
Description=Daily backup of /home

[Timer]
OnCalendar=*-*-* 03:00:00
Persistent=true

[Install]
WantedBy=timers.target


3. Активируем:


sudo systemctl daemon-reexec
sudo systemctl enable --now backup-home.timer


📌 Скрипт backup-home.sh можно писать как угодно: rsync, tar, borg, хоть scp.

Плюс: systemd сам выполнит задание при следующей загрузке, если сервер был выключен в 3 ночи (благодаря Persistent=true).

🔥 Используете systemd timers или предпочитаете cron? Расскажите, что автоматизируете!

#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin

👉 @linux_odmin
🔐 Сегодня покажу вам, как быстро проверить, какие пользователи могут входить по SSH

Когда нужно быстро провести аудит, кто действительно может зайти на сервер по SSH, поможет вот такой однострочник:


getent passwd | awk -F: '$3 >= 1000 && $7 ~ /bash/ {print $1}' | while read user; do
if [ -f /home/$user/.ssh/authorized_keys ]; then
echo "$user — доступ по ключу"
elif grep -q "^$user:" /etc/shadow && [ "$(awk -F: -v u="$user" '$1 == u {print $2}' /etc/shadow)" != "*" ]; then
echo "$user — может входить с паролем"
fi
done


💡 Что делает скрипт?
- Ищет всех "нормальных" пользователей (UID ≥ 1000 и оболочка bash)
- Проверяет, есть ли у них authorized_keys — значит, ключи
- Если нет — сверяет в /etc/shadow, заблокирован ли пароль

📌 На заметку:
- Подходит для систем с классической схемой пользователей (не LDAP и не sssd)
- UID порог можно подправить под свою среду
- Можно дополнить логированием, например в syslog или файл


А ты проверяешь регулярно, кто может входить на твои сервера? Пиши в комментариях — автоматизировал ли ты аудит SSH-доступа у себя? 👇

#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin

👉 @linux_odmin
👍3