fa
Feedback
Bash Советы

Bash Советы

رفتن به کانال در Telegram

🚀 Секреты и советы по Bash 🔹 Полезные трюки, хитрые однострочники и лайфхаки для работы в терминале. 🔹 Автоматизация, скрипты и оптимизация работы в Linux. 🔹 Стать мастером Bash легко – просто подпишись! По всем вопросам @evgenycarter

نمایش بیشتر
2 753
مشترکین
-124 ساعت
-47 روز
-630 روز

در حال بارگیری داده...

کانال‌های مشابه
هیچ داده‌ای
مشکلی وجود دارد؟ لطفاً صفحه را تازه کنید یا با مدیر پشتیبانی ما تماس بگیرید.
اشارات ورودی و خروجی
---
---
---
---
---
---
جذب مشترکین
ژوئن '26
ژوئن '26
+1
در 0 کانال‌ها
مه '26
+30
در 0 کانال‌ها
Get PRO
آوریل '26
+52
در 2 کانال‌ها
Get PRO
مارس '26
+42
در 2 کانال‌ها
Get PRO
فوریه '26
+49
در 0 کانال‌ها
Get PRO
ژانویه '26
+52
در 6 کانال‌ها
Get PRO
دسامبر '25
+66
در 1 کانال‌ها
Get PRO
نوامبر '25
+234
در 32 کانال‌ها
Get PRO
اکتبر '25
+118
در 5 کانال‌ها
Get PRO
سپتامبر '25
+220
در 37 کانال‌ها
Get PRO
اوت '25
+198
در 5 کانال‌ها
Get PRO
ژوئیه '25
+229
در 27 کانال‌ها
Get PRO
ژوئن '25
+336
در 22 کانال‌ها
Get PRO
مه '25
+452
در 45 کانال‌ها
Get PRO
آوریل '25
+460
در 38 کانال‌ها
Get PRO
مارس '25
+552
در 39 کانال‌ها
Get PRO
فوریه '25
+1 149
در 3 کانال‌ها
تاریخ
رشد مشترکین
اشارات
کانال‌ها
04 ژوئن0
03 ژوئن0
02 ژوئن0
01 ژوئن+1
پست‌های کانال
🧹 Автоматическая очистка логов старше N дней Если логи разрастаются, а места становится всё меньше — пора автоматизировать и
🧹 Автоматическая очистка логов старше N дней Если логи разрастаются, а места становится всё меньше — пора автоматизировать их очистку! Вот простой способ удалить файлы старше, скажем, 14 дней:

find /var/log -type f -name "*.log" -mtime +14 -exec rm -f {} \;
🔧 Объяснение: - /var/log — каталог с логами (можно заменить на нужный путь); - -type f — только файлы; - -name "*.log" — ищем только .log-файлы; - -mtime +14 — которым больше 14 дней; - -exec rm -f {} — удаляем. 🛡️ Сухой запуск перед удалением:

find /var/log -type f -name "*.log" -mtime +14
Так ты увидишь, что будет удалено, прежде чем запускать rm. 📌 Добавь в cron, чтобы забыть о рутине навсегда. 📲 Мы в MAX 👉@bash_srv

