Python_Scripts
8.22K subscribers
1K photos
5 videos
674 files
1.54K links
Скрипты 💾 на Python 🐍
- боты 🛠
- парсеры📁
- чекеры🔍
- автоматизация🔧
- многое другое💻

Ваши предложения📝 @cmd_dark @CMD_Vega
Download Telegram
🔥 Полезные библиотеки Python

shed-skin

📌 shed-skin — экспериментальный транслятор из "узкого" Python (статически типизированного subset) в C++. Он компилирует код на Python 3.8+ в эффективный самодостаточный бинарник или расширение. Отличный инструмент, если нужно ускорить Python‑код без переписывания всего проекта на C++.

📌 Особенности библиотеки:
🟠 Преобразует ограниченный Python (аннотации типов, без dynamic features) в нативный C++
🟠 Ускорение исполнения — особый интерес для вычислительных задач, где важна скорость
🟠 Поддержка около 20 стандартных модулей (random, itertools, re и др.)
🟠 Кроссплатформенность: Linux, macOS, Windows
🟠 Разрешённая лицензия — GPLv3/BSD/MIT, активная разработка: последний релиз был 22 июня 2024


⚙️ Установка:
pip install shed-skin


📌 shed-skin — идеальный, если хочешь ускорить код, оставляя Python‑синтаксис, без глубокого погружения в C/C++.

🔢 Документация

#библиотеки

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
7🔥5👍4
📝 Локальный переводчик документов и текста (PDF, DOCX, TXT)

📌 Где применимо?
🟠 Перевод технических документов, статей, инструкций
🟠 Работа в оффлайн-средах (военные, научные проекты, закрытые офисы)
🟠 Перевод без утечки данных (без отправки в интернет)
🟠 Автоперевод архивов


🧑‍💻 Код скрипта:
import argostranslate.package, argostranslate.translate
import pdfplumber
import docx2txt
import os

def load_model(from_code="ru", to_code="en"):
installed_languages = argostranslate.translate.get_installed_languages()
from_lang = next(filter(lambda l: l.code == from_code, installed_languages), None)
to_lang = next(filter(lambda l: l.code == to_code, installed_languages), None)
return from_lang.get_translation(to_lang) if from_lang and to_lang else None

def extract_text(file_path):
if file_path.endswith(".pdf"):
with pdfplumber.open(file_path) as pdf:
return "\n".join(page.extract_text() or "" for page in pdf.pages)
elif file_path.endswith(".docx"):
return docx2txt.process(file_path)
elif file_path.endswith(".txt"):
with open(file_path, "r", encoding="utf-8") as f:
return f.read()
else:
raise ValueError("Неподдерживаемый формат")

def save_text(text, out_path):
with open(out_path, "w", encoding="utf-8") as f:
f.write(text)

# Пример использования
file_path = "example_ru.pdf"
out_path = "translated_en.txt"
translation = load_model("ru", "en")
text = extract_text(file_path)
translated = translation.translate(text)
save_text(translated, out_path)
print(f" Перевод сохранён: {out_path}")


#скрипты

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
👍158
🔥 Полезные библиотеки Python

rpyc

📌 RPyC (Remote Python Call) — это мощная библиотека для удалённого вызова процедур и распределённых вычислений. Она позволяет делать RPC-программы, где клиент и сервер могут вызывать функции друг друга как локальные — без генерации шаблонов, IDL, или сложных настроек.

📌 Особенности библиотеки:
🟠 Симметричность: клиент и сервер могут выступать обе роли, вызывать функции и обмениваться объектами.
🟠 Прозрачность: удалённые функции, классы и объекты выглядят как локальные.
🟠 Поддержка синхронных и асинхронных вызовов (AsyncResult как промисы).
🟠 Исключения передаются по сети как в локальном коде — удобно для отладки.
🟠 Удобна для распределённых Python-приложений, отладочных оболочек, удалённого управления, микросервисов, интерактивных shell-сессий.


⚙️ Установка:
pip install rpyc


🔢 Документация

#библиотеки

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥42🥰1
📌 Simple TCP Port Scanner — лёгкий и понятный инструмент для проверки открытых TCP‑портов на хосте. Отличный для диагностики, быстрого аудита или начальной разведки.

📱 Python 3.8+
💾 Модули: socket, sys, argparse, datetime (все стандартные)

📌 Simple TCP Port Scanner:
- Спрашивает адрес хоста (IP или домен) и диапазон портов
- Использует socket.connect_ex() для проверки каждого порта
- Печатает список открытых портов и время выполнения
- Основан на примерах с TechTarget и GeeksforGeeks


