sudo rm -rf /: Почему эту команду до сих пор не удалили?
Даже в 2024 году
Как защитить продакшен:
Образовательный метод:
Вы сталкивались с "удалением всего"? Как спасали систему?
🌐 @automate_today | #bash
Даже в 2024 году
rm -rf / остаётся легальной командой в Linux — просто теперь она требует --no-preserve-root. Но почему? Потому что иногда админам намеренно нужно "сжечь мосты" (тестовые стенды, инстансы с критичными багами). Как защитить продакшен:
alias rm='rm -i' — спрашивает подтверждение перед каждым удалением. chattr +i /critical_dir — делает папку неизменяемой даже для root. Образовательный метод:
echo 'Ало, ты серьёзно?! Добавь --no-preserve-root, если осознаёшь последствия.' > /usr/local/bin/rm
chmod +x /usr/local/bin/rm # Кастомный "rm" с проверкой
Вы сталкивались с "удалением всего"? Как спасали систему?
🌐 @automate_today | #bash
👍3
echo $VAR — опасная строка в bash-скриптах
Проблема:
- Неквотированные переменные в bash — это "бомба замедленного действия". Пример:
Правила выживания:
- Всегда заключайте переменные в кавычки:
- Используйте
Какие грабли с кавычками/переменными вас подводили?
🌐 @automate_today | #bash
Проблема:
- Неквотированные переменные в bash — это "бомба замедленного действия". Пример:
files="*.txt"
rm $files # Удалит ВСЕ .txt файлы, даже если вы хотели один!
Правила выживания:
- Всегда заключайте переменные в кавычки:
rm "$files" # Удалит только файл с именем "*.txt"
- Используйте
printf вместо echo — он предсказуемее: printf '%s\n' "$VAR" # Не сломается на спецсимволах
Какие грабли с кавычками/переменными вас подводили?
🌐 @automate_today | #bash
👍3
Автоматизация без техдолга: как писать скрипты, которые проживут 5 лет
Антипаттерны:
- Хардкод путей (
- Зависимость от версий (
- Молчаливые падения (
Как делать правильно:
1. Конфиги в
2. Параметризация через
3. Явные проверки:
По каким принципам вы проектируете долгоживущие скрипты?
🌐 @automate_today | #bash
Антипаттерны:
- Хардкод путей (
/home/user/script.sh). - Зависимость от версий (
python3.6 вместо python3). - Молчаливые падения (
curl без --fail). Как делать правильно:
1. Конфиги в
~/.config/ — путь стандартизирован для всех Linux-приложений. 2. Параметризация через
getopts (bash) или argparse (Python): while getopts "c:" opt; do
case $opt in
c) CONFIG_FILE="$OPTARG" ;;
esac
done
3. Явные проверки:
[[ -f "$FILE" ]] || { echo "ERROR: $FILE не существует"; exit 1; }
По каким принципам вы проектируете долгоживущие скрипты?
🌐 @automate_today | #bash
⚡2
PowerShell: Почему Write-Host — это грех
Разница:
-
-
Пример катастрофы:
Когда использовать
Только для интерактивных скриптов с цветным выводом.
Какие ещё PowerShell-антипаттерны вас раздражают?
🌐 @automate_today | #powershell
Разница:
-
Write-Host — выводит текст напрямую в консоль (нельзя перенаправить в файл!). -
Write-Output — попадает в конвейер (pipeline), работает с >, |. Пример катастрофы:
# Так логи НЕ сохранятся:
Write-Host "Error!" | Out-File log.txt # Пустой файл
Когда использовать
Write-Host: Только для интерактивных скриптов с цветным выводом.
Какие ещё PowerShell-антипаттерны вас раздражают?
🌐 @automate_today | #powershell
👍3⚡1
Systemd для Python-скриптов: гайд
Зачем это нужно:
- Автозапуск при загрузке.
- Автоматический перезапуск при падении.
- Централизованное логирование через
Шаблон сервиса:
Как включить:
Какие скрипты вы запускаете через systemd?
🌐 @automate_today
Зачем это нужно:
- Автозапуск при загрузке.
- Автоматический перезапуск при падении.
- Централизованное логирование через
journalctl. Шаблон сервиса:
[Unit]
Description=My Python Bot
After=network.target
[Service]
User=botuser
WorkingDirectory=/opt/bot
ExecStart=/usr/bin/python3 -u bot.py
Restart=always
Environment="API_KEY=secret"
[Install]
WantedBy=multi-user.target
Как включить:
sudo systemctl daemon-reload
sudo systemctl enable --now mybot
Какие скрипты вы запускаете через systemd?
🌐 @automate_today
⚡2👍2
Оптимизация поиска в логах: grep, awk, или что-то третье?
Бенчмарк (лог 10 ГБ):
Советы:
- Если нужно только последние ошибки:
- Для сложных фильтров —
Какие инструменты вы используете для анализа логов?
🌐 @automate_today | #bash
Бенчмарк (лог 10 ГБ):
| Метод | Время | Память |
|-----------------------------|-----------|------------|
| grep "ERROR" | 12 сек | 1.2 ГБ |
| awk '/ERROR/' | 8 сек | 0.8 ГБ |
| rg "ERROR" (ripgrep) | 3 сек | 0.3 ГБ |
Советы:
- Если нужно только последние ошибки:
tail -n 10000 huge.log | grep -C 5 "ERROR" # Контекст 5 строк
- Для сложных фильтров —
jq для JSON-логов: cat app.log | jq 'select(.level == "ERROR")'
Какие инструменты вы используете для анализа логов?
🌐 @automate_today | #bash
👍3
Виртуальные окружения Python: как не сломать систему
Типичные ошибки:
-
- Отсутствие
Правильный workflow:
1. Создать окружение:
2. Фиксировать зависимости:
3. Восстанавливать:
Как вы управляете зависимостями в Python?
🌐 @automate_today | #bash
Типичные ошибки:
-
sudo pip install — ломает системные пакеты (например, apt перестаёт работать). - Отсутствие
requirements.txt — "а вот у меня работает!". Правильный workflow:
1. Создать окружение:
python -m venv .venv
source .venv/bin/activate
2. Фиксировать зависимости:
pip freeze > requirements.txt
3. Восстанавливать:
pip install -r requirements.txt
Как вы управляете зависимостями в Python?
🌐 @automate_today | #bash
👍1
Битва архивов: tar.gz vs zip под микроскопом
Кейсы:
- Для Linux:
- Для Windows:
Скорость (тест 10 ГБ файлов):
-
-
Какой формат архива вы предпочитаете и почему?
🌐 @automate_today | #bash
Кейсы:
- Для Linux:
tar czvf backup.tar.gz --exclude="*.tmp" /data # Сжимает + сохраняет права
- Для Windows:
zip -r backup.zip /data -x "*.tmp" # Читается в Проводнике
Скорость (тест 10 ГБ файлов):
-
tar + gzip — 2 мин, коэффициент сжатия ~70%. -
zip — 3 мин, коэффициент ~65%. Какой формат архива вы предпочитаете и почему?
🌐 @automate_today | #bash
👍3🤔2
Парсинг JSON в bash: когда jq — это overkill
Альтернативы:
1. Python (есть везде):
2. Awk (для простых случаев):
Когда точно нужен
- Глубокий поиск:
- Форматирование:
Какие хаки для работы с JSON в CLI вы знаете?
🌐 @automate_today | #bash
Альтернативы:
1. Python (есть везде):
echo '{"user": "admin"}' | python3 -c "import json, sys; print(json.load(sys.stdin)['user'])"
2. Awk (для простых случаев):
echo '{"error": "404"}' | awk -F'"' '{print $4}' # → 404
Когда точно нужен
jq: - Глубокий поиск:
.data.items[] | select(.id == 42) - Форматирование:
jq '.' unformatted.json Какие хаки для работы с JSON в CLI вы знаете?
🌐 @automate_today | #bash
👍3❤1
Почему автоматизация — это новая грамотность в IT?
Скрипты — как умение читать и писать для IT-специалиста.
Философия "ленивого админа":
"Лучше потратить 3 часа на скрипт, чем 30 минут каждый день на рутину."
➖ Bash-пример для очистки логов:
Что теряет тот, кто не автоматизирует:
- Время (часы ручной работы)
- Надёжность (человеческие ошибки)
- Карьерные возможности (автоматизация = конкурентное преимущество)
Вы уже автоматизировали свою рутину? Делитесь в комментариях!
🌐 @automate_today | #bash
Скрипты — как умение читать и писать для IT-специалиста.
Философия "ленивого админа":
"Лучше потратить 3 часа на скрипт, чем 30 минут каждый день на рутину."
➖ Bash-пример для очистки логов:
find /var/log -type f -mtime +7 -delete
Что теряет тот, кто не автоматизирует:
- Время (часы ручной работы)
- Надёжность (человеческие ошибки)
- Карьерные возможности (автоматизация = конкурентное преимущество)
Вы уже автоматизировали свою рутину? Делитесь в комментариях!
🌐 @automate_today | #bash
💯6
ТОП-3 языка для автоматизации в 2025
1. Bash — "швейцарский нож" админа
Для: серверных задач, CI/CD
Не для: сложной логики
2. Python — универсальный автомат
Для: анализа данных, API, кросс-платформенных решений
3. PowerShell — король Windows
Для: Active Directory, облачных сервисов
Какой язык используете чаще?
🌐 @automate_today | #python #powershell #bash
1. Bash — "швейцарский нож" админа
Для: серверных задач, CI/CD
Не для: сложной логики
# Мониторинг места на диске
df -h | awk '$5 > 80 {print "ALERT: " $6 " is " $5}'
2. Python — универсальный автомат
Для: анализа данных, API, кросс-платформенных решений
# Автопроверка сайта
import requests
if requests.get("https://example.com").status_code != 200:
print("Сайт лежит!")
3. PowerShell — король Windows
Для: Active Directory, облачных сервисов
# Поиск неактивных пользователей
Get-ADUser -Filter {LastLogonDate -lt (Get-Date).AddDays(-90)}
Какой язык используете чаще?
🌐 @automate_today | #python #powershell #bash
❤2🤔1🦄1
5 скриптов, которые сэкономят вам 100+ часов
Какой скрипт вам нужен прямо сейчас? Напишите — поможем с кодом!
🌐 @automate_today | #python #powershell #bash
1. Автодеплой (Bash): ssh user@server "cd /app && git pull && docker-compose up -d"
2. Проверка бэкапов (Python): import os
if not os.path.exists("/backups/today.zip"):
send_alert("Backup failed!")
3. Уборка временных файлов (PowerShell): Remove-Item -Path "C:\Temp\*" -Recurse -Force -ErrorAction SilentlyContinue
4. Мониторинг процессов (Bash): if ! pgrep -x "nginx" > /dev/null; then systemctl restart nginx; fi
5. Массовое переименование (Python): import os
[os.rename(f, f.replace(" ", "_")) for f in os.listdir()]
Какой скрипт вам нужен прямо сейчас? Напишите — поможем с кодом!
🌐 @automate_today | #python #powershell #bash
👍5🔥2
Ошибки новичков в автоматизации
Плохие практики:
1. Хардкод паролей в скриптах → Используйте переменные окружения!
2. Нет обработки ошибок → Добавляйте
3. Молчаливые скрипты → Всегда добавляйте логи (`echo "Step 1: Done"`).
Какие ошибки совершали вы?
🌐 @automate_today | #bash
Плохие практики:
1. Хардкод паролей в скриптах → Используйте переменные окружения!
2. Нет обработки ошибок → Добавляйте
|| exit 1 в Bash,новичков в авв PowerShell. 3. Молчаливые скрипты → Всегда добавляйте логи (`echo "Step 1: Done"`).
🔧 Как исправить? # Плохо:
mysql -u root -p12345 < dump.sql
# Хорошо:
DB_PASS=$(vault get db_pass)
mysql -u root -p"$DB_PASS" < dump.sql || logger "DB import failed"
Какие ошибки совершали вы?
🌐 @automate_today | #bash
👍5
Будущее автоматизации: что ждёт в 2025?
Тренды:
1. AI-ассистенты для генерации скриптов (GitHub Copilot на стероидах).
2. Самовосстанавливающиеся системы → Скрипты + мониторинг + автофиксы.
3. Low-code для DevOps → Визуальные конструкторы сложных пайплайнов.
Пример AI-помощника (Python):
Какой тренд для вас самый важный?
🌐 @automate_today | #python
Тренды:
1. AI-ассистенты для генерации скриптов (GitHub Copilot на стероидах).
2. Самовосстанавливающиеся системы → Скрипты + мониторинг + автофиксы.
3. Low-code для DevOps → Визуальные конструкторы сложных пайплайнов.
Пример AI-помощника (Python):
# Запрос к ИИ: "Напиши скрипт для проверки SSL-сертификатов"
import ssl, socket
def check_ssl(domain):
ctx = ssl.create_default_context()
with ctx.wrap_socket(socket.socket(), server_hostname=domain) as s:
s.connect((domain, 443))
cert = s.getpeercert()
return cert['notAfter']
Какой тренд для вас самый важный?
🌐 @automate_today | #python
Трансформируем .bashrc из свалки в швейцарский нож
Многие администраторы игнорируют алиасы и не подозревают, как можно упростить взаимодействие с Linux
ТОП-3 для старта:
Cовет:
Добавьте это в ваш
Делитесь своими алиасами-спасателями!
🌐 @automate_today | #bash
Многие администраторы игнорируют алиасы и не подозревают, как можно упростить взаимодействие с Linux
ТОП-3 для старта:
# 1. "Ой, забыл sudo":
alias fucking='sudo $(history -p !!)'
# 2. Навигация по папкам с fzf (должен быть установлен):
alias cdd='cd $(find . -type d | fzf)'
# 3. Убийца процессов с интерфейсом:
alias killem='ps aux | fzf | awk "{print \$2}" | xargs kill -9'
Cовет:
Добавьте это в ваш
.bashrc и сделайте source ~/.bashrc.Делитесь своими алиасами-спасателями!
🌐 @automate_today | #bash
😁3
Как я "посещаю" митинги без меня
Скрипт для автоматического входа в Zoom/Teams, пока вы пьете кофе:
Лайфхак:
Добавьте
Какие нерабочие процессы вы автоматизировали?
🌐 @automate_today | #python
Скрипт для автоматического входа в Zoom/Teams, пока вы пьете кофе:
import pyautogui # pip install pyautogui
import time
def join_meeting(meeting_id):
pyautogui.hotkey('ctrl', 'alt', 'm') # Горячие клавиши Zoom
time.sleep(1) # Ждем открытия окна
pyautogui.write(meeting_id)
pyautogui.press('enter')
Лайфхак:
Добавьте
time.sleep(1800) и pyautogui.hotkey('alt', 'q') для авто-выхода через 30 мин.Какие нерабочие процессы вы автоматизировали?
🌐 @automate_today | #python
❤3
3 команды, которые значительно повысят вашу продуктивность в PowerShell
Для сисадминов и не только:
1. Экстренная остановка "зависших" процессов:
2. Поиск и удаление "гигабайтового мусора":
3. Парсинг сайта без браузера:
Какой ваш любимый one-liner?
🌐 @automate_today | #powershell
Для сисадминов и не только:
1. Экстренная остановка "зависших" процессов:
Get-Process | Where CPU -gt 90 | Stop-Process -Force
2. Поиск и удаление "гигабайтового мусора":
Get-ChildItem -Recurse | Where Length -gt 1GB | Remove-Item
3. Парсинг сайта без браузера:
(Invoke-WebRequest -Uri "https://example.com").Content
Какой ваш любимый one-liner?
🌐 @automate_today | #powershell
👍3
Как мой скрипт удалил продакшен
Анти-кейс:
Что пошло не так:
- Переменная
- Сервер упал через 2 секунды
Как починили:
1. Резервные копии (спасибо,
2. Добавили проверки:
Ваши самые эпичные фейлы?
🌐 @automate_today | #bash
Анти-кейс:
# Очистка логов (казалось бы...)
rm -rf $LOGS_DIR/*
Что пошло не так:
- Переменная
LOGS_DIR оказалась пустой → удалил / - Сервер упал через 2 секунды
Как починили:
1. Резервные копии (спасибо,
rsync!) 2. Добавили проверки:
[[ -z "$LOGS_DIR" ]] && { echo "Error: LOGS_DIR is empty!"; exit 1; }
Ваши самые эпичные фейлы?
🌐 @automate_today | #bash
👍3😁2
⚙️ Полезная фича VSCode
🛠️ Речь о: SSH + VSCode Remote для редактирования файлов на сервере прямо из IDE
❓Как настроить:
1. Установите расширение Remote - SSH
2. Добавьте сервер через
3. Редактируйте файлы как локальные
📌 Фишки:
- Автодополнение кода на удаленном сервере
- Запуск терминала прямо в VSCode
- Нет риска "а вдруг я изменю продакшен?" (подсветка окружения)
Какие инструменты вы открыли для себя слишком поздно?
🌐 @automate_today
🛠️ Речь о: SSH + VSCode Remote для редактирования файлов на сервере прямо из IDE
❓Как настроить:
1. Установите расширение Remote - SSH
2. Добавьте сервер через
F1 → Remote-SSH: Add New Host3. Редактируйте файлы как локальные
📌 Фишки:
- Автодополнение кода на удаленном сервере
- Запуск терминала прямо в VSCode
- Нет риска "а вдруг я изменю продакшен?" (подсветка окружения)
Какие инструменты вы открыли для себя слишком поздно?
🌐 @automate_today
👍5
Скрипт, который поможет избежать рутины
Автоматизация онбординга новых сотрудников:
1. Создает учетки в AD/GitLab
2. Генерирует пароли и сохраняет в 1Password
3. Отправляет приветственное письмо
Код (упрощенный):
Эффект:
- Время онбординга ↓ с 3 дней до 1 часа
- HR перестали беспокоить по каждой мелочи
Какие процессы в вашей компании кричат об автоматизации?
@automate_today | #python
Автоматизация онбординга новых сотрудников:
1. Создает учетки в AD/GitLab
2. Генерирует пароли и сохраняет в 1Password
3. Отправляет приветственное письмо
Код (упрощенный):
def onboard_employee(name, email):
create_ad_account(name)
setup_gitlab_access(email)
send_welcome_email(name, temp_password)
Эффект:
- Время онбординга ↓ с 3 дней до 1 часа
- HR перестали беспокоить по каждой мелочи
Какие процессы в вашей компании кричат об автоматизации?
@automate_today | #python
❤3👍1
Почему SSH в большинстве ситуаций — дырявое ведро
Типичные ошибки:
1. Парольная аутентификация вместо ключей
2. Порт 22 открыт для всех IP
3. Нет fail2ban
Как исправить:
Проверка:
Какие ещё уязвимости SSH Вы знаете?
🌐 @automate_today | #bash
Типичные ошибки:
1. Парольная аутентификация вместо ключей
2. Порт 22 открыт для всех IP
3. Нет fail2ban
Как исправить:
# /etc/ssh/sshd_config:
PasswordAuthentication no
AllowUsers yourname
Port 49281 # Свой порт вместо 22
Проверка:
ssh-audit your-server.com
Какие ещё уязвимости SSH Вы знаете?
🌐 @automate_today | #bash
💯3