2
⚠️ Хватит плодить хрупкие скрипты и оставлять дыры для троянов. Пора писать пуленепробиваемый инфраструктурный код. 🎥 Пригла
⚠️ Хватит плодить хрупкие скрипты и оставлять дыры для троянов. Пора писать пуленепробиваемый инфраструктурный код. 🎥 Приглашаем на вебинар - Продвинутый Bash На вебинаре вы узнаете: - Связка set -euo pipefail навсегда исключит тихое проглатывание ошибок и потерю данных в конвейерах. - Нативные подстановки Bash заменят тысячи ресурсоемких вызовов sed и сэкономят CPU. - Регулярный мониторинг системных профилей защитит продакшен от перехвата команд троянами. - Грамотный перехват сигналов через trap обеспечит безопасное сворачивание процессов при сбоях. В результате вебинара вы: - Замените многоуровневые костыли лаконичной логикой на базе ассоциативных массивов. - Исключите утечки глобальных переменных через жесткую изоляцию областей видимости в функциях. - Внедрите нативную построчную трассировку скриптов вместо примитивного дебага echo-принтами. - Начнете напрямую пробрасывать переменные окружения в SystemD-юниты для надежного старта сервисов. 🧠 Открытый урок проходит в преддверии старта курса «Администратор Linux. Продвинутый уровень» 👉 Для участи зарегистрируйтесь: https://vk.cc/cYnpiY Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
375
3
🚀 Bash-совет дня: Быстрый мониторинг TCP/UDP портов Иногда нужно оперативно узнать, какие порты слушает сервер и какие подкл
🚀 Bash-совет дня: Быстрый мониторинг TCP/UDP портов Иногда нужно оперативно узнать, какие порты слушает сервер и какие подключения активны. Вот простой однострочник, который поможет: sudo ss -tunlp 📌 Пояснение ключей: - -t — TCP - -u — UDP - -n — не разрешать имена хостов и портов (быстрее) - -l — только слушающие сокеты - -p — показать PID и имя процесса 🔍 Хочешь отсортировать по порту или найти конкретный? Добавь grep: sudo ss -tunlp | grep 8080 🎯 Альтернатива на случай, если нет ss: sudo netstat -tunlp Полезно для отладки фаервола, проверки работы сервисов или просто для уверенности, что сервер не слушает ничего лишнего 😉 📲 Мы в MAX 👉@bash_srv
350
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 Питер Новости: Санкт-Петербург / СПБ / ДТП
361
5
🚀 Очистка кэша пакетного менеджера APT Иногда кэш пакетов APT разрастается и занимает лишнее место. Ниже написал простой скр
🚀 Очистка кэша пакетного менеджера APT Иногда кэш пакетов APT разрастается и занимает лишнее место. Ниже написал простой скрипт, который поможет автоматизировать очистку и освободить дисковое пространство 💾 #!/bin/bash # Очищаем кэш APT echo "🧼 Очистка кэша APT..." sudo apt clean sudo apt autoclean # Удаляем неиспользуемые пакеты echo "🗑 Удаление неиспользуемых пакетов..." sudo apt autoremove -y # Отчёт о свободном месте echo "📊 Свободное место после очистки:" df -h / 📌 Как использовать: 1. Сохрани как clean_apt.sh 2. Сделай исполняемым: chmod +x clean_apt.sh 3. Запускай по необходимости или добавь в cron 📲 Мы в MAX 👉@bash_srv
566
6
🧠 Логи — Самые частые IP-адреса в access.log Когда нужно быстро понять, кто чаще всего лупит по серверу — вот простой одност
🧠 Логи — Самые частые IP-адреса в access.log Когда нужно быстро понять, кто чаще всего лупит по серверу — вот простой однострочник: awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head 🔍 Что делает: 1. awk '{print $1}' — вытаскивает IP из первой колонки. 2. sort и uniq -c — считает повторы. 3. sort -nr | head — выводит топ-10 по частоте. 📊 Вывод будет примерно такой: 152 192.168.1.10 103 203.0.113.45 87 172.16.0.5 🔥 Подходит для NGINX, Apache и других web-логов с классическим форматом. 📲 Мы в MAX 👉@bash_srv
587
7
📌 Регулярки - ищем email-адреса в тексте Если необходимо быстро вытащить email-адреса из логов или текстов, скрипт ниже для
📌 Регулярки - ищем email-адреса в тексте Если необходимо быстро вытащить email-адреса из логов или текстов, скрипт ниже для вас. grep -Eo '[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}' Примеры использования: cat файл.txt | grep -Eo '[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}' Оно находит валидные email'ы вроде: - support@domain.com - test.user+admin@sub.domain.co ⚙️ Флаг -o в grep выводит только совпадения, без строк целиком. 📲 Мы в MAX 👉@bash_srv
573
8
🚀 Подборка полезных 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 Питер Новости: Санкт-Петербург / СПБ / ДТП
518
9
Отключаем историю Bash (~/.bash_history) 🔒Отключение истории в текущей сессии Просто обнуляем переменные истории: unset HIST
Отключаем историю Bash (~/.bash_history) 🔒Отключение истории в текущей сессии Просто обнуляем переменные истории: unset HISTFILE export HISTSIZE=0 export HISTFILESIZE=0 💥 После этого Bash не будет сохранять историю вообще. Даже после выхода из сессии. 🧼 Стереть историю прямо сейчас history -c # очистить историю из памяти > ~/.bash_history # стереть файл истории 🔁 Отключить навсегда (для пользователя) Добавь в ~/.bashrc или ~/.bash_profile: export HISTFILE= export HISTSIZE=0 export HISTFILESIZE=0 📌 После перезапуска оболочки история вестись не будет. 🧙 Дополнительно (опционально) Чтобы Bash не пытался писать историю на выходе: unset HISTFILE trap "" EXIT 💡Без истории сложнее откатить действия, иногда это нужно. 📲 Мы в MAX 👉@bash_srv
445
10
🚀 Утилита timeout: автоматическое завершение зависших команд Когда ты запускаешь какую-то команду, и она может зависнуть - э
🚀 Утилита timeout: автоматическое завершение зависших команд Когда ты запускаешь какую-то команду, и она может зависнуть - это беда. Особенно в скриптах. На помощь приходит утилита timeout из пакета coreutils. Пример использования: timeout 30s ./backup.sh Эта команда завершит ./backup.sh, если она не завершится за 30 секунд. Можно задать время в секундах (s), минутах (m), часах (h) и даже днях (d). Что произойдёт при превышении тайм-аута? По умолчанию timeout отправляет сигнал SIGTERM, а через 5 секунд - SIGKILL, если процесс всё ещё жив. Изменение сигнала: timeout -s SIGINT 10s ./script.sh Проверка кода возврата: if timeout 5s ./some_command; then echo "Успешно" else echo "Команда завершена по таймауту или с ошибкой" fi 📲 Мы в MAX 👉@bash_srv
519
11
🛡 Проверка SSL-сертификатов с помощью Bash Иногда нужно быстро проверить срок действия SSL-сертификата удалённого сайта. Вот
🛡 Проверка SSL-сертификатов с помощью Bash Иногда нужно быстро проверить срок действия SSL-сертификата удалённого сайта. Вот удобный однострочник на Bash, который покажет дату окончания действия сертификата: echo | openssl s_client -servername example.com -connect example.com:443 2>/dev/null \ | openssl x509 -noout -dates | grep notAfter 📆 Чтобы получить только оставшиеся дни до окончания: end_date=$(echo | openssl s_client -servername example.com -connect example.com:443 2>/dev/null \ | openssl x509 -noout -enddate | cut -d= -f2) end_ts=$(date -d "$end_date" +%s) now_ts=$(date +%s) echo "Осталось дней: $(( (end_ts - now_ts) / 86400 ))" 🔒 Полезно для автоматического мониторинга или проверки перед продлением сертификатов! 📲 Мы в MAX 👉@bash_srv
612
12
📁Как отрезать расширение у файла в Bash filename="example.txt" name="${filename%.*}" echo "$name" 📌 Что тут происходит: - $
📁Как отрезать расширение у файла в Bash filename="example.txt" name="${filename%.*}" echo "$name" 📌 Что тут происходит: - ${filename%.*} — удаляет последнюю точку и всё после неё, то есть расширение. 👀 Примеры: filename="backup.tar.gz" name="${filename%.*}" # Результат: backup.tar Если хочешь убрать все расширения (в т.ч. .tar.gz), можно использовать вот так: filename="backup.tar.gz" name="${filename%%.*}" # Результат: backup 🧠 Под капотом: - %.* — удаляет самую правую точку и всё после. - %%.* — удаляет самую левую точку и всё после. Мощно и без внешних команд! 🚀 📲 Мы в MAX 👉@bash_srv
661
13
Как быстро найти и удалить пустые директории Иногда в системах с большим количеством файлов и директорий накапливаются пустые
Как быстро найти и удалить пустые директории Иногда в системах с большим количеством файлов и директорий накапливаются пустые папки. Вот простой способ найти и удалить их одним махом: find /path/to/search -type d -empty -delete 🔍 Разбор: - /path/to/search — укажи директорию, где искать. - -type d — ищем только директории. - -empty — фильтруем только пустые. - -delete — удаляем найденные. 🛡 Важно: Перед удалением рекомендую посмотреть, что именно будет удалено: find /path/to/search -type d -empty 📲 Мы в MAX 👉@bash_srv
751
14
Если вам часто приходится искать файлы по содержимому, то для этого есть мощная связка grep + find 🔍 Например, чтобы найти в
Если вам часто приходится искать файлы по содержимому, то для этого есть мощная связка grep + find 🔍 Например, чтобы найти все файлы с текстом "ERROR" в /var/log: find /var/log -type f -exec grep -H "ERROR" {} \; 📌 А если хотите искать рекурсивно по каталогу проще, используйте grep -r: grep -r "ERROR" /var/log ✨ Добавим подсветку совпадений: grep --color=always -r "ERROR" /var/log Теперь нужные строки будут выделяться цветом 📲 Мы в MAX 👉@bash_srv
886
15
Чтобы быстро проверить соединение с набором хостов, можно использовать след. скрипт #!/bin/bash for host in server1.example.c
Чтобы быстро проверить соединение с набором хостов, можно использовать след. скрипт #!/bin/bash for host in server1.example.com server2.example.com 8.8.8.8; do if ping -c1 -W1 "$host" &>/dev/null; then echo "✅ $host доступен" else echo "❌ $host недоступен" fi done 🔧 Можно добавить свои сервера в список и за пару секунд проверить доступность. 📲 Мы в MAX 👉@bash_srv
821
16
Как быстро проверить, какие процессы занимают больше всего памяти или CPU? Вместо длинных top или htop, можно использовать ск
Как быстро проверить, какие процессы занимают больше всего памяти или CPU? Вместо длинных top или htop, можно использовать скрипт ниже. ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head -n 15 🔍 Что делает скрипт: ps -eo ... - выводит список процессов с PID, PPID, командой, % памяти и CPU. --sort=-%mem - сортировка по памяти (от большего к меньшему). head -n 15 - показываем только топ-15 процессов. 📌 Если хотите отсортировать по CPU - замените %mem на %cpu: ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head -n 15 Удобно для быстрой диагностики «прожорливых» процессов без лишних инструментов! ⚡ 📲 Мы в MAX 👉@bash_srv
901
17
Скрипт, который находит в логах все уникальные IP-адреса и подсчитывает, сколько раз каждый встречался. #!/bin/bash # Подсчёт
Скрипт, который находит в логах все уникальные IP-адреса и подсчитывает, сколько раз каждый встречался. #!/bin/bash # Подсчёт уникальных IP-адресов в логах # автор: https://t.me/bash_srv LOGFILE="/var/log/nginx/access.log" awk '{print $1}' "$LOGFILE" | sort | uniq -c | sort -nr | head -20 🔍 Что делает скрипт: - awk '{print $1}' — вытаскивает первый столбец (обычно IP). - sort — сортирует все IP. - uniq -c — считает количество повторений. - sort -nr — сортировка по числу в обратном порядке. - head -20 — показывает топ-20 самых активных IP. 💡Будет полезн для быстрого анализа DDoS или частых запросов от конкретных клиентов. 📲 Мы в MAX 👉@bash_srv
922
18
Мониторинга логов в реальном времени Иногда нужно следить за логами, но обычный tail -f не всегда удобен. Ниже накидал скрипт
Мониторинга логов в реальном времени Иногда нужно следить за логами, но обычный tail -f не всегда удобен. Ниже накидал скрипт, который подсвечивает ошибки и предупреждения разными цветами: #!/bin/bash # автор: https://t.me/bash_srv LOGFILE="/var/log/syslog" tail -Fn0 "$LOGFILE" | \ while read line; do if echo "$line" | grep -q "ERROR"; then echo -e "\e[31m$line\e[0m" # красный для ошибок elif echo "$line" | grep -q "WARN"; then echo -e "\e[33m$line\e[0m" # жёлтый для предупреждений else echo "$line" fi done 📌 Можно изменить путь к файлу лога (LOGFILE) и ключевые слова (ERROR, WARN) под свои нужды. Очень удобно, когда нужно быстро отследить проблемные записи в логах. 📲 Мы в MAX 👉@bash_srv
879
19
🧯 Освобождаем место: «удалённые, но открытые» файлы Когда логи удалили, а место не вернулось - виноваты процессы, держащие д
🧯 Освобождаем место: «удалённые, но открытые» файлы Когда логи удалили, а место не вернулось - виноваты процессы, держащие дескрипторы удалённых файлов. Вот скрипт, который находит таких «пожирателей» и показывает, что можно обнулить. #!/usr/bin/env bash # автор: https://t.me/bash_srv # leakspace.sh — ищет удалённые, но открытые большие файлы # Использование: ./leakspace.sh [порог] # пример: ./leakspace.sh 1G set -o pipefail THRESH="${1:-100M}" THR_BYTES=$(numfmt --from=iec "$THRESH" 2>/dev/null || printf '104857600') echo -e "SIZE\tPID\tFD\tFILE" sudo lsof -nP | awk -v thr="$THR_BYTES" ' / \(deleted\)/ && $7 ~ /^[0-9]+$/ { size=$7; pid=$2; fd=$4; name=""; for (i=9;i<=NF;i++) name=name (i>9?" ":"") $i; if (size+0 >= thr) printf "%s\t%s\t%s\t%s\n", size, pid, fd, name }' | sort -nr \ | numfmt --to=iec --header=1 --field=1 \ | column -t 🧪 Пример ./leakspace.sh 500M Выводит таблицу вида: SIZE PID FD FILE для файлов ≥ 500M, помеченных как (deleted). 🧹 Как безопасно освободить место (без перезапуска сервиса) 1. Найдите строку с нужным PID и FD (например, PID=1234, FD=4u). 2. Обнулите файл у процесса (уберите буквы из FD - остаётся число): sudo truncate -s 0 "/proc/1234/fd/4" 🔐 Альтернатива (более щадяще): перезапустить соответствующий сервис sudo systemctl restart <service> ℹ️ Полезные заметки - Требуется lsof (apt install lsof / yum install lsof). - Порог можно задавать как 200M, 1G и т.п. (по умолчанию 100M). - Не удаляйте повторно сами файлы на диске — они уже помечены как удалённые; место держит именно процесс. - Для контейнеров Docker заходите внутрь: docker exec -it <container> bash и выполняйте проверку там. 📲 Мы в MAX 👉@bash_srv
776
20
🔥 Bash-совет дня Иногда нужно быстро найти и удалить все битые симлинки 🪤 в системе (или в конкретной папке). Вот простой с
🔥 Bash-совет дня Иногда нужно быстро найти и удалить все битые симлинки 🪤 в системе (или в конкретной папке). Вот простой скрипт: #!/bin/bash # Поиск и удаление битых символических ссылок find / -xtype l -print -delete 2>/dev/null 🔎 Объяснение: find / -xtype l — ищет все символические ссылки, которые указывают «в никуда»; -print - выводит их на экран (чтобы видеть, что удаляется); -delete - сразу удаляет найденные битые ссылки; 2>/dev/null - скрывает лишние ошибки (например, "нет доступа"). ⚠️ Если хотите сначала просто посмотреть список битых ссылок без удаления: find / -xtype l 2>/dev/null Так можно быстро почистить систему от мусора и навести порядок 🧹 📲 Мы в MAX 👉@bash_srv
678