🧑‍💻 Пример использования (CLI):
python port_scanner.py --host example.com --start 1 --end 1024


👨‍💻 Код скрипта:
import socket
import sys
import argparse
from datetime import datetime

def scan_ports(host, start, end, timeout=0.5):
try:
target = socket.gethostbyname(host)
except socket.gaierror:
print(" Не удалось разрешить хост.")
sys.exit(1)

print(f"=== Сканирование {host} ({target}) портов {start}–{end} ===")
t0 = datetime.now()
open_ports = []

for port in range(start, end + 1):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(timeout)
result = sock.connect_ex((target, port))
if result == 0:
print(f"✔️ Порт {port} открыт")
open_ports.append(port)
sock.close()

t1 = datetime.now()
print(f"=== Сканирование завершено за {t1 - t0} (открыто: {len(open_ports)}) ===")
if open_ports:
print("Открытые порты:", open_ports)

def main():
parser = argparse.ArgumentParser(description="Простой TCP порт-сканнер")
parser.add_argument("--host", required=True, help="IP или хостнейм для сканирования")
parser.add_argument("--start", type=int, default=1, help="Начальный порт")
parser.add_argument("--end", type=int, default=1024, help="Конечный порт")
args = parser.parse_args()
scan_ports(args.host, args.start, args.end)

if __name__ == "__main__":
main()


📌 Скрипт:
- Разрешает домен в IP
- Проверяет диапазон портов методом connect_ex()
- Использует параметр timeout, чтобы не зависать
- Показывает открытые порты и время сканирования


#скрипты

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍4
🔥 Полезные библиотеки Python

cupy

📌 cupy — это высокопроизводительная библиотека для численных вычислений, совместимая с API NumPy, но оптимизированная для работы на GPU (CUDA и AMD ROCm). Она позволяет ускорить операции над массивами в десятки раз без изменения привычного синтаксиса NumPy, идеально подходит для ML, научных вычислений и обработки больших данных.

📌 Особенности библиотеки:
🟠 Поддерживает многомерные массивы, линейную алгебру, FFT и статистику, как в NumPy;
🟠 GPU‑ускорение: подходит для ускорения ML‑подготовки и вычислений;
🟠 Совместимость: безболезненная замена import numpy as np → import cupy as cp;
🟠 Поддержка CUDA и AMD ROCm, активно развивается (версия 13.3.0, август 2024);
🟠 Используется в проектах NVIDIA RAPIDS, Chainer и др..


⚙️ Установка:
pip install cupy


📌 Почему стоит выбрать cupy:
- Используется привычный API NumPy, но ускоряется за счёт GPU;
- Отличный выбор для подготовки данных, вычислений и ML‑задач;
- Значительное ускорение для операций над большими массивами.


🔢 Документация

#библиотеки

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥43
🔥 Полезные библиотеки Python

sweetviz

📌 sweetviz — это замечательная библиотека для автоматического генерации отчётов по разведочному анализу данных (EDA). Она создаёт интерактивный HTML-файл с визуализациями, сравнениями, статистикой и даже возможностью сравнить тренировочную и тестовую выборки — всё в пару строк кода!

📌 Особенности библиотеки:
🟠 Генерация полного EDA-отчёта одним вызовом (analyze()), включая сводную статистику по всем колонкам;
🟠 Поддержка сравнения двух таблиц — полезно для выявления смещений между train/test;
🟠 Автоматические красивые графики — распределения, зависимости, статистические сравнения;
🟠 Всё хранится в самостоятельном .html — удобно делиться отчётами коллегам.


⚙️ Установка:
pip install sweetviz


🔢 Документация

#библиотеки

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
👍83🔥3
🔥 Полезные библиотеки Python

icecream

📌 icecream — удобный и малоизвестный инструмент для отладки, заменяющий привычный print(). Он автоматически выводит имя переменной, её значение и контекст (файл:строка) — всё это улучшает читаемость и ускоряет поиск багов. В 2025 году становится незаменимым в повседневной отладке.

📌 Особенности библиотеки:
🟠 Автоматическое именование переменных и вывод контекста (ic(x, y, z) → ic| x: 1, y: 2, z:3)
🟠 Цветной и форматированный вывод
🟠 Поддержка фильтрации, включения/отключения
🟠 Работает быстрее и удобнее, чем ручной print()
🟠 Лёгкая установка, BSD‑лицензия, совместимость с Python 3.7+


