Почему -ErrorAction SilentlyContinue — это зло?
🚨 Проблемы:
- Ошибки пропадают, а скрипт продолжает работать с битыми данными.
- Невозможно отладить, потому что вы даже не знаете, что что-то сломалось.
Что делать вместо этого?
❓Когда можно использовать SilentlyContinue?
Только если ошибка ожидаема и не критична (например, проверка, существует ли файл перед удалением).
👉 Вы тоже когда-то глушили ошибки, а потом час искали баг? Поделитесь в коментариях!
🌐 @automate_today | #powershell
-ErrorAction SilentlyContinue — это как заглушить Check Engine в машине и надеяться, что всё ок. 🚗💥 🚨 Проблемы:
- Ошибки пропадают, а скрипт продолжает работать с битыми данными.
- Невозможно отладить, потому что вы даже не знаете, что что-то сломалось.
Что делать вместо этого?
# Вариант 1: Ловить ошибки и логировать
try {
Get-Item "C:\NonExistentFile.txt" -ErrorAction Stop
} catch {
Write-Warning "Файл не найден: $_"
# Или отправить в Telegram/Slack
}
# Вариант 2: Проверять результат
$file = Get-Item "C:\NonExistentFile.txt" -ErrorAction SilentlyContinue
if (-not $file) {
Write-Warning "Файл не найден, но мы это обработали!"
}
❓Когда можно использовать SilentlyContinue?
Только если ошибка ожидаема и не критична (например, проверка, существует ли файл перед удалением).
👉 Вы тоже когда-то глушили ошибки, а потом час искали баг? Поделитесь в коментариях!
🌐 @automate_today | #powershell
👍3
Как автоматизировать IIS?
Хотите управлять сайтами, пулами приложений или настройками SSL без ручного кликания? PowerShell спешит на помощь!
Примеры:
Плюсы:
- Можно полностью автоматизировать развёртывание.
- Интеграция с Ansible/Terraform (через PowerShell-провижнры).
👉 Кто ещё ненавидит IIS Manager? Дайте знать!
🌐 @automate_today | #powershell
WebAdministration модуль — ваш друг Хотите управлять сайтами, пулами приложений или настройками SSL без ручного кликания? PowerShell спешит на помощь!
Примеры:
# Получить список всех сайтов
Get-Website | Select Name, State
# Перезапустить пул приложений
Restart-WebAppPool -Name "MyAppPool"
# Создать новый сайт
New-Website -Name "TestSite" -Port 8080 -PhysicalPath "C:\sites\test"
Плюсы:
- Можно полностью автоматизировать развёртывание.
- Интеграция с Ansible/Terraform (через PowerShell-провижнры).
👉 Кто ещё ненавидит IIS Manager? Дайте знать!
🌐 @automate_today | #powershell
👍2
Почему curl | bash — это опасно?
❓Чем плохо?
- Нет проверки целостности (скрипт мог подмениться).
- Запускается сразу, без возможности посмотреть код.
Как правильно?
❗️Если скрипт требует
👉 Вы когда-нибудь запускали curl | bash и потом жалели?
🌐 @automate_today | #bash
curl http://example.com/install.sh | bash — это как есть суши, которые вам подали в тёмном переулке. 🍣🔪 ❓Чем плохо?
- Нет проверки целостности (скрипт мог подмениться).
- Запускается сразу, без возможности посмотреть код.
Как правильно?
# 1. Скачать, проверить, потом запустить
curl -O https://example.com/install.sh
less install.sh # Посмотреть код
chmod +x install.sh
./install.sh
# 2. Проверить хэш (если автор его предоставляет)
echo "ожидаемый_sha256sum install.sh" | sha256sum --check
❗️Если скрипт требует
sudo — внимательно читайте, что он делает! 👉 Вы когда-нибудь запускали curl | bash и потом жалели?
🌐 @automate_today | #bash
👍4
Скрипт для мониторинга нагрузки на сервер
❓Как использовать?
- Добавить в cron (например, каждые 5 минут).
- Отправлять логи в Telegram/Grafana.
👉 Как вы мониторите сервера? Пишите в комментах!
🌐 @automate_today | #bash
top, vmstat, iostat — автоматизируем это! #!/bin/bash
LOG_FILE="/var/log/server_monitor.log"
echo "=== $(date) ===" >> $LOG_FILE
echo "--- Top 5 процессов по CPU ---" >> $LOG_FILE
top -b -n 1 | head -12 | tail -5 >> $LOG_FILE
echo "--- Память ---" >> $LOG_FILE
vmstat -s >> $LOG_FILE
echo "--- Диски ---" >> $LOG_FILE
iostat -dx >> $LOG_FILE
❓Как использовать?
- Добавить в cron (например, каждые 5 минут).
- Отправлять логи в Telegram/Grafana.
👉 Как вы мониторите сервера? Пишите в комментах!
🌐 @automate_today | #bash
👍3
Почему awk — это must-have?
1. Фильтрация строк по условию
2. Суммирование значений
3. Разбор CSV/TSV
👉 Кто ещё помнит, что awk — это язык, а не просто команда?
🌐 @automate_today | #bash
awk — это как нож швейцарской армии для текста. Вот где он сияет: 1. Фильтрация строк по условию
# Вывести только 404 ошибки из лога
awk '$9 == 404 {print $0}' access.log
2. Суммирование значений
# Сумма байт, переданных сервером
awk '{sum += $10} END {print sum}' access.log
3. Разбор CSV/TSV
awk -F',' '{print $1, $3}' data.csv # Разделитель — запятая👉 Кто ещё помнит, что awk — это язык, а не просто команда?
🌐 @automate_today | #bash
👍4🔥1
asyncio — магия или боль?
⚙️
Пример простого HTTP-запроса:
❓Почему это важно?
- Экономит время при множестве I/O операций (запросы, файлы, БД).
- Но… если накосячить с
Какой ваш самый болезненный опыт с asyncio? Делитесь в комментах — вместе разберёмся!
🌐 @automate_today | #python
⚙️
asyncio в Python — это мощный инструмент для асинхронного программирования, но он может сломать мозг, если подойти без подготовки. Потоки — это сложно, asyncio — сложно вдвойне, но когда оно работает, это выглядит как чистая магия. Пример простого HTTP-запроса:
import asyncio
import aiohttp
async def fetch(url):
async with aiohttp.ClientSession() as session:
async with session.get(url) as response:
return await response.text()
async def main():
html = await fetch("https://example.com")
print(html[:100]) # первые 100 символов
asyncio.run(main())
❓Почему это важно?
- Экономит время при множестве I/O операций (запросы, файлы, БД).
- Но… если накосячить с
await, скрипт может висеть вечность. Какой ваш самый болезненный опыт с asyncio? Делитесь в комментах — вместе разберёмся!
Если asyncio — магия, то async/await — это заклинания, которые иногда взрываются в руках
🌐 @automate_today | #python
👍3
Как автоматизировать отправку email с вложениями?
Если вы копируете файлы в Outlook или отправляете письма через веб-интерфейс, но хотите упростить данные действия - этот код для вас.
Python +
❗️Важно:
- Для Gmail нужен App Password, если включена 2FA.
- Не храните пароли в коде! Используйте переменные окружения (
Как вы отправляете письма в автоматическом режиме? SMTP, API, или что-то ещё?
🌐 @automate_today | #python
Если вы копируете файлы в Outlook или отправляете письма через веб-интерфейс, но хотите упростить данные действия - этот код для вас.
Python +
smtplib (просто и мощно) import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication
def send_email(subject, body, to, file_path):
msg = MIMEMultipart()
msg['Subject'] = subject
msg['From'] = 'your_email@gmail.com'
msg['To'] = to
msg.attach(MIMEText(body, 'plain'))
with open(file_path, 'rb') as f:
part = MIMEApplication(f.read(), Name=file_path.split('/')[-1])
part['Content-Disposition'] = f'attachment; filename="{file_path.split("/")[-1]}"'
msg.attach(part)
with smtplib.SMTP('smtp.gmail.com', 587) as server:
server.starttls()
server.login('your_email@gmail.com', 'your_password')
server.send_message(msg)
send_email("Отчёт за июль", "Вот файл!", "boss@company.com", "report.pdf")
❗️Важно:
- Для Gmail нужен App Password, если включена 2FA.
- Не храните пароли в коде! Используйте переменные окружения (
os.getenv). Как вы отправляете письма в автоматическом режиме? SMTP, API, или что-то ещё?
Если письмо не отправляется, проверьте, не блокирует ли его антиспам. Или, может, вы забыли starttls()?
🌐 @automate_today | #python
👍2
Как написать бота для Telegram за 15 минут?
Telegram-боты — это не только для спама и мемов. С их помощью можно делать уведомления, автоматизировать задачи и даже управлять сервером.
Код на Python +
❓Как это работает?
1. Получаете токен у @BotFather.
2. Запускаете скрипт.
3. Бот отвечает на сообщения и команды.
💡Идеи для улучшения:
- Добавить команду
- Прикрутить базу данных для хранения запросов.
Какой функционал вам хотелось бы видеть в боте? Делитесь идеями!
🌐 @automate_today | #python
Telegram-боты — это не только для спама и мемов. С их помощью можно делать уведомления, автоматизировать задачи и даже управлять сервером.
Код на Python +
python-telegram-bot: from telegram import Update
from telegram.ext import Updater, CommandHandler, MessageHandler, Filters
def start(update: Update, context):
update.message.reply_text("Привет! Я бот. Напиши /help для списка команд.")
def echo(update: Update, context):
update.message.reply_text(f"Ты написал: {update.message.text}")
updater = Updater("YOUR_TOKEN") # Получите у @BotFather
updater.dispatcher.add_handler(CommandHandler("start", start))
updater.dispatcher.add_handler(MessageHandler(Filters.text & ~Filters.command, echo))
updater.start_polling()
updater.idle()
❓Как это работает?
1. Получаете токен у @BotFather.
2. Запускаете скрипт.
3. Бот отвечает на сообщения и команды.
💡Идеи для улучшения:
- Добавить команду
/status для проверки сервера. - Прикрутить базу данных для хранения запросов.
Какой функционал вам хотелось бы видеть в боте? Делитесь идеями!
Если бот внезапно замолчал, проверьте, не упал ли скрипт. Или, может, вы превысили лимит запросов?
🌐 @automate_today | #python
👍3
Invoke-WebRequest тормозит? Вот как ускорить в 5 раз
PowerShell и медленные запросы — вечная история
Если ваш
🛠 Ускоряем запросы:
❓Почему это работает?
-
-
-
🧑💻 Тест:
Попробуйте оба варианта с
А какие у вас есть способы ускорения HTTP-запросов в PowerShell?
🌐 @automate_today | #powershell
PowerShell и медленные запросы — вечная история
Если ваш
Invoke-WebRequest или curl (да, в PowerShell есть алиас!) работает как улитка в сиропе, возможно, вы просто не знаете одну хитрость. 🛠 Ускоряем запросы:
# Медленный вариант (по умолчанию)
$response = Invoke-WebRequest -Uri "https://api.example.com/data"
# Быстрый вариант (отключаем проверку SSL + используем BasicParsing)
$response = Invoke-WebRequest -Uri "https://api.example.com/data" -DisableKeepAlive -SkipCertificateCheck -UseBasicParsing
❓Почему это работает?
-
-SkipCertificateCheck убирает верификацию SSL (осторожно, только для доверенных источников!). -
-UseBasicParsing отключает парсинг DOM, если он не нужен. -
-DisableKeepAlive предотвращает "липкие" соединения, которые иногда тормозят. 🧑💻 Тест:
Попробуйте оба варианта с
Measure-Command { ... } и сравните время (вставить команды выше вместо точек). Вы будете крайне удивлены. Разница примерно в 12 раз. А какие у вас есть способы ускорения HTTP-запросов в PowerShell?
Если ваш запрос всё ещё медленный, возможно, проблема не в PowerShell, а в том, что API держит вас на кулдауне.
🌐 @automate_today | #powershell
👍3
Pester: как писать тесты для скриптов?
Если вы пишете PowerShell-скрипты без тестов — это как ехать на машине без тормозов. Раньше или позже будет больно.
Простейший тест с Pester:
Как запустить?
❓Зачем это нужно?
- Ловите баги до того, как скрипт уйдёт в продакшн.
- Рефакторинг становится безопаснее.
- Можно интегрировать в CI/CD (GitHub Actions, Azure DevOps).
А вы тестируете свои скрипты? Если да — какими инструментами?
🌐 @automate_today | #powershell
Если вы пишете PowerShell-скрипты без тестов — это как ехать на машине без тормозов. Раньше или позже будет больно.
Простейший тест с Pester:
# Файл MyScript.Tests.ps1
Describe "Проверка функции сложения" {
It "2 + 2 должно быть 4" {
(2 + 2) | Should -Be 4
}
It "Скрипт должен содержать функцию Get-Data" {
Get-Command Get-Data -ErrorAction SilentlyContinue | Should -Not -BeNullOrEmpty
}
}
Как запустить?
Invoke-Pester -Path .\MyScript.Tests.ps1
❓Зачем это нужно?
- Ловите баги до того, как скрипт уйдёт в продакшн.
- Рефакторинг становится безопаснее.
- Можно интегрировать в CI/CD (GitHub Actions, Azure DevOps).
А вы тестируете свои скрипты? Если да — какими инструментами?
Если тесты зелёные — можно мержить. Если красные — значит, вы хотя бы проверили.
🌐 @automate_today | #powershell
👍3
Мини-туториал: работа с jq в bash
Если вы парсите JSON в bash через
⚙️ Примеры:
❔Где пригодится?
- Парсинг ответов API (например, от
- Обработка конфигов в CI/CD.
- Быстрый анализ логов в JSON.
А какие ваши любимые jq-трюки?
P.S. Если jq кажется сложным, просто запомните: `.` — это текущий объект, `[]` — массив, а `|` — это pipe, как в bash. Всё просто!
🌐 @automate_today | #bash
jq — это как sed, но для JSONЕсли вы парсите JSON в bash через
grep и awk, остановитесь. Мир уже придумал jq — мощный и удобный инструмент. ⚙️ Примеры:
# 1. Достаём поле из JSON
echo '{"name": "Alice", "age": 30}' | jq '.name' # "Alice"
# 2. Фильтрация массива
echo '{"users": [{"name": "Alice", "active": true}, {"name": "Bob", "active": false}]}' | jq '.users[] | select(.active) | .name'
# 3. Форматирование JSON
cat ugly.json | jq '.' > pretty.json
❔Где пригодится?
- Парсинг ответов API (например, от
curl). - Обработка конфигов в CI/CD.
- Быстрый анализ логов в JSON.
А какие ваши любимые jq-трюки?
P.S.
🌐 @automate_today | #bash
👍4🤔1
Скрипт, который определяет, запущен ли он в Docker
"Я в контейнере или нет?" — философский вопрос для скрипта
Если ваш скрипт должен вести себя по-разному внутри и снаружи Docker, вот как это проверить.
Проверка в bash:
Проверка в Python:
❔Зачем это нужно?
- Менять пути к файлам (в Docker они часто другие).
- Отключать лишние проверки (например, если в контейнере нет systemd).
А вы сталкивались с проблемами "а где я запущен"?
🌐 @automate_today | #bash #python
"Я в контейнере или нет?" — философский вопрос для скрипта
Если ваш скрипт должен вести себя по-разному внутри и снаружи Docker, вот как это проверить.
Проверка в bash:
if grep -q docker /proc/1/cgroup 2>/dev/null || [ -f /.dockerenv ]; then
echo "Я в Docker! 🐳"
else
echo "Я на хосте! 💻"
fi
Проверка в Python:
import os
def is_docker():
return os.path.exists('/.dockerenv')
if is_docker():
print("Я в Docker! 🐳")
else:
print("Я на хосте! 💻")
❔Зачем это нужно?
- Менять пути к файлам (в Docker они часто другие).
- Отключать лишние проверки (например, если в контейнере нет systemd).
А вы сталкивались с проблемами "а где я запущен"?
P.S. Если скрипт говорит, что он не в Docker, а на самом деле он в Docker — возможно, вы используете --privileged без /.dockerenv.
🌐 @automate_today | #bash #python
👍4
Как найти все битые ссылки в системе?
"Мёртвые" симлинки — тихие убийцы свободного места
Битые символьные ссылки (symlinks) не только бесполезны, но и могут сломать скрипты. Найдём и удалим их!
🛠 Bash-команда для поиска:
🛠 PowerShell-вариант:
🛠 Что дальше?
- Удалить:
- Заменить на актуальные пути.
А вы часто сталкиваетесь с битыми ссылками?
🌐 @automate_today | #bash #powershell
"Мёртвые" симлинки — тихие убийцы свободного места
Битые символьные ссылки (symlinks) не только бесполезны, но и могут сломать скрипты. Найдём и удалим их!
🛠 Bash-команда для поиска:
find /path/to/search -type l ! -exec test -e {} \; -print 🛠 PowerShell-вариант:
Get-ChildItem -Path C:\ -Recurse -Force -ErrorAction SilentlyContinue |
Where-Object { $_.Attributes -match "ReparsePoint" -and !(Test-Path $_.FullName) }
🛠 Что дальше?
- Удалить:
find ... -delete (осторожно!). - Заменить на актуальные пути.
А вы часто сталкиваетесь с битыми ссылками?
P.S. Если find ничего не нашёл — либо у вас идеальная система, либо вы искали не там.
🌐 @automate_today | #bash #powershell
👍2
Вы уверены, что ваш cron работает?
🤔 Cron не запускается? Вот где искать проблемы
Если ваш
1. Проверьте логи:
2. Перезапустите cron:
3. Проверьте переменные окружения (cron их не видит!):
3. Проверьте права:
🛠 Используйте
А какие грабли с cronом вас больно били?
🌐 @automate_today | #bash
🤔 Cron не запускается? Вот где искать проблемы
Если ваш
cron молчит, как рыба, вот чек-лист для проверки: 1. Проверьте логи:
grep CRON /var/log/syslog
2. Перезапустите cron:
sudo service cron restart
3. Проверьте переменные окружения (cron их не видит!):
* * * * * echo $PATH > /tmp/cron_test.txt
3. Проверьте права:
chmod +x /path/to/script.sh
🛠 Используйте
crontab.guru для проверки синтаксиса расписания. А какие грабли с cronом вас больно били?
P.S. Если cron всё ещё не работает, возможно, он просто вас не любит. Или вы забыли >> /dev/null 2>&1? 😅
🌐 @automate_today | #bash
✍3
YAML — это новый XML?
YAML: удобный или слишком сложный?
YAML кажется простым, пока не попробуешь написать в нём что-то сложнее
👉 Пример "просто YAML":
🚨 А вот где начинается боль:
❔Почему YAML критикуют?
- Слишком много способов сделать одно и то же.
- Ошибки отступов (как в Python, но без явного синтаксиса).
- Неявное приведение типов (
А что вам больше нравится — YAML, JSON, TOML или старый добрый XML?
🌐 @helcode | #yaml
YAML: удобный или слишком сложный?
YAML кажется простым, пока не попробуешь написать в нём что-то сложнее
key: value. 👉 Пример "просто YAML":
server:
ports:
- 80
- 443
environment: production
🚨 А вот где начинается боль:
# Это число или строка?
version: 3.14
# А это?
version: "3.14"
# Многострочный текст с | и >
description: |
Это
многострочный
текст
❔Почему YAML критикуют?
- Слишком много способов сделать одно и то же.
- Ошибки отступов (как в Python, но без явного синтаксиса).
- Неявное приведение типов (
"123" vs 123). А что вам больше нравится — YAML, JSON, TOML или старый добрый XML?
P.S. Если YAML — это новый XML, то TOML — это новый INI. И так до бесконечности. 🔄
🌐 @helcode | #yaml
👍3
Как автоматизировать переключение VPN при утечке DNS
VPN включён, но DNS сливается? Пора это исправить!
Даже если трафик идёт через VPN, DNS-запросы могут "просачиваться" через ваш провайдер. Вот как автоматически переключать VPN при утечке.
🛠 Решение на Linux (bash + OpenVPN)
🛠 Решение на Windows (PowerShell)
❔Что ещё можно сделать?
- Использовать DNS over HTTPS (DoH) для дополнительной защиты.
- Настроить kill-switch в настройках VPN.
А вы проверяете, не "светится" ли ваш реальный IP при работе с VPN?
🌐 @helcode | #bash #powershell
VPN включён, но DNS сливается? Пора это исправить!
Даже если трафик идёт через VPN, DNS-запросы могут "просачиваться" через ваш провайдер. Вот как автоматически переключать VPN при утечке.
🛠 Решение на Linux (bash + OpenVPN)
#!/bin/bash
VPN_INTERFACE="tun0"
DNS_SERVER="10.8.0.1" # DNS вашего VPN
while true; do
CURRENT_DNS=$(resolvectl | grep 'Current DNS Server' | awk '{print $4}')
if [ "$CURRENT_DNS" != "$DNS_SERVER" ]; then
echo "Утечка DNS! Перезапускаю VPN..."
systemctl restart openvpn
fi
sleep 60 # Проверка каждую минуту
done
🛠 Решение на Windows (PowerShell)
$VPNInterface = "Ethernet 2" # Имя интерфейса VPN
$CorrectDNS = "10.8.0.1"
while ($true) {
$CurrentDNS = (Get-DnsClientServerAddress -InterfaceAlias $VPNInterface).ServerAddresses
if ($CurrentDNS -notcontains $CorrectDNS) {
Write-Host "Обнаружена утечка DNS! Переподключаю VPN..."
Restart-Service -Name "OpenVPNService"
}
Start-Sleep -Seconds 60
}
❔Что ещё можно сделать?
- Использовать DNS over HTTPS (DoH) для дополнительной защиты.
- Настроить kill-switch в настройках VPN.
А вы проверяете, не "светится" ли ваш реальный IP при работе с VPN?
P.S. Если скрипт постоянно перезапускает VPN, возможно, проблема не в DNS, а в самом VPN-сервере. 🕵️♂️
🌐 @helcode | #bash #powershell
👍2❤1
Скрипт для мгновенного развертывания honeypot
Хотите поймать злоумышленников? Разверните honeypot за 5 минут!
🍯 Honeypot ("медовая ловушка") имитирует уязвимый сервис, чтобы записывать атаки.
⚙️ Простейший honeypot на Python (HTTP-сервер с логом)
🦾 Усложнённый вариант (с записью в файл)
❔Что можно улучшить?
- Добавить Telegram-уведомления при атаке.
- Развернуть Cowrie (имитация SSH-сервера).
А вы когда-нибудь разворачивали honeypot? Какие инструменты использовали?
🌐 @helcode | #python #bash
Хотите поймать злоумышленников? Разверните honeypot за 5 минут!
🍯 Honeypot ("медовая ловушка") имитирует уязвимый сервис, чтобы записывать атаки.
⚙️ Простейший honeypot на Python (HTTP-сервер с логом)
from http.server import BaseHTTPRequestHandler, HTTPServer
import datetime
class HoneypotHandler(BaseHTTPRequestHandler):
def do_GET(self):
ip = self.client_address[0]
print(f"[{datetime.datetime.now()}] Попытка доступа от {ip} к {self.path}")
self.send_response(404)
self.end_headers()
server = HTTPServer(('0.0.0.0', 8080), HoneypotHandler)
print("Honeypot запущен на порту 8080...")
server.serve_forever()
🦾 Усложнённый вариант (с записью в файл)
nohup python3 honeypot.py > attacks.log 2>&1 &
❔Что можно улучшить?
- Добавить Telegram-уведомления при атаке.
- Развернуть Cowrie (имитация SSH-сервера).
А вы когда-нибудь разворачивали honeypot? Какие инструменты использовали?
P.S. Если ваш honeypot начал "ловить" вас самого, возможно, вы забыли сменить порт. 😅
🌐 @helcode | #python #bash
👍2
Как тихо собрать все метаданные в сети
Passive recon: собираем данные, не привлекая внимания
Прежде чем тестировать безопасность сети, нужно разведать её структуру. Вот как сделать это незаметно.
Сбор информации без сканирования (Linux)
PowerShell-версия (Windows)
❗️Важно:
- Не нарушайте законы! Используйте только в своей сети или с разрешения.
- Для этичного тестирования лучше Nmap (
Какие инструменты для сбора метаданных вы считаете самыми эффективными?
🌐 @helcode | #bash #powershell
Passive recon: собираем данные, не привлекая внимания
Прежде чем тестировать безопасность сети, нужно разведать её структуру. Вот как сделать это незаметно.
Сбор информации без сканирования (Linux)
# 1. ARP-таблица (уже подключённые устройства)
arp -a
# 2. DNS-записи (если есть доступ)
dig example.com ANY
# 3. Слушаем сетевой трафик (только заголовки)
tcpdump -i eth0 -nn -c 100 'port 53 or port 80'
PowerShell-версия (Windows)
# 1. ARP-кэш
Get-NetNeighbor
# 2. Активные подключения
Get-NetTCPConnection | Where-Object { $_.State -eq "Established" }
# 3. DNS-кэш
Get-DnsClientCache
❗️Важно:
- Не нарушайте законы! Используйте только в своей сети или с разрешения.
- Для этичного тестирования лучше Nmap (
nmap -sS -T4 192.168.1.0/24). Какие инструменты для сбора метаданных вы считаете самыми эффективными?
P.S. Если tcpdump ничего не показывает, проверьте, не блокирует ли брандмауэр трафик.
🌐 @helcode | #bash #powershell
🔥4🤔2
Скрипт для автоматического обновления всех зависимостей
"Апдейты — это скучно" — сказал каждый, пока не сломался prod
Ручное обновление зависимостей — это риск забыть что-то важное. Давайте автоматизируем!
Для Python (pip)
Для Node.js (npm)
➡️ Дополнительные фичи:
- Уведомления в Telegram при критических обновлениях.
- Откат, если тесты не проходят.
А вы обновляете зависимости вручную или автоматически?
🌐 @helcode | #bash
"Апдейты — это скучно" — сказал каждый, пока не сломался prod
Ручное обновление зависимостей — это риск забыть что-то важное. Давайте автоматизируем!
Для Python (pip)
#!/bin/bash
# Обновляем pip
pip install --upgrade pip
# Обновляем все пакеты
pip list --outdated --format=freeze | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip install -U
# Проверяем, не сломалось ли что-то
pytest tests/
Для Node.js (npm)
npx npm-check-updates -u
npm install
npm test
➡️ Дополнительные фичи:
- Уведомления в Telegram при критических обновлениях.
- Откат, если тесты не проходят.
А вы обновляете зависимости вручную или автоматически?
P.S. Если после npm install всё сломалось, вспомните, что package-lock.json существует не просто так. 😬
🌐 @helcode | #bash
👍3❤1
Скрипт для автоудаления старых логов
Старые логи могут заполнить сервер, если их не удалять. Простое решение —
Bash-скрипт (удаляет логи старше 30 дней)
Добавляем в cron (ежедневно в 3:00)
Варианты:
- Сжимать логи перед удалением (
- Исключить важные логи (
Как вы чистите логи? Удаляете, архивируете или отправляете в SIEM?
🌐 @helcode | #bash
Старые логи могут заполнить сервер, если их не удалять. Простое решение —
find + cron. Bash-скрипт (удаляет логи старше 30 дней)
#!/bin/bash
LOG_DIR="/var/log"
find "$LOG_DIR" -type f -name "*.log" -mtime +30 -delete
Добавляем в cron (ежедневно в 3:00)
0 3 * * * /path/to/clean_logs.sh
Варианты:
- Сжимать логи перед удалением (
gzip). - Исключить важные логи (
-not -name "important.log"). Как вы чистите логи? Удаляете, архивируете или отправляете в SIEM?
P.S. Если find ругается на права, попробуйте sudo или настройте logrotate.
🌐 @helcode | #bash
👍6