🧠 Быстрый просмотр SSL-сертификата домена
Нужно быстро проверить срок действия SSL-сертификата у удалённого сайта без браузера?
📌 Покажет строки вида:
🔒 Хочешь только дату окончания? Добавь
📦 Убедись, что установлен
💡 Подходит для мониторинга и ручной проверки валидности сертификатов.
👉@bash_srv
Нужно быстро проверить срок действия SSL-сертификата у удалённого сайта без браузера?
echo | openssl s_client -servername example.com -connect example.com:443 2>/dev/null | openssl x509 -noout -dates
📌 Покажет строки вида:
notBefore=Jun 1 00:00:00 2024 GMT
notAfter=Aug 30 23:59:59 2024 GMT
🔒 Хочешь только дату окончания? Добавь
| grep notAfter
📦 Убедись, что установлен
openssl
💡 Подходит для мониторинга и ручной проверки валидности сертификатов.
👉@bash_srv
👍6
🧪 Проверка HTTP-статуса сайта из Bash
Небольшой скрипт, который поможет проверить доступность сайта и его HTTP-статус. Особенно полезно для мониторинга внешних ресурсов или своих веб-приложений.
🛠 Что делает скрипт:
- Тихо запрашивает URL (
- Выводит только HTTP-код (
- Показывает статус: доступен ли сайт или нет
📌 Можно добавить в cron для регулярной проверки!
👉@bash_srv
Небольшой скрипт, который поможет проверить доступность сайта и его HTTP-статус. Особенно полезно для мониторинга внешних ресурсов или своих веб-приложений.
#!/bin/bash
# автор: https://t.me/bash_srv
URL="https://example.com"
STATUS_CODE=$(curl -s -o /dev/null -w "%{http_code}" "$URL")
if [[ "$STATUS_CODE" -eq 200 ]]; then
echo "✅ Сайт доступен: $URL (HTTP $STATUS_CODE)"
else
echo "⚠️ Проблема с сайтом: $URL (HTTP $STATUS_CODE)"
fi
🛠 Что делает скрипт:
- Тихо запрашивает URL (
-s -o /dev/null
)- Выводит только HTTP-код (
-w "%{http_code}"
)- Показывает статус: доступен ли сайт или нет
📌 Можно добавить в cron для регулярной проверки!
👉@bash_srv
👍6❤2
💡 Следим за изменениями в файлах в реальном времени 👁️📂
Хочешь узнать, кто и когда правит важные файлы? Используй
🔍 Что делает команда:
🛠 Установка на Debian/Ubuntu:
📋 Отличный способ держать под контролем конфиги, особенно в чувствительных зонах, вроде
👉@bash_srv
Хочешь узнать, кто и когда правит важные файлы? Используй
inotifywait
из пакета inotify-tools
:
inotifywait -m -e modify,create,delete /etc
🔍 Что делает команда:
-m
— режим мониторинга (не завершает выполнение).-e modify,create,delete
— следит за изменениями, созданием и удалением./etc
— каталог для наблюдения (можно заменить на любой другой).🛠 Установка на Debian/Ubuntu:
sudo apt install inotify-tools
📋 Отличный способ держать под контролем конфиги, особенно в чувствительных зонах, вроде
/etc/ssh
.👉@bash_srv
👍8🎉1
Очистка кэша и мусора в системе
Иногда место на сервере тает на глазах, и быстро освободить его помогает чистка кэша. Вот простой скрипт:
Как использовать:
1. Сохраните в
2. Сделайте исполняемым:
3. Добавьте в
👉@bash_srv
Иногда место на сервере тает на глазах, и быстро освободить его помогает чистка кэша. Вот простой скрипт:
#!/bin/bash
# автор: https://t.me/bash_srv
# Лог действий
LOGFILE="/var/log/cleanup.log"
echo "=== Очистка началась: $(date) ===" >> "$LOGFILE"
# Очистка кэша apt
apt-get clean && echo "$(date) - Очистка кэша apt" >> "$LOGFILE"
# Удаление неиспользуемых пакетов
apt-get autoremove -y && echo "$(date) - Удаление неиспользуемых пакетов" >> "$LOGFILE"
# Очистка временных файлов
rm -rf /tmp/* && echo "$(date) - Очистка /tmp" >> "$LOGFILE"
# Очистка journald (оставим только 7 дней)
journalctl --vacuum-time=7d && echo "$(date) - Очистка journald" >> "$LOGFILE"
echo "=== Очистка завершена: $(date) ===" >> "$LOGFILE"
Как использовать:
1. Сохраните в
/usr/local/bin/cleanup.sh
.2. Сделайте исполняемым:
chmod +x /usr/local/bin/cleanup.sh
3. Добавьте в
cron
, чтобы запускалось, например, раз в неделю:
0 4 * * 0 /usr/local/bin/cleanup.sh
👉@bash_srv
👍5👎2❤1
💡 Быстрый поиск и замена в куче файлов
Нужно массово заменить строку в сотне конфигов? Вот скрипт:
Как это работает:
🔥 Очень удобно для правки конфигов и скриптов пачками.
👉@bash_srv
Нужно массово заменить строку в сотне конфигов? Вот скрипт:
#!/bin/bash
# автор: https://t.me/bash_srv
# Директория для поиска
DIR="/etc/nginx"
# Что ищем
SEARCH="server_name old.example.com"
# На что меняем
REPLACE="server_name new.example.com"
# Ищем и заменяем
grep -rl "$SEARCH" "$DIR" | xargs sed -i "s|$SEARCH|$REPLACE|g"
echo "✅ Замена '$SEARCH' на '$REPLACE' выполнена в $DIR"
Как это работает:
grep -rl
— ищет файлы с нужной строкойxargs sed -i
— делает замену прямо в них🔥 Очень удобно для правки конфигов и скриптов пачками.
👉@bash_srv
👍13
🔍 10 полезных регулярных выражений для админов
Регулярки — мощный инструмент для поиска и обработки текста в Linux.
💡Тестируйте регулярки в реальном времени с
👉@bash_srv
Регулярки — мощный инструмент для поиска и обработки текста в Linux.
# 1. Найти все IP-адреса в файле
grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}' file.log
# 2. Найти строки с email-адресами
grep -E '[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}' file.txt
# 3. Удалить пустые строки
sed -i '/^$/d' file.txt
# 4. Найти строки, начинающиеся с #
grep -E '^#' file.conf
# 5. Найти строки, не содержащие слово ERROR
grep -Ev 'ERROR' file.log
# 6. Заменить все цифры на символ *
sed -E 's/[0-9]/*/g' file.txt
# 7. Удалить комментарии и пустые строки
grep -Ev '^\s*#|^\s*$' file.conf
# 8. Найти все URL
grep -Eo 'https?://[^ ]+' file.txt
# 9. Найти строки длиной больше 100 символов
grep -E '.{100,}' file.txt
# 10. Извлечь доменные имена из email
grep -Eo '@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}' file.txt
💡Тестируйте регулярки в реальном времени с
grep -E
или онлайн-сервисами типа regex101.com.👉@bash_srv
👍19❤1
🔥 Регулярки для админов
1. Быстро найти IP-адреса в логе
Что делает:
- Ищет шаблон “число.число.число.число” — IPv4-адрес.
-
2. Удалить пустые строки и комментарии из конфигов
Что делает:
-
-
3. Найти строки с ошибками в логах
Что делает:
- Ищет ключевые слова ошибок без учёта регистра.
- Можно расширить список слов через
👉@bash_srv
1. Быстро найти IP-адреса в логе
grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}' /var/log/nginx/access.log
Что делает:
- Ищет шаблон “число.число.число.число” — IPv4-адрес.
-
-o
выводит только совпадения, без лишнего текста.2. Удалить пустые строки и комментарии из конфигов
grep -Ev '^\s*#|^\s*$' /etc/nginx/nginx.conf
Что делает:
-
^\s*#
— строки, начинающиеся с #
(комментарии).-
^\s*$
— пустые строки.3. Найти строки с ошибками в логах
grep -Ei 'error|fail|critical' /var/log/syslog
Что делает:
- Ищет ключевые слова ошибок без учёта регистра.
- Можно расширить список слов через
|
.👉@bash_srv
👍7
🔥 Регулярки для админов — Часть 2
Сегодня поговорим про замену и обработку данных с помощью
1. Маскирование конфиденциальных данных (пароли, токены)
Что делает:
- Находит
- Заменяет значение на
2. Удалить все цифры из файла
Что делает:
-
-
3. Быстро поменять домен в конфиге
Что делает:
- Захватывает
- Заменяет домен на
4. Удалить строки, содержащие определённые слова
Что делает:
-
👉@bash_srv
Сегодня поговорим про замену и обработку данных с помощью
sed
1. Маскирование конфиденциальных данных (пароли, токены)
sed -E 's/(password|token)=\S+/\1=***HIDDEN***/g' config.txt
Что делает:
- Находит
password=что-то
или token=что-то
.- Заменяет значение на
***HIDDEN***
.2. Удалить все цифры из файла
sed -E 's/[0-9]+//g' file.txt
Что делает:
-
[]
— диапазон символов.-
+
— одно или больше вхождений.3. Быстро поменять домен в конфиге
sed -E 's/(server_name\s+).*/\1newdomain.com/' /etc/nginx/sites-available/site.conf
Что делает:
- Захватывает
server_name
и всё после него.- Заменяет домен на
newdomain.com
.4. Удалить строки, содержащие определённые слова
sed -E '/(DEBUG|TRACE)/d' app.log
Что делает:
-
/(...)/d
— удаляет строки, содержащие DEBUG или TRACE.👉@bash_srv
👍4❤1
🔄 Мониторинг доступности сайта с уведомлением в Telegram
Хотите знать, когда ваш сайт «упал»? Ниже написал простой Bash-скрипт, который проверяет доступность ресурса и шлёт уведомление в Telegram.
Как использовать:
1. Вставьте ваш
2. Сохраните скрипт, например,
3. Добавьте в
Теперь вы сразу узнаете, если сайт станет недоступен.
👉@bash_srv
Хотите знать, когда ваш сайт «упал»? Ниже написал простой Bash-скрипт, который проверяет доступность ресурса и шлёт уведомление в Telegram.
#!/bin/bash
# автор: https://t.me/bash_srv
# Настройки
URL="https://example.com"
BOT_TOKEN="123456789:ABCDEF1234567890abcdef1234567890"
CHAT_ID="987654321"
# Проверка доступности
HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" "$URL")
if [ "$HTTP_CODE" -ne 200 ]; then
MESSAGE="⚠️ Сайт $URL недоступен! Код ответа: $HTTP_CODE"
curl -s -X POST "https://api.telegram.org/bot$BOT_TOKEN/sendMessage" \
-d chat_id="$CHAT_ID" \
-d text="$MESSAGE"
fi
Как использовать:
1. Вставьте ваш
BOT_TOKEN
и CHAT_ID
.2. Сохраните скрипт, например,
/usr/local/bin/check_site.sh
.3. Добавьте в
cron
(каждые 5 минут):
*/5 * * * * /usr/local/bin/check_site.sh
Теперь вы сразу узнаете, если сайт станет недоступен.
👉@bash_srv
👍6❤4
🛜 Быстрое сканирование сети с выводом живых хостов
Иногда нужно быстро узнать, какие устройства сейчас активны в сети. Вместо тяжёлых сканеров можно использовать пару строк на
Что делает скрипт?
- Перебирает адреса от
- Параллельно пингует их с таймаутом 1 секунда
- Выводит только живые хосты
⚡ В 10-20 раз быстрее обычного пинга благодаря параллельному запуску!
Попробуй сохранить скрипт как
👉@bash_srv
Иногда нужно быстро узнать, какие устройства сейчас активны в сети. Вместо тяжёлых сканеров можно использовать пару строк на
bash
.
#!/bin/bash
# Быстрое сканирование сети (замени 192.168.1 на свою подсеть)
# автор: https://t.me/bash_srv
SUBNET="192.168.1"
for i in {1..254}; do
(
ping -c1 -W1 $SUBNET.$i &>/dev/null && echo "$SUBNET.$i доступен"
) &
done
wait
Что делает скрипт?
- Перебирает адреса от
192.168.1.1
до 192.168.1.254
- Параллельно пингует их с таймаутом 1 секунда
- Выводит только живые хосты
⚡ В 10-20 раз быстрее обычного пинга благодаря параллельному запуску!
Попробуй сохранить скрипт как
scan.sh
, сделать его исполняемым (chmod +x scan.sh
) и запустить.👉@bash_srv
👍12🔥3
🎯 Мониторинг занятости диска с алертом на почту 📬
Хотите, чтобы сервер сам предупреждал вас при нехватке свободного места на диске? Никидал простой bash-скрипт, который отправит письмо, если свободного места останется меньше 10%:
📌 Как использовать:
1. Убедитесь, что установлен
2. Измените переменную
3. Добавьте скрипт в
🛡️ Так вы всегда будете в курсе, что диск переполняется, до того как сервер упадёт 🚨
👉@bash_srv
Хотите, чтобы сервер сам предупреждал вас при нехватке свободного места на диске? Никидал простой bash-скрипт, который отправит письмо, если свободного места останется меньше 10%:
#!/bin/bash
# автор: https://t.me/bash_srv
# Порог в % (если меньше — шлём алерт)
THRESHOLD=10
EMAIL="admin@example.com"
# Получаем список всех точек монтирования
df -hP | grep -vE '^Filesystem' | while read line; do
USAGE=$(echo $line | awk '{print $5}' | tr -d '%')
MOUNT=$(echo $line | awk '{print $6}')
if [ "$USAGE" -ge $((100 - THRESHOLD)) ]; then
echo -e "На сервере $(hostname)\nМонтирование: $MOUNT\nЗанято: $USAGE%" | \
mail -s "⚠️ Мало места на диске $MOUNT" "$EMAIL"
fi
done
📌 Как использовать:
1. Убедитесь, что установлен
mailx
(или mail
).2. Измените переменную
EMAIL
на свой адрес.3. Добавьте скрипт в
cron
, чтобы он выполнялся, например, каждый час.🛡️ Так вы всегда будете в курсе, что диск переполняется, до того как сервер упадёт 🚨
👉@bash_srv
👍8❤3
📌 Bash-скрипт для автоматического бэкапа MySQL с ротацией
Накидал пример простого скрипта для автоматического бэкапа базы, чтобы всегда была свежая копия, но при этом не захламлять диск старыми дампами.
Как использовать:
1. Сохраните скрипт, например в
2. Дайте права на выполнение:
3. Добавьте в
📦 В результате вы всегда будете иметь 7 последних бэкапов, а старые будут удаляться автоматически.
👉@bash_srv
Накидал пример простого скрипта для автоматического бэкапа базы, чтобы всегда была свежая копия, но при этом не захламлять диск старыми дампами.
#!/bin/bash
# Параметры
# автор: https://t.me/bash_srv
DB_USER="root"
DB_PASS="password"
DB_NAME="my_database"
BACKUP_DIR="/backup/mysql"
DATE=$(date +"%Y-%m-%d_%H-%M-%S")
# Создаём директорию для бэкапов, если нет
mkdir -p "$BACKUP_DIR"
# Делаем дамп базы
mysqldump -u"$DB_USER" -p"$DB_PASS" "$DB_NAME" > "$BACKUP_DIR/${DB_NAME}_${DATE}.sql"
# Оставляем только 7 последних бэкапов, остальные удаляем
ls -1t "$BACKUP_DIR"/*.sql | tail -n +8 | xargs -r rm --
echo "✅ Бэкап базы $DB_NAME создан: ${DB_NAME}_${DATE}.sql"
Как использовать:
1. Сохраните скрипт, например в
/usr/local/bin/mysql_backup.sh
.2. Дайте права на выполнение:
chmod +x /usr/local/bin/mysql_backup.sh
3. Добавьте в
cron
, чтобы бэкап делался каждый день в 3 ночи:
0 3 * * * /usr/local/bin/mysql_backup.sh
📦 В результате вы всегда будете иметь 7 последних бэкапов, а старые будут удаляться автоматически.
👉@bash_srv
👍10❤2👌1
🚀 Быстрое резервное копирование с датой в имени файла
Часто нужно сделать резервную копию файла или каталога, но чтобы не перезаписать старую - лучше добавить в имя дату и время. Ниже скрипт:
💡 Как использовать:
- Поменяйте
- Можно добавить в
🛠 Пример для
📂 Теперь у вас всегда будут версии с точным временем создания!
👉@bash_srv
Часто нужно сделать резервную копию файла или каталога, но чтобы не перезаписать старую - лучше добавить в имя дату и время. Ниже скрипт:
#!/bin/bash
# автор: https://t.me/bash_srv
# Что копируем
SOURCE="/etc/nginx/nginx.conf"
# Куда сохраняем
BACKUP_DIR="/backup"
# Создаем каталог, если его нет
mkdir -p "$BACKUP_DIR"
# Имя файла с датой
DATE=$(date +"%Y-%m-%d_%H-%M-%S")
FILENAME=$(basename "$SOURCE")
cp "$SOURCE" "$BACKUP_DIR/${FILENAME}_${DATE}"
echo "✅ Резервная копия создана: $BACKUP_DIR/${FILENAME}_${DATE}"
💡 Как использовать:
- Поменяйте
SOURCE
на свой файл или каталог.- Можно добавить в
cron
, чтобы резервная копия делалась автоматически.🛠 Пример для
cron
(каждый день в 3 ночи):
0 3 * * * /path/to/backup.sh
📂 Теперь у вас всегда будут версии с точным временем создания!
👉@bash_srv
👍11
🚀 Быстрый мониторинг использования диска по каталогам
Иногда нужно быстро понять, какая папка на сервере съедает больше всего места. Вот простой скрипт, который выведет топ-10 "пожирателей" диска:
📌 Как использовать:
1. Перейдите в интересующую директорию:
2. Запустите скрипт:
👉@bash_srv
Иногда нужно быстро понять, какая папка на сервере съедает больше всего места. Вот простой скрипт, который выведет топ-10 "пожирателей" диска:
#!/bin/bash
# Топ-10 каталогов по размеру в текущем пути
du -h --max-depth=1 2>/dev/null | sort -hr | head -n 10
📌 Как использовать:
1. Перейдите в интересующую директорию:
cd /var/log
2. Запустите скрипт:
./disk_top.sh
👉@bash_srv
🔥6👍2👎1
🔥 Автоматическая проверка и перезапуск упавших сервисов
Скрипт, который проверяет список сервисов и перезапускает их при необходимости.
📌 Как использовать:
1. Сохраните скрипт, например, в
2. Дайте права на выполнение:
3. Добавьте в
👉@bash_srv
Скрипт, который проверяет список сервисов и перезапускает их при необходимости.
#!/bin/bash
# автор: https://t.me/bash_srv
# Список сервисов для проверки
services=("nginx" "mysql" "ssh")
for service in "${services[@]}"; do
if ! systemctl is-active --quiet "$service"; then
echo "$(date '+%Y-%m-%d %H:%M:%S') - $service не работает. Перезапускаем..."
systemctl restart "$service"
# Можно отправить уведомление в Telegram или email
else
echo "$(date '+%Y-%m-%d %H:%M:%S') - $service работает."
fi
done
📌 Как использовать:
1. Сохраните скрипт, например, в
/usr/local/bin/service_check.sh
.2. Дайте права на выполнение:
chmod +x /usr/local/bin/service_check.sh
3. Добавьте в
cron
для регулярной проверки, например, каждые 5 минут:
*/5 * * * * /usr/local/bin/service_check.sh >> /var/log/service_check.log 2>&1
👉@bash_srv
👍8
🚀 Автоматическое обновление пакетов с логированием
Регулярные обновления системы — залог безопасности и стабильности.
Ниже скрипт, который обновляет пакеты и ведёт лог:
📌 Как использовать:
1. Сохраните скрипт, например,
2. Дайте права на выполнение:
3. Добавьте в cron для ежедневного запуска:
Теперь сервер будет обновляться сам, а все действия попадут в лог 📜
👉@bash_srv
Регулярные обновления системы — залог безопасности и стабильности.
Ниже скрипт, который обновляет пакеты и ведёт лог:
#!/bin/bash
# автор: https://t.me/bash_srv
LOGFILE="/var/log/auto_update.log"
DATE=$(date '+%Y-%m-%d %H:%M:%S')
echo "[$DATE] Начало обновления" >> $LOGFILE
if command -v apt &>/dev/null; then
apt update >> $LOGFILE 2>&1
apt -y upgrade >> $LOGFILE 2>&1
elif command -v dnf &>/dev/null; then
dnf -y update >> $LOGFILE 2>&1
elif command -v yum &>/dev/null; then
yum -y update >> $LOGFILE 2>&1
else
echo "[$DATE] Неизвестный пакетный менеджер" >> $LOGFILE
exit 1
fi
echo "[$DATE] Обновление завершено" >> $LOGFILE
📌 Как использовать:
1. Сохраните скрипт, например,
/usr/local/bin/auto_update.sh
2. Дайте права на выполнение:
chmod +x /usr/local/bin/auto_update.sh
3. Добавьте в cron для ежедневного запуска:
0 3 * * * /usr/local/bin/auto_update.sh
Теперь сервер будет обновляться сам, а все действия попадут в лог 📜
👉@bash_srv
👍7
🔥 Мониторинг нагрузки на сервер
Иногда нужно быстро понять, какие процессы сильнее всего нагружают систему. Этот скрипт выводит топ-5 «прожорливых» процессов по CPU и RAM 🖥️
📌 Как использовать:
1. Сохраните в файл, например
2. Сделайте исполняемым:
3. Запускайте при необходимости:
Так вы всегда будете видеть, что больше всего грузит ваш сервер 🚀
👉@bash_srv
Иногда нужно быстро понять, какие процессы сильнее всего нагружают систему. Этот скрипт выводит топ-5 «прожорливых» процессов по CPU и RAM 🖥️
#!/bin/bash
# автор: https://t.me/bash_srv
echo "=== Топ-5 процессов по CPU ==="
ps -eo pid,ppid,cmd,%cpu --sort=-%cpu | head -n 6
echo ""
echo "=== Топ-5 процессов по RAM ==="
ps -eo pid,ppid,cmd,%mem --sort=-%mem | head -n 6
📌 Как использовать:
1. Сохраните в файл, например
top_procs.sh
2. Сделайте исполняемым:
chmod +x top_procs.sh
3. Запускайте при необходимости:
./top_procs.sh
Так вы всегда будете видеть, что больше всего грузит ваш сервер 🚀
👉@bash_srv
👍7
🗓 27 августа в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «CI/CD на основе GitLab».
🎯 На вебинаре разберем:
👥 Кому будет интересно:
- DevOps-инженерам, которые осваивают или уже используют GitLab CI и Ansible, и хотят связать их в единый, автоматизированный процесс
- Начинающим специалистам, изучающим инфраструктурный код и автоматизацию
- Техническим архитекторам, заинтересованным в построении масштабируемых и управляемых CI/CD процессов с Ansible
🎯 Что вы получите:
- Практическое понимание интеграции Ansible с GitLab CI
- Готовые идеи и примеры для запуска и тестирования Ansible-плейбуков
- Уверенность в использовании CI/CD пайплайнов для инфраструктурных задач и конфигурационного менеджмента
🔗 Ссылка на регистрацию: https://vk.cc/cOK226
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 Быстрый поиск крупных файлов
Этот скрипт выведет 10 самых больших файлов в указанной директории:
📌 Использование:
Выведет список самых "тяжёлых" файлов в
Если директория не указана — скрипт проверит весь корень
👉@bash_srv
Этот скрипт выведет 10 самых больших файлов в указанной директории:
#!/bin/bash
# автор: https://t.me/bash_srv
DIR=${1:-/}
echo "📂 Топ-10 самых больших файлов в $DIR"
du -ah "$DIR" 2>/dev/null | sort -rh | head -n 10
📌 Использование:
./bigfiles.sh /var/log
Выведет список самых "тяжёлых" файлов в
/var/log
.Если директория не указана — скрипт проверит весь корень
/
.👉@bash_srv
👍7❤2