⚙️ Установка:
pip install icecream


📌 icecream превратит вашу отладку в удовольствие — меньше шума, больше контекста, быстрее результаты.

🔢 Документация

#библиотеки

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👍31🥰1
Directory Watcher — скрипт для реального времени мониторинга изменений в папке. Идеален для автоматического реагирования: запускать сборку, копировать файлы, логировать события и т.д. Работает кросс-платформенно (Linux/macOS/Windows).

📱 Python 3.8+
💾 Модули: watchdog, argparse, time (стандартная библиотека)

📌 Directory Watcher:
- Мониторит создание, изменение, удаление и перемещение файлов
- Позволяет указать директорию и включить вложенные папки (--recursive)
- Поддерживает фильтрацию по расширению файлов (например, только .py)
- Основан на библиотеке watchdog, которая использует platform-specific механизмы (inotify, Windows API)


🧑‍💻 Пример использования (CLI):
python dir_watcher.py --path ./my_folder --recursive --ext .txt,.log


👨‍💻 Код скрипта:
import time, argparse
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler

class Handler(FileSystemEventHandler):
def __init__(self, exts):
self.exts = tuple(exts)

def dispatch(self, event):
if event.is_directory: return
if self.exts and not event.src_path.endswith(self.exts): return
super().dispatch(event)

def on_created(self, event):
print(f"🟢 Created: {event.src_path}")

def on_modified(self, event):
print(f"🟡 Modified: {event.src_path}")

def on_deleted(self, event):
print(f"🔴 Deleted: {event.src_path}")

def on_moved(self, event):
print(f"🔁 Moved: {event.src_path} → {event.dest_path}")

def main():
parser = argparse.ArgumentParser(description="Directory Watcher")
parser.add_argument("--path", required=True, help="Папка для мониторинга")
parser.add_argument("--recursive", action="store_true", help="Сканировать вложенные папки")
parser.add_argument("--ext", default="", help="Фильтр по расширениям (через запятую)")
args = parser.parse_args()

exts = [e.strip() for e in args.ext.split(",") if e.strip()]
handler = Handler(exts)
observer = Observer()
observer.schedule(handler, args.path, recursive=args.recursive)
observer.start()
print(f"🚀 Monitoring '{args.path}' (recursive={args.recursive}, exts={exts})")

try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()

if __name__ == "__main__":
main()


📌 Установка зависимости:
pip install watchdog


📌 Где пригодится:
- Автоматический запуск сборки/тестов при изменении файлов
- Синхронизация или обработка новых логов/данных
- Автоматизация задач DevOps, CI/CD, генерации статических сайтов и т.п.


#скрипты

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
👍74🔥2
💬 Google Image Downloader — скрипт, который скачивает изображения по запросу с Google и сохраняет их в папку.

📱 Python 3.8+
💾 Модули: requests, bs4 (BeautifulSoup), os

📌 Google Image Downloader — простой скрипт, который принимает ключевое слово, делает запрос к Google Images, парсит src у тегов <img> и скачивает изображения по этим ссылкам. Отличный вариант для массового создания датасетов или сбора изображений для анализа.

👨‍💻 Код:
import os
import requests
from bs4 import BeautifulSoup

def download_google_images(query, folder="images", limit=10):
os.makedirs(folder, exist_ok=True)
url = "https://www.google.com/search"
params = {"q": query, "tbm": "isch"}
headers = {"User-Agent": "Mozilla/5.0"}
resp = requests.get(url, params=params, headers=headers)
soup = BeautifulSoup(resp.text, "html.parser")
imgs = soup.find_all("img")[:limit]

for i, img in enumerate(imgs, 1):
src = img.get("src")
if not src:
continue
img_data = requests.get(src).content
path = os.path.join(folder, f"{query.replace(' ', '_')}_{i}.jpg")
with open(path, "wb") as f:
f.write(img_data)
print(f" Скачал: {path}")

if __name__ == "__main__":
download_google_images("cats", limit=5)


📌 Скрипт:
🟠 Делает GET-запрос к Google Images с указанным ключевым словом
🟠 Парсит HTML через BeautifulSoup, берёт src первых <img>
🟠 Скачивает картинки по ссылке и сохраняет их в папку images


#скрипты
🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
👍93🔥3
🔥 Полезные библиотеки Python

pefile

📌 pefile — Python-библиотека для анализа PE-файлов (Portable Executable): .exe, .dll, .sys и других бинарников Windows.

