📌 5 полезных команд для диагностики сети в Linux 🌐
Привет, админы! Сегодня покажу вам 5 мощных команд, которые помогут быстро диагностировать проблемы с сетью в Linux. 🚀
1️⃣ ping – проверяем доступность хоста
Отправляет 4 пакета на
2️⃣ traceroute – отслеживаем маршрут пакетов
Выводит список узлов, через которые проходит трафик. Полезно, если соединение нестабильное.
3️⃣ netstat / ss – смотрим открытые соединения
Отображает открытые порты, какие процессы их используют и какие соединения установлены.
4️⃣ dig – проверяем работу DNS
Показывает IP-адреса и DNS-записи домена. Если резолвинг не работает — проблема в DNS.
5️⃣ tcpdump – анализируем сетевой трафик
Фильтрует HTTP-трафик на интерфейсе
⚡ Эти команды — must-have для любого админа! Какие из них используете чаще всего? Делитесь в комментариях! 🔥
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
Привет, админы! Сегодня покажу вам 5 мощных команд, которые помогут быстро диагностировать проблемы с сетью в Linux. 🚀
1️⃣ ping – проверяем доступность хоста
ping -c 4 google.com
Отправляет 4 пакета на
google.com и показывает, есть ли потери. Если пинг не проходит — проблемы с маршрутизацией или DNS. 2️⃣ traceroute – отслеживаем маршрут пакетов
traceroute google.com
Выводит список узлов, через которые проходит трафик. Полезно, если соединение нестабильное.
3️⃣ netstat / ss – смотрим открытые соединения
netstat -tulnp # для старых систем
ss -tulnp # альтернатива
Отображает открытые порты, какие процессы их используют и какие соединения установлены.
4️⃣ dig – проверяем работу DNS
dig google.com
Показывает IP-адреса и DNS-записи домена. Если резолвинг не работает — проблема в DNS.
5️⃣ tcpdump – анализируем сетевой трафик
tcpdump -i eth0 port 80
Фильтрует HTTP-трафик на интерфейсе
eth0. Можно использовать для отладки запросов. ⚡ Эти команды — must-have для любого админа! Какие из них используете чаще всего? Делитесь в комментариях! 🔥
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
👍7
🛠️ Оптимизация
Сегодня расскажу, как управлять журналами в Linux, чтобы они не разрастались до огромных размеров и не забивали диск. Логи — это хорошо, но когда они занимают десятки гигабайт, это уже проблема.
🔍 Проверяем размер логов
Сначала посмотрим, сколько места занимают журналы systemd:
Вы увидите что-то вроде:
Если слишком много, пора чистить!
🗑️ Очищаем журналы
Удаляем все старые логи, оставляя только 500M:
Можно также ограничить по времени, например, оставить только записи за последние 7 дней:
⚙️ Ограничиваем размер логов
Чтобы в будущем избежать разрастания, задаем лимит в
Применяем изменения:
🚀 Итог
Теперь логи не будут бесконтрольно расти, а система останется в порядке.
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
journalctl: освобождаем место и ускоряем систему Сегодня расскажу, как управлять журналами в Linux, чтобы они не разрастались до огромных размеров и не забивали диск. Логи — это хорошо, но когда они занимают десятки гигабайт, это уже проблема.
🔍 Проверяем размер логов
Сначала посмотрим, сколько места занимают журналы systemd:
journalctl --disk-usage
Вы увидите что-то вроде:
Archived and active journals take up 2.3G in total.
Если слишком много, пора чистить!
🗑️ Очищаем журналы
Удаляем все старые логи, оставляя только 500M:
journalctl --vacuum-size=500M
Можно также ограничить по времени, например, оставить только записи за последние 7 дней:
journalctl --vacuum-time=7d
⚙️ Ограничиваем размер логов
Чтобы в будущем избежать разрастания, задаем лимит в
/etc/systemd/journald.conf:
[Journal]
SystemMaxUse=500M
SystemMaxFileSize=100M
Применяем изменения:
systemctl restart systemd-journald
🚀 Итог
Теперь логи не будут бесконтрольно расти, а система останется в порядке.
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
👍7
🔥 Как быстро узнать, какие порты открыты в системе?
Привет, админы! Сегодня разберёмся, как быстро и эффективно проверить, какие порты открыты в вашей системе. Это особенно полезно при отладке сервисов, проверке безопасности или поиске проблем с сетевыми соединениями.
📌 1. Используем netstat
✅ Покажет все открытые TCP и UDP порты вместе с PID процесса.
🛑 Недостаток: В новых системах netstat заменён на ss.
📌 2. Используем ss (современный аналог netstat)
✅ Быстрее, понятнее, доступно в большинстве дистрибутивов.
📌 3. Проверяем с помощью lsof
✅ Покажет процессы, использующие сеть, без разрешения DNS-имен (быстрее).
📌 4. Альтернативный вариант – fuser
✅ Узнаем, какие процессы слушают конкретный порт.
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
Привет, админы! Сегодня разберёмся, как быстро и эффективно проверить, какие порты открыты в вашей системе. Это особенно полезно при отладке сервисов, проверке безопасности или поиске проблем с сетевыми соединениями.
📌 1. Используем netstat
netstat -tulnp
✅ Покажет все открытые TCP и UDP порты вместе с PID процесса.
🛑 Недостаток: В новых системах netstat заменён на ss.
📌 2. Используем ss (современный аналог netstat)
ss -tulnp
✅ Быстрее, понятнее, доступно в большинстве дистрибутивов.
📌 3. Проверяем с помощью lsof
lsof -i -P -n
✅ Покажет процессы, использующие сеть, без разрешения DNS-имен (быстрее).
📌 4. Альтернативный вариант – fuser
fuser -n tcp 80
✅ Узнаем, какие процессы слушают конкретный порт.
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
👍3
🔥 Разбираем `htop`: Альтернатива
Привет, коллеги! Сегодня разберем инструмент, который должен быть в арсенале каждого линукс-админа — htop. Это мощная альтернатива
📌 Почему
✅ Цветовая схема — информация подается визуально, что помогает быстрее анализировать нагрузку.
✅ Гибкость — можно настроить отображение колонок, фильтровать процессы, сортировать их по различным параметрам.
✅ Управление процессами —
✅ Горячие клавиши — удобный интерфейс для быстрого взаимодействия.
🛠 Установка
На большинстве дистрибутивов
🔹 Debian/Ubuntu:
🔹 CentOS/RHEL:
🔹 Arch Linux:
🚀 Основные фишки
🔸 Сортировка процессов — нажмите
🔸 Завершение процессов — выделяем процесс, жмем
🔸 Дерево процессов —
🔸 Поиск процесса —
🔸 Изменение приоритета (nice) —
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
top для мониторинга системы Привет, коллеги! Сегодня разберем инструмент, который должен быть в арсенале каждого линукс-админа — htop. Это мощная альтернатива
top, которая делает мониторинг ресурсов системы удобным и наглядным. 📌 Почему
htop круче top?✅ Цветовая схема — информация подается визуально, что помогает быстрее анализировать нагрузку.
✅ Гибкость — можно настроить отображение колонок, фильтровать процессы, сортировать их по различным параметрам.
✅ Управление процессами —
htop позволяет не только наблюдать, но и управлять процессами (убивать, приостанавливать, менять приоритет и т.д.). ✅ Горячие клавиши — удобный интерфейс для быстрого взаимодействия.
🛠 Установка
На большинстве дистрибутивов
htop уже есть в репозиториях: 🔹 Debian/Ubuntu:
sudo apt install htop
🔹 CentOS/RHEL:
sudo yum install htop
🔹 Arch Linux:
sudo pacman -S htop
🚀 Основные фишки
🔸 Сортировка процессов — нажмите
F6, чтобы выбрать критерий сортировки. 🔸 Завершение процессов — выделяем процесс, жмем
F9, выбираем сигнал. 🔸 Дерево процессов —
F5 (отображает родственные связи между процессами). 🔸 Поиск процесса —
F3, вводим имя процесса. 🔸 Изменение приоритета (nice) —
F7`/`F8 для повышения/понижения приоритета. htop — это удобный инструмент для мониторинга и управления процессами в Linux. Пользуетесь ли вы htop или предпочитаете что-то другое? Пишите в комментариях! 👇 #Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
👍5
🔥 Как быстро поднять временный веб-сервер в Linux?
Бывают ситуации, когда нужно быстро расшарить файлы или запустить простой веб-сервер без установки тяжелых пакетов. Например, передать файл коллеге или проверить верстку локально. В таких случаях можно воспользоваться встроенными средствами.
📌 Python
Если у вас установлен Python, запустить HTTP-сервер можно одной командой:
Теперь ваш сервер доступен по адресу
Если хотите раздавать файлы из конкретной директории:
📌 PHP
Для тех, у кого есть PHP:
Он тоже запустит веб-сервер на 8080 порту.
📌 BusyBox
Если на сервере установлен
📌 Node.js
У кого есть
или установить глобально:
💡 Все эти методы хороши для временных решений. Но если вам нужен стабильный веб-сервер, лучше использовать NGINX или Apache.
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
Бывают ситуации, когда нужно быстро расшарить файлы или запустить простой веб-сервер без установки тяжелых пакетов. Например, передать файл коллеге или проверить верстку локально. В таких случаях можно воспользоваться встроенными средствами.
📌 Python
Если у вас установлен Python, запустить HTTP-сервер можно одной командой:
python3 -m http.server 8080
Теперь ваш сервер доступен по адресу
https://localhost:8080/. Если хотите раздавать файлы из конкретной директории:
python3 -m http.server 8080 --directory /путь/к/папке
📌 PHP
Для тех, у кого есть PHP:
php -S 0.0.0.0:8080
Он тоже запустит веб-сервер на 8080 порту.
📌 BusyBox
Если на сервере установлен
busybox, можно использовать его встроенный HTTP-сервер:
busybox httpd -f -p 8080 -h /путь/к/каталогу
📌 Node.js
У кого есть
node, можно использовать http-server:
npx http-server -p 8080
или установить глобально:
npm install -g http-server
http-server -p 8080
💡 Все эти методы хороши для временных решений. Но если вам нужен стабильный веб-сервер, лучше использовать NGINX или Apache.
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
👍6
🔐 Как заставить пользователя сменить пароль при следующем входе в Linux
Привет, коллеги! Сегодня разберем полезный трюк: как заставить пользователя сменить пароль при следующем входе в систему. Это особенно актуально при создании новых учетных записей или после сброса пароля.
🔸 1. Используем команду
Самый простой способ принудительно заставить пользователя сменить пароль — это выполнить команду:
🔹 Что делает эта команда?
Она устанавливает дату последней смены пароля в 0, что вынуждает пользователя изменить его при следующем входе.
🔸 2. Используем команду
Команда
🔹 Как это работает?
Флаг
🔸 3. Политика паролей для всех пользователей
Если тебе нужно настроить принудительную смену пароля через определенное время для всех пользователей, используй:
🔹 Что делает этот параметр?
Устанавливает срок действия пароля в 30 дней. После истечения этого срока система потребует его смены.
🔸 4. Проверка настроек пароля пользователя
Чтобы убедиться, что правило применилось, можно выполнить:
Это покажет дату последней смены пароля, срок его действия и дату истечения.
🔸 5. Блокировка входа без смены пароля
Если ты хочешь полностью заблокировать пользователя, пока он не изменит пароль, можешь сначала принудительно истечь срок пароля:
А затем снова разрешить вход после смены пароля:
🔥 Итог
🔹 Используй
🔹 Проверяй настройки командой
🔹 Настраивай срок действия пароля глобально через
🔹 При необходимости блокируй вход до смены пароля.
Применяй эти методы и будь уверен в безопасности системы! 🔒
💬 Делись своим опытом в комментариях! Какие еще трюки используешь для управления паролями?
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
Привет, коллеги! Сегодня разберем полезный трюк: как заставить пользователя сменить пароль при следующем входе в систему. Это особенно актуально при создании новых учетных записей или после сброса пароля.
🔸 1. Используем команду
passwd Самый простой способ принудительно заставить пользователя сменить пароль — это выполнить команду:
passwd --expire username
🔹 Что делает эта команда?
Она устанавливает дату последней смены пароля в 0, что вынуждает пользователя изменить его при следующем входе.
🔸 2. Используем команду
chage Команда
chage позволяет гибко управлять политикой паролей. Чтобы заставить пользователя сменить пароль при следующем входе:
chage -d 0 username
🔹 Как это работает?
Флаг
-d 0 сбрасывает дату последней смены пароля, и система требует его обновления при следующем входе. 🔸 3. Политика паролей для всех пользователей
Если тебе нужно настроить принудительную смену пароля через определенное время для всех пользователей, используй:
chage -M 30 username
🔹 Что делает этот параметр?
Устанавливает срок действия пароля в 30 дней. После истечения этого срока система потребует его смены.
🔸 4. Проверка настроек пароля пользователя
Чтобы убедиться, что правило применилось, можно выполнить:
chage -l username
Это покажет дату последней смены пароля, срок его действия и дату истечения.
🔸 5. Блокировка входа без смены пароля
Если ты хочешь полностью заблокировать пользователя, пока он не изменит пароль, можешь сначала принудительно истечь срок пароля:
passwd -l username
А затем снова разрешить вход после смены пароля:
passwd -u username
🔥 Итог
🔹 Используй
passwd --expire username или chage -d 0 username, чтобы заставить пользователя сменить пароль. 🔹 Проверяй настройки командой
chage -l username. 🔹 Настраивай срок действия пароля глобально через
chage -M 30 username. 🔹 При необходимости блокируй вход до смены пароля.
Применяй эти методы и будь уверен в безопасности системы! 🔒
💬 Делись своим опытом в комментариях! Какие еще трюки используешь для управления паролями?
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
👍8
🖥️ Как проверить, что cron работает корректно?
Привет, админы! Сегодня разберём важную тему — как убедиться, что
🔎 Проверяем cron пошагово:
1️⃣ Проверяем, работает ли сам демон cron:
Если он не запущен, запускаем:
2️⃣ Смотрим логи cron:
На большинстве дистрибутивов логи находятся в
Если сообщений нет, проверьте, включён ли лог cron в
3️⃣ Запускаем задание вручную
Скопируйте команду из
4️⃣ Добавляем вывод в лог
Иногда cron просто не видит ошибки. Давайте принудительно записывать их в лог:
5️⃣ Проверяем переменные окружения
Cron использует ограниченный
или задаём
6️⃣ Проверяем права и владельца
Скрипт может не запускаться из-за прав доступа. Даем права на исполнение:
Если задание в
💡 Бонус: визуальный мониторинг работы cron
Если вам надо отслеживать выполнение задач в реальном времени, установите
Пользуетесь ли вы чем-то ещё для отладки cron? Делитесь в комментариях! 🚀
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
Привет, админы! Сегодня разберём важную тему — как убедиться, что
cron действительно выполняет ваши задания. Бывает, что скрипт в crontab прописан, но не работает, и причина может быть неочевидной. 🔎 Проверяем cron пошагово:
1️⃣ Проверяем, работает ли сам демон cron:
systemctl status cron # Для систем с systemd (Ubuntu, Debian)
service cron status # Для старых систем
Если он не запущен, запускаем:
systemctl start cron
2️⃣ Смотрим логи cron:
На большинстве дистрибутивов логи находятся в
/var/log/syslog или /var/log/cron.log:
grep CRON /var/log/syslog
Если сообщений нет, проверьте, включён ли лог cron в
rsyslog.conf.3️⃣ Запускаем задание вручную
Скопируйте команду из
crontab и выполните в терминале, чтобы убедиться, что скрипт сам по себе работает.4️⃣ Добавляем вывод в лог
Иногда cron просто не видит ошибки. Давайте принудительно записывать их в лог:
* * * * * /path/to/script.sh >> /var/log/mycron.log 2>&1
5️⃣ Проверяем переменные окружения
Cron использует ограниченный
PATH. Если скрипт использует внешние команды, указываем полный путь:
/usr/bin/python3 /home/user/myscript.py
или задаём
PATH в начале crontab:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
6️⃣ Проверяем права и владельца
Скрипт может не запускаться из-за прав доступа. Даем права на исполнение:
chmod +x /path/to/script.sh
Если задание в
crontab -e, убедитесь, что оно прописано под нужным пользователем.💡 Бонус: визуальный мониторинг работы cron
Если вам надо отслеживать выполнение задач в реальном времени, установите
cronitor или healthchecks.io. Эти сервисы сообщат, если задание не отработало. Пользуетесь ли вы чем-то ещё для отладки cron? Делитесь в комментариях! 🚀
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
👍7
📌 Как быстро посмотреть историю изменений файла в Linux?
Сегодня покажу вам несколько способов, как отследить изменения в файле в Linux. Это может быть полезно для поиска причин ошибок, аудита или простого контроля за конфигурацией.
🔍 1.
Хотите узнать, когда последний раз изменялся файл? Используйте команду:
Вы увидите три временных метки:
- Access (чтение)
- Modify (изменение содержимого)
- Change (изменение метаданных, например, прав)
📝 2.
Для списка файлов в каталоге по дате изменения:
🕵️ 3.
Если у вас есть резервная копия файла, можно сравнить:
📜 4.
Лучший способ отслеживать изменения в важных файлах — использовать
После изменений проверяем разницу:
👀 5.
Если нужно следить за изменением файла в реальном времени, добавляем его в аудит:
А потом смотрим логи:
📢 Какой способ используете вы? Делитесь в комментариях! 🚀
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
Сегодня покажу вам несколько способов, как отследить изменения в файле в Linux. Это может быть полезно для поиска причин ошибок, аудита или простого контроля за конфигурацией.
🔍 1.
stat — метаданные файла Хотите узнать, когда последний раз изменялся файл? Используйте команду:
stat /etc/nginx/nginx.conf
Вы увидите три временных метки:
- Access (чтение)
- Modify (изменение содержимого)
- Change (изменение метаданных, например, прав)
📝 2.
ls -lt — сортировка по времени Для списка файлов в каталоге по дате изменения:
ls -lt /etc/nginx/
🕵️ 3.
diff — сравнение версий Если у вас есть резервная копия файла, можно сравнить:
diff /etc/nginx/nginx.conf /backup/nginx.conf
📜 4.
git — контроль версий Лучший способ отслеживать изменения в важных файлах — использовать
git:
cd /etc/nginx
git init
git add nginx.conf
git commit -m "Initial version"
После изменений проверяем разницу:
git diff nginx.conf
👀 5.
auditd — мониторинг изменений Если нужно следить за изменением файла в реальном времени, добавляем его в аудит:
auditctl -w /etc/nginx/nginx.conf -p wa -k nginx_conf_change
А потом смотрим логи:
ausearch -k nginx_conf_change --start today
📢 Какой способ используете вы? Делитесь в комментариях! 🚀
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
👍6
🔥 Автоматический перезапуск упавшего сервиса в Linux
Привет, коллеги! Сегодня разберём, как автоматически перезапускать сервис, если он вдруг упал. Это полезно для критичных приложений, которые должны работать 24/7.
📌 Метод 1: systemd (современный способ)
Если ваш сервис управляется
1️⃣ Открываем юнит-файл сервиса:
2️⃣ Добавляем или редактируем секцию
🔹
🔹
3️⃣ Применяем изменения:
📌 Метод 2: Monit (для расширенного контроля)
Если нужен мониторинг с уведомлениями, используем Monit:
1️⃣ Устанавливаем:
2️⃣ Добавляем правило для сервиса:
Пример конфига:
3️⃣ Перезапускаем Monit:
📌 Метод 3: crontab (самый простой способ)
Если сервис падает редко, можно просто проверять его раз в минуту:
⚡ Вывод:
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
Привет, коллеги! Сегодня разберём, как автоматически перезапускать сервис, если он вдруг упал. Это полезно для критичных приложений, которые должны работать 24/7.
📌 Метод 1: systemd (современный способ)
Если ваш сервис управляется
systemd, настройте автоматический рестарт: 1️⃣ Открываем юнит-файл сервиса:
sudo nano /etc/systemd/system/имя_сервиса.service
2️⃣ Добавляем или редактируем секцию
[Service]:
[Service]
Restart=always
RestartSec=5
🔹
Restart=always – сервис перезапускается при любой ошибке 🔹
RestartSec=5 – задержка 5 секунд перед рестартом 3️⃣ Применяем изменения:
sudo systemctl daemon-reexec
sudo systemctl restart имя_сервиса
📌 Метод 2: Monit (для расширенного контроля)
Если нужен мониторинг с уведомлениями, используем Monit:
1️⃣ Устанавливаем:
sudo apt install monit # Debian/Ubuntu
sudo yum install monit # CentOS
2️⃣ Добавляем правило для сервиса:
sudo nano /etc/monitrc
Пример конфига:
check process nginx with pidfile /run/nginx.pid
start program = "/bin/systemctl start nginx"
stop program = "/bin/systemctl stop nginx"
if 5 restarts within 5 cycles then unmonitor
3️⃣ Перезапускаем Monit:
sudo systemctl restart monit
📌 Метод 3: crontab (самый простой способ)
Если сервис падает редко, можно просто проверять его раз в минуту:
* * * * * pgrep -x nginx > /dev/null || systemctl restart nginx
⚡ Вывод:
systemd – лучший вариант, Monit подходит для расширенного мониторинга, а cron – для простых случаев. #Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
👍8
🛠 Как проверить производительность диска в Linux?
Сегодня я покажу вам, как быстро протестировать скорость работы диска в Linux. Это пригодится, если вы хотите понять, насколько хорошо работает ваш диск, обнаружить узкие места или просто провести диагностику.
📌 1. Используем hdparm
Если у вас обычный HDD или SSD без файловой системы (например, только подключенный диск), попробуйте:
Где sdX — ваш диск. Этот тест показывает две вещи:
• Кэшированное чтение (-T) — скорость, с которой данные читаются из кэша.
• Фактическое чтение (-t) — скорость последовательного чтения с диска.
Пример вывода:
📌 2. Используем dd
Простой способ протестировать скорость записи и чтения:
Запись файла 1 ГБ:
Чтение файла 1 ГБ:
Опция oflag=direct (для записи) и iflag=direct (для чтения) позволяет избежать кэширования.
📌 3. Используем fio (более продвинутый тест)
Если вам нужны подробные метрики (IOPS, латентность и т. д.), лучше использовать fio:
Этот тест эмулирует случайное чтение файла testfile размером 1 ГБ с блоками по 4K.
🧐 Какой способ вы используете чаще всего? Может, есть свой любимый инструмент? Пишите в комментариях!
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
Сегодня я покажу вам, как быстро протестировать скорость работы диска в Linux. Это пригодится, если вы хотите понять, насколько хорошо работает ваш диск, обнаружить узкие места или просто провести диагностику.
📌 1. Используем hdparm
Если у вас обычный HDD или SSD без файловой системы (например, только подключенный диск), попробуйте:
sudo hdparm -Tt /dev/sdXГде sdX — ваш диск. Этот тест показывает две вещи:
• Кэшированное чтение (-T) — скорость, с которой данные читаются из кэша.
• Фактическое чтение (-t) — скорость последовательного чтения с диска.
Пример вывода:
Timing cached reads: 12000 MB in 2.00 seconds = 6000.00 MB/sec
Timing buffered disk reads: 500 MB in 3.00 seconds = 166.67 MB/sec📌 2. Используем dd
Простой способ протестировать скорость записи и чтения:
Запись файла 1 ГБ:
dd if=/dev/zero of=testfile bs=1M count=1024 oflag=directЧтение файла 1 ГБ:
dd if=testfile of=/dev/null bs=1M count=1024 iflag=directОпция oflag=direct (для записи) и iflag=direct (для чтения) позволяет избежать кэширования.
📌 3. Используем fio (более продвинутый тест)
Если вам нужны подробные метрики (IOPS, латентность и т. д.), лучше использовать fio:
fio --name=test --size=1G --filename=testfile --rw=read --bs=4k --iodepth=32 --numjobs=1 --time_based --runtime=10 --group_reportingЭтот тест эмулирует случайное чтение файла testfile размером 1 ГБ с блоками по 4K.
🧐 Какой способ вы используете чаще всего? Может, есть свой любимый инструмент? Пишите в комментариях!
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
👍5
🛠 Оптимизация автозапуска сервисов в Linux: systemd vs rc.local
Привет, коллеги! Сегодня расскажу, как грамотно настраивать автозапуск сервисов в Linux. Многие старые админы привыкли добавлять команды в /etc/rc.local, но в современных дистрибутивах (особенно с systemd) этот метод уже неактуален.
❌ Почему не стоит использовать rc.local?
1️⃣ Отсутствие контроля – трудно мониторить выполнение команд и возможные ошибки.
2️⃣ Не универсально – в некоторых дистрибутивах этот файл просто отсутствует.
3️⃣ Не всегда срабатывает – если что-то пойдет не так, вы даже не узнаете, почему.
✅ Как правильно настроить автозапуск через systemd?
Допустим, у вас есть скрипт
1️⃣ Создаем юнит-файл:
2️⃣ Добавляем содержимое:
3️⃣ Активируем и запускаем:
Теперь ваш скрипт будет запускаться при загрузке системы и автоматически перезапускаться в случае сбоя!
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
Привет, коллеги! Сегодня расскажу, как грамотно настраивать автозапуск сервисов в Linux. Многие старые админы привыкли добавлять команды в /etc/rc.local, но в современных дистрибутивах (особенно с systemd) этот метод уже неактуален.
❌ Почему не стоит использовать rc.local?
1️⃣ Отсутствие контроля – трудно мониторить выполнение команд и возможные ошибки.
2️⃣ Не универсально – в некоторых дистрибутивах этот файл просто отсутствует.
3️⃣ Не всегда срабатывает – если что-то пойдет не так, вы даже не узнаете, почему.
✅ Как правильно настроить автозапуск через systemd?
Допустим, у вас есть скрипт
/opt/myscript.sh, который нужно запускать при старте системы. 1️⃣ Создаем юнит-файл:
sudo nano /etc/systemd/system/myscript.service
2️⃣ Добавляем содержимое:
[Unit]
Description=Мой скрипт
After=network.target
[Service]
ExecStart=/bin/bash /opt/myscript.sh
Restart=always
User=root
[Install]
WantedBy=multi-user.target
3️⃣ Активируем и запускаем:
sudo systemctl daemon-reload
sudo systemctl enable myscript
sudo systemctl start myscript
Теперь ваш скрипт будет запускаться при загрузке системы и автоматически перезапускаться в случае сбоя!
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
👍6
🔥 Как проверить, какие процессы используют диск в Linux?
Всем доброо вечера! Сегодня разберёмся с ситуацией, когда диск в системе нагружен, а причина не ясна. Как узнать, какие процессы активно читают/пишут данные?
📌 1. Используем
Это удобная утилита, показывающая процессы, активно работающие с диском. Установить её можно так:
Запускаем команду:
Можно добавить флаг
📌 2. Анализируем с
Утилита
Здесь
📌 3. Используем
Чтобы узнать, какие файлы открыты процессами на диске:
Например, чтобы посмотреть файлы в
📌 4.
Хотите увидеть, какие файлы изменяются? Запустите:
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
Всем доброо вечера! Сегодня разберёмся с ситуацией, когда диск в системе нагружен, а причина не ясна. Как узнать, какие процессы активно читают/пишут данные?
📌 1. Используем
iotop Это удобная утилита, показывающая процессы, активно работающие с диском. Установить её можно так:
# Для Debian/Ubuntu:
sudo apt install iotop
# Для RHEL/CentOS/AlmaLinux/Rocky:
sudo dnf install iotop
Запускаем команду:
sudo iotop
Можно добавить флаг
-o, чтобы показать только активные процессы:
sudo iotop -o
📌 2. Анализируем с
pidstat Утилита
pidstat из пакета sysstat поможет увидеть нагрузку на диск со стороны процессов:
sudo pidstat -d 1
Здесь
-d — мониторинг I/O, а 1 — обновление раз в секунду.📌 3. Используем
lsofЧтобы узнать, какие файлы открыты процессами на диске:
sudo lsof +D /путь/к/директории
Например, чтобы посмотреть файлы в
/var/log:
sudo lsof +D /var/log
📌 4.
fatrace – в реальном времени Хотите увидеть, какие файлы изменяются? Запустите:
sudo fatrace
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
👍8
📌 Полезные флаги команды
Привет, коллеги! Сегодня давайте поговорим о команде
🔹
🔹
🔹
🔹
🔹
🔹
🔹
💡 Бонус: если хотите раскрасить вывод
Теперь файлы и папки будут выделяться цветами!
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
ls, о которых стоит знать Привет, коллеги! Сегодня давайте поговорим о команде
ls. Казалось бы, что тут обсуждать? Все знают, что ls показывает файлы в каталоге. Но есть несколько полезных флагов, которые могут упростить вам жизнь. 🔹
ls -lh – выводит список файлов в удобном для чтения формате (размеры в KB, MB и GB). 🔹
ls -la – показывает все файлы, включая скрытые (. и ..). 🔹
ls -lt – сортирует файлы по дате изменения (сначала самые свежие). 🔹
ls -ltr – тоже самое, но в обратном порядке (старые файлы в начале). 🔹
ls -S – сортировка по размеру (самые большие файлы сверху). 🔹
ls -d */ – покажет только каталоги в текущем пути. 🔹
ls -1 – выводит файлы в одну колонку, удобно для скриптов. 💡 Бонус: если хотите раскрасить вывод
ls, добавьте в .bashrc или .zshrc:
alias ls='ls --color=auto'
Теперь файлы и папки будут выделяться цветами!
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
👍9
📌IPv4 Адресация и Субнеттинг Упрощённо!
1. IPv4-адрес – это 32-битное число, разделённое на 4 октета. Пример:
2. Классы IP-адресов:
- Класс A:
- Класс B:
- Класс C:
3. Маска подсети помогает делить IP-адрес на сеть и хосты:
- Пример: Маска
4. CIDR (Classless Inter-Domain Routing) используется для гибкого управления подсетями:
- Пример:
5. Субнеттинг позволяет делить сеть на меньшие подсети:
- Пример:
-
-
6. Формулы для расчётов:
- Количество адресов = 2^(32 - префикс CIDR).
- Количество хостов = (2^(32 - префикс CIDR)) - 2 (один для сети, другой для широковещательного).
7. Широковещательный адрес (Broadcast) – последний адрес в подсети.
- Пример: для сети
8. Адрес сети – первый адрес в подсети.
- Пример: для сети
9. Приватные IP-адреса:
- Класс A:
- Класс B:
- Класс C:
10. Зачем субнеттинг?
- Эффективное использование IP-адресов.
- Сегментация сети для повышения безопасности.
- Управление трафиком и уменьшение широковещательных доменов.
Практический пример:
Сеть:
Маска подсети:
- Количество адресов:
- Хосты:
- Подсети:
1.
2.
#Сети@linux_odmin #Шпаргалка@linux_odmin
👉 @linux_odmin
1. IPv4-адрес – это 32-битное число, разделённое на 4 октета. Пример:
192.168.1.1.2. Классы IP-адресов:
- Класс A:
1.0.0.0 - 126.255.255.255 (маска подсети по умолчанию: 255.0.0.0).- Класс B:
128.0.0.0 - 191.255.255.255 (маска подсети по умолчанию: 255.255.0.0).- Класс C:
192.0.0.0 - 223.255.255.255 (маска подсети по умолчанию: 255.255.255.0).3. Маска подсети помогает делить IP-адрес на сеть и хосты:
- Пример: Маска
255.255.255.0 означает, что первые 3 октета — это сеть, а последний — хосты.4. CIDR (Classless Inter-Domain Routing) используется для гибкого управления подсетями:
- Пример:
/24 = 255.255.255.0 (256 адресов, из которых 254 доступны для хостов).5. Субнеттинг позволяет делить сеть на меньшие подсети:
- Пример:
192.168.1.0/24 → можно разделить на две подсети /25:-
192.168.1.0 - 192.168.1.127-
192.168.1.128 - 192.168.1.255.6. Формулы для расчётов:
- Количество адресов = 2^(32 - префикс CIDR).
- Количество хостов = (2^(32 - префикс CIDR)) - 2 (один для сети, другой для широковещательного).
7. Широковещательный адрес (Broadcast) – последний адрес в подсети.
- Пример: для сети
192.168.1.0/24 широковещательный адрес – 192.168.1.255.8. Адрес сети – первый адрес в подсети.
- Пример: для сети
192.168.1.0/24 адрес сети – 192.168.1.0.9. Приватные IP-адреса:
- Класс A:
10.0.0.0 - 10.255.255.255.- Класс B:
172.16.0.0 - 172.31.255.255.- Класс C:
192.168.0.0 - 192.168.255.255.10. Зачем субнеттинг?
- Эффективное использование IP-адресов.
- Сегментация сети для повышения безопасности.
- Управление трафиком и уменьшение широковещательных доменов.
Практический пример:
Сеть:
192.168.10.0/26 Маска подсети:
255.255.255.192 - Количество адресов:
64 (2^6). - Хосты:
62 (64-2). - Подсети:
1.
192.168.10.0 - 192.168.10.63 2.
192.168.10.64 - 192.168.10.127 #Сети@linux_odmin #Шпаргалка@linux_odmin
👉 @linux_odmin
🔥4👍2
📌 Как увеличить размер каталога
Привет, коллеги! Сегодня поговорим об увеличении каталога tmp.
Каталог
🔍 Проверка текущего размера
Чтобы узнать, как
или
Если
🔹 Вариант 1: Увеличение tmpfs (в RAM)
Если
Где
⚠️ Это временное изменение! После перезагрузки сбросится.
Чтобы сделать его постоянным, добавляем строку в
Затем применяем изменения:
🔹 Вариант 2: Использование раздела на диске
Если нужно хранить данные на диске, можно создать отдельный раздел.
1️⃣ Выбираем диск и создаем раздел (например,
2️⃣ Монтируем его:
3️⃣ Делаем постоянным, добавив в
🔹 Вариант 3: Использование файла-контейнера
Если новый раздел не вариант, можно создать файл и смонтировать его как
1️⃣ Создаем файл (например, 4ГБ):
2️⃣ Форматируем его:
3️⃣ Монтируем его в
4️⃣ Добавляем в
🔥 Итог
✔ Быстрое изменение (RAM) –
✔ Постоянное изменение (RAM) – правка
✔ Использование диска – монтирование отдельного раздела
✔ Файл-контейнер – если раздел недоступен
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
/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
👍5
🛡 Как быстро заблокировать IP через
Иногда нужно срочно заблокировать IP — скажем, увидели подозрительную активность в логах
Но есть нюанс: при следующей перезагрузке этот IP снова станет "добрым". Чтобы сохранить правило:
1. Для систем на Debian/Ubuntu
Установите
И сохраните правила:
2. Для CentOS/RHEL
Используйте
💡 Совет: если часто блокируете IP вручную — сделайте себе алиас в
Теперь можно будет писать так:
📌 А вы как чаще блокируете IP — через
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
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
👍8
🧰 Проверка сетевых подключений с помощью
Заменим устаревший
Сегодня хочу показать вам, как удобно и эффективно использовать команду
🔍 Примеры, которые стоит запомнить:
Показывает все слушающие TCP/UDP порты без разрешения имён. Часто использую при проверке, какие службы открыты наружу.
Показывает активные TCP-соединения с указанием PID/имени процесса. Очень выручает при отладке приложений, которые что-то "держат".
Краткая сводка по соединениям — как
💡 Совет: если у вас в системе много соединений, используйте
Покажет только установленные SSH-соединения — очень удобно, если сервер используется как bastion.
👨💻 А вы уже полностью перешли на
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
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
👍5
🛠 Как узнать, кто перезагрузил сервер?
Сегодня покажу вам простой способ выяснить, кто именно инициировал перезагрузку сервера. Иногда бывает так: сервер внезапно ушёл в ребут, и ты не уверен — это был плановый рестарт, баг или кто-то нажал
🔍 Шаг 1: Проверяем журнал перезагрузки
Эта команда покажет дату и время перезагрузки. Но кто?
🔍 Шаг 2: Ищем инициатора в журнале auditd (если он включён)
или
Это поможет, если у вас включён
🔍 Шаг 3: Проверка
Здесь могут быть строки вроде:
или
UID поможет понять, какой пользователь инициировал ребут.
🔍 Шаг 4: Кто был в системе до ребута?
Посмотри, кто был залогинен незадолго до перезагрузки. Возможно, это и есть "виновник".
🧠 Мой совет: Настрой логирование и аудит таких событий заранее — особенно на продакшене. А ещё можешь повесить алерт на неожиданные ребуты через Prometheus + Alertmanager.
Полезно? Делитесь в комментах своими кейсами, когда сервер ушёл в ребут «сам по себе» 😅
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
Сегодня покажу вам простой способ выяснить, кто именно инициировал перезагрузку сервера. Иногда бывает так: сервер внезапно ушёл в ребут, и ты не уверен — это был плановый рестарт, баг или кто-то нажал
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
👍6
🧠 Что делает команда
Многие слышали о
🔹 Что делает
Она заменяет текущий процесс новым, без создания дочернего. То есть, вместо запуска новой программы — текущий процесс «перевоплощается» в неё.
Простой пример:
В этом случае оболочка
🛠 Где это может пригодиться:
1. В systemd-юнитах — при запуске сервиса через скрипт:
Это позволит системе правильно отслеживать основной процесс.
2. В контейнерах (например, Docker) — если вы запускаете скрипт в качестве
3. Для перенаправления ввода/вывода:
Всё, что будет выведено в stdout и stderr после этой строки — пойдёт в лог.
⚡
А вы используете
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
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
👍5
📌 Команда : xargs — что это, как использовать с find, реальные примеры
Если ты всё ещё пишешь
— пора познакомиться с
🔹 Что делает
Простыми словами: берёт вывод одной команды и передаёт его как аргументы другой.
Часто используется в связке с
🔧 Пример 1: удаление файлов
Быстрее и читаемее, чем
А если в путях есть пробелы — добавь
🔧 Пример 2: архивация большого списка файлов
Но лучше писать так:
⚠️ Полезные флаги
-
-
-
🧠 Где применять
- Удаление, копирование, перемещение файлов
- Обработка списков (имён, URL, путей)
- Массовый запуск скриптов
- Комбинация с
✍️ Итог
Один раз освоил — и половина баш-магии стала проще.
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
Если ты всё ещё пишешь
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
👍5
🎯 Как быстро очистить лог-файлы, не перезапуская сервис
Привет, коллеги! Сегодня хочу показать простой, но очень полезный приём для работы с логами. Иногда лог-файлы разрастаются до гигантских размеров, и хочется их обнулить — но без остановки сервиса, который пишет в этот файл.
🔧 Вот как это сделать:
Или, альтернативно:
📌 Что здесь происходит:
-
-
💡 Главное: не удаляйте лог-файл напрямую!
Если вы сделаете
Если лог-файл всё-таки нужно удалить — сделайте это аккуратно:
Или используйте
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
Привет, коллеги! Сегодня хочу показать простой, но очень полезный приём для работы с логами. Иногда лог-файлы разрастаются до гигантских размеров, и хочется их обнулить — но без остановки сервиса, который пишет в этот файл.
🔧 Вот как это сделать:
: > /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
👍5