📌 Особенности библиотеки:
🟠Извлекает структуру PE-файла: секции, импорты, экспорты, заголовки
🟠Удобна для анализов вредоносного ПО и реверса
🟠Поддерживает изменение и пересборку PE-файлов


⚙️ Установка:
pip install pefile


🔢 Документация

#библиотеки

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
👍105🔥3
🔥 Полезные библиотеки Python

commix

📌 commix (Command Injection Exploiter) — инструмент и Python-библиотека для автоматического поиска и эксплуатации уязвимостей командной инъекции в веб-приложениях.

📌 Особенности commix:
🟠Автоматически определяет и эксплуатирует command injection
🟠Поддерживает GET, POST, cookie, user-agent и другие источники инъекций
🟠Возможность интерактивной оболочки (reverse shell, meterpreter и др.)
🟠Поддерживает обход WAF и фильтров


⚙️ Установка:
git clone https://github.com/commixproject/commix
cd commix
python commix.py --help


🔢 Документация

#библиотеки

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥32🎉1
MD2PDF Converter — CLI-утилита, которая преобразует Markdown-файлы или папки с ними в PDF, поддерживает единичное преобразование, пакеты и объединение. Работает на UNIX-системах — удобно для документации, резюме, статей.

📱 Python 3+
💾 Модули: markdown, pdfkit, argparse, os, re (все через requirements.txt), плюс внешняя утилита wkhtmltopdf

📌 MD2PDF Converter:
- Принимает на вход один .md, папку с .md или папку, из которой собирает и объединяет все Markdown-файлы
- Генерирует PDF-файл(ы), сохраняя стиль через CSS
- Поддерживает указание CSS-файла для кастомного оформления
- Использует wkhtmltopdf для преобразования HTML в PDF


👨‍💻 Пример использования (CLI):
# Один файл
md2pdf input.md output.pdf

# Папка с файлами
md2pdf ./markdown_folder/

# Ваша тема оформления через CSS
md2pdf --css style.css docs/ docs/output/


⚙️ Установка:
git clone https://github.com/soumildatta/MD2PDF
cd MD2PDF
pip install -r requirements.txt
# Установите wkhtmltopdf через пакетный менеджер (apt/brew)


🔎 Основан на репозитории soumildatta/MD2PDF с логикой пакетной обработки Markdown-файлов

#скрипты

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
👍63🔥3
🔥 Полезные библиотеки Python

DuckDB

📌 DuckDB — это встроенная OLAP-база данных, работающая прямо в процессе Python. Она обеспечивает SQL-запросы с высокой производительностью над DataFrame и позволяет выполнять быстрый аналитический SQL прямо в Jupyter или скриптах — не требуя отдельного сервера.

📌 Особенности библиотеки:
🟠 Поддерживает SQL-запросы над Pandas/Parquet/CSV без поднятия сервера;
🟠 Быстрая аналитика встроенного уровня OLAP — хороша для больших данных;
🟠 Минимальные зависимости, лёгкий в установке и запуске;
🟠 Интеграция с Python — можно смешивать SQL и DataFrame API.


⚙️ Установка:
pip install duckdb


🔢 Документация

#библиотеки

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍42
Clipboard Event Listener — скрипт, который реагирует на изменения в буфере обмена, считывает текст, файлы или изображения и выполняет пользовательские действия. Отлично подходит для создания авто‑сохранения скриншотов, логирования скопированного текста или авто‑загрузки новых файлов.

📱 Python 3.8+
💾 Модули: clipboard_monitor, Pillow, argparse

📌 Clipboard Event Listener использует библиотеку clipboard-monitor (с поддержкой текстовых, файловых и графических форматов) и запускает функцию-обработчик при каждом обновлении.

🧑‍💻 Пример использования (CLI):
python clip_listener.py --save-images ./screenshots


👨‍💻 Код скрипта:
import clipboard_monitor
import argparse
from PIL import ImageGrab
from pathlib import Path
import datetime

def on_text(text):
print("✉️ Text copied:", text)

def on_files(files):
print("📁 Files copied:", files)

def on_image():
img = ImageGrab.grabclipboard()
if not img:
return
timestamp = datetime.datetime.now().strftime("%Y%m%d_%H%M%S")
outdir = args.save_images
Path(outdir).mkdir(parents=True, exist_ok=True)
path = Path(outdir) / f"screenshot_{timestamp}.png"
img.save(path)
print("🖼 Saved image to", path)

if __name__ == "__main__":
parser = argparse.ArgumentParser(description="Clipboard Event Listener")
parser.add_argument("--save-images", default=None,
help="Папка для сохранения скриншотов из буфера обмена")
args = parser.parse_args()

# Регистрируем обработчики
clipboard_monitor.on_text(on_text)
clipboard_monitor.on_files(on_files)
if args.save_images:
clipboard_monitor.on_image(on_image)

print("🚀 Listening for clipboard changes...")
clipboard_monitor.wait()


📌 Скрипт:
- Слушает изменения буфера обмена (clipboard_monitor.wait())
- При копировании текста — печатает его, при копировании файлов — выводит список
- При копировании изображения — сохраняет скриншот в указанную папку
- Универсален благодаря поддержке текстов, файлов и изображений


⚙️ Установка зависимости:
pip install clipboard-monitor Pillow


🔗 Использует лёгкую библиотеку clipboard_monitor для обработки буфера обмена

#скрипты

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
11👍4🔥3
🔥 Полезные библиотеки Python

pytsk3

📌 pytsk3 — это Python-обёртка для The Sleuth Kit (TSK) — набора инструментов для цифровой криминалистики и анализа файловых систем.

📌 Особенности библиотеки:
🟠Доступ к образам дисков (raw, EWF, VMDK и т.д.)
🟠Чтение NTFS, FAT, exFAT, EXT, HFS+ и других ФС
🟠Получение информации о файлах, метаданных, удалённых данных
🟠Используется в форензике, OSINT и анализе вредоносных носителей

pip install pytsk3


🔢 Документация

#библиотеки

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥3👍2
Currency Converter CLI — скрипт для быстрого конвертирования валют прямо из терминала с использованием онлайн API.

📱 Python 3.8+
💾 Модули: requests, argparse

📌 Currency Converter CLI:
- Делает GET-запрос к открытым API (например, Fixer или ExchangeRate-API)
- Принимает сумму, исходную и целевую валюту из аргументов командной строки
- Возвращает конвертированную сумму с текущим курсом


🧑‍💻 Пример использования (CLI):
python currency_converter.py --amount 100 --from USD --to EUR
# Вывод:
# 100 USD = 90.13 EUR


👨‍💻 Код скрипта:
import requests
import argparse

API_KEY = "YOUR_API_KEY" # зарегистрируйтесь и получите API-ключ

def convert(amount, frm, to):
url = f"https://v6.exchangerate-api.com/v6/{API_KEY}/latest/{frm}"
resp = requests.get(url)
data = resp.json()
rate = data["conversion_rates"].get(to)
if rate:
print(f"{amount} {frm} = {round(amount * rate, 4)} {to}")
else:
print(f" Валюта {to} не поддерживается.")

if __name__ == "__main__":
p = argparse.ArgumentParser()
p.add_argument("--amount", type=float, required=True)
p.add_argument("--from", dest="frm", required=True)
p.add_argument("--to", required=True)
args = p.parse_args()
convert(args.amount, args.frm.upper(), args.to.upper())


📌 Основан на примерах с ExchangeRate-API и учебниках по API-конвертерам ([turn0search0]).

⚙️ Установка зависимости:
pip install requests


📌 Где пригодится:
- Быстрые финансовые расчёты через CLI
- Подготовка данных для отчетов и ETL-процессов
- Интеграция в скрипты и автоматизацию валютных операций


#скрипты

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
112🔥4👍3
🔥 Полезные библиотеки Python

CapyMOA

📌 CapyMOA — это библиотека для эффективного машинного обучения на потоковых данных в реальном времени. Разработана для непрерывной обработки транзакций, сенсорных данных, логов — где модель должна адаптироваться «на лету» без остановки потока.

📌 Особенности библиотеки:
🟠 Поддержка онлайн-обучения: обновляет модель инкрементально для каждого нового наблюдения — без переобучения с нуля.
🟠 Архитектура гибкая и расширяемая — интеграция с MOA (написание на Java) и PyTorch возможна.
🟠 Оптимизирована для высоких скоростей потоков: подходит для сценариев с большими нагрузками (IoT, финансовые потоки, телеметрия).
🟠 Открытый код и современный подход: активно развивается с начала 2025 года.


⚙️ Установка:
pip install capymoa


🔢 Документация

#библиотеки

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
8🔥3👍2
🔥 Полезные библиотеки Python

capstone

📌 capstone — это дизассемблер-библиотека на C с Python-обёрткой, поддерживающая множество архитектур. Она позволяет разбирать машинный код в человекочитаемые ассемблерные инструкции.

📌 Особенности библиотеки:
🟠Поддержка x86, x86_64, ARM, MIPS, PowerPC, SPARC и др.
🟠Очень быстрый и модульный
🟠Работает на Windows, Linux и macOS
🟠Полезен для реверс-инжиниринга, CTF и анализа малвари


⚙️ Установка:
pip install capstone


🔢 Документация

#библиотеки

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
3🔥3👍2
Website Uptime Monitor — лёгкий CLI-скрипт для мониторинга доступности одного или нескольких сайтов. Проверяет HTTP-коды, измеряет задержку и отправляет уведомление (например, в Telegram) при падении серверов.

📱 Python 3.8+
💾 Модули: requests, time, argparse, datetime, os

📌 Website Uptime Monitor:
Делает запросы на указанные URL через заданный интервал
Логирует скорость ответа и HTTP-статусы
При неоднократных ошибках отправляет уведомление (например, в Telegram)
Подходит для круглосуточного мониторинга API, сайтов и веб-сервисов


🧑‍💻 Пример использования (CLI):
python uptime_monitor.py --urls https://example.com,https://api.example.com \
--interval 60 --retries 3 --notify-telegram


👨‍💻 Код скрипта:
import requests, time, argparse, datetime, os

def alert_telegram(bot_token, chat_id, msg):
url = f"https://api.telegram.org/bot{bot_token}/sendMessage"
requests.post(url, data={"chat_id": chat_id, "text": msg})

def monitor(urls, interval, retries, bot_token=None, chat_id=None):
status = {u: True for u in urls}
while True:
for u in urls:
try:
r = requests.get(u, timeout=10)
ok = r.status_code == 200
resp = f"{r.status_code}, {r.elapsed.total_seconds():.2f}s"
except Exception as e:
ok = False
resp = f"Error: {e}"
now = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
print(f"[{now}] {u} → {resp}")
if not ok and status[u]:
status[u] = False
msg = f"⚠️ {u} is DOWN at {now}"
if bot_token and chat_id:
alert_telegram(bot_token, chat_id, msg)
if ok and not status[u]:
status[u] = True
msg = f" {u} is UP again at {now}"
if bot_token and chat_id:
alert_telegram(bot_token, chat_id, msg)
time.sleep(interval)

if __name__ == "__main__":
p = argparse.ArgumentParser()
p.add_argument("--urls", required=True, help="Comma-separated URLs")
p.add_argument("--interval", type=int, default=60)
p.add_argument("--retries", type=int, default=3)
p.add_argument("--bot-token", default=os.getenv("TELEGRAM_TOKEN"))
p.add_argument("--chat-id", default=os.getenv("TELEGRAM_CHAT_ID"))
args = p.parse_args()
urls = [u.strip() for u in args.urls.split(',')]
monitor(urls, args.interval, args.retries, args.bot_token, args.chat_id)


⚙️ Установка зависимости:
pip install requests


#скрипты

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
11👍4🔥3
🖥 Пример скрипта для резервного копирования базы данных

💬 В этом примере покажу, как с помощью Python автоматизировать процесс резервного копирования базы данных MySQL в ваших DevOps-проектах.

📌 Для создания резервных копий мы будем использовать системную утилиту mysqldump, которую вызовем из Python через модуль subprocess. Такой подход надёжен и широко используется на практике.

import os
import time
import subprocess

def backup_database(host, username, password, database, output_dir):
timestamp = time.strftime('%Y%m%d_%H%M%S')
output_file = os.path.join(output_dir, f'{database}_backup_{timestamp}.sql')

cmd = [
'mysqldump',
f'-h{host}',
f'-u{username}',
f'-p{password}',
database
]

try:
with open(output_file, 'w') as f:
subprocess.run(cmd, stdout=f, check=True)
print(f'Database backup saved to {output_file}')
except subprocess.CalledProcessError as e:
print(f'Error during backup: {e}')

if __name__ == '__main__':
db_host = 'localhost'
db_username = 'your_db_username'
db_password = 'your_db_password'
db_name = 'your_database_name'
backup_output_dir = '/path/to/backup_directory'

backup_database(db_host, db_username, db_password, db_name, backup_output_dir)


☝️ В итоге скрипт создаст файл с дампом базы в указанной папке, добавив к имени текущую дату и время.

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
👍74😁2