Отправка уведомления в Tele с Windows Server 2019
Я писал о том, как отправлять письма себе с Windows Server 2019, но иногда лень берет верх, и можно пропустить важное сообщение. У меня уже есть бот, который информирует о состоянии сервисов и отправляет уведомления в общий чат DevOps. Теперь добавим туда алерт о том, что место на диске заканчивается!
Шаги
1. Создай скрипт PowerShell:
Создайте новый файл с расширением “.ps1” (например “sendCheckDiskAlert.ps1”).
Я для удобства, положу его на рабочий стол C:\Users\Administrator\Desktop
Вставь следующий скрипт, чтобы проверить доступное место на всех дисках и отправить результат на вашу почту:
# Параметры бота
$botToken = "ВАШ_ТОКЕН_ТЕЛЕГРАМ_БОТА"
$chatId = "ИТ_ЧАТА_КУДА_ОТПРАВЛЯТЬ"
# Функция для проверки диска
function Check-DiskSpace {
param (
[string]$driveLetter
)
# Получение информации о диске
$disk = Get-PSDrive $driveLetter
# Проверка заполненности
$usedSpacePercentage = ($disk.Used / ($disk.Used + $disk.Free)) * 100
$freeSpaceGB = [math]::Round($disk.Free / 1GB, 2)
if ($usedSpacePercentage -gt 90) {
# Формирование сообщения
$message = "MSSQL-1C: Диск $driveLetter почти заполнен!`nЗанятость: $([math]::Round($usedSpacePercentage, 2))%.`nСвободное место: $freeSpaceGB ГБ."
# Отправка сообщения в Telegram
$url = "https://api.telegram.org/bot$botToken/sendMessage"
$body = @{
chat_id = $chatId
text = $message
}
Invoke-RestMethod -Uri $url -Method Post -Body $body
}
}
# Проверка дисков C, L и M (у вас могут быть свои)
Check-DiskSpace -driveLetter "C"
Check-DiskSpace -driveLetter "L"
Check-DiskSpace -driveLetter "M"
2. Добавьте задание в планировщике задач:
- Нажмите Win + R, введите “taskschd.msc”.
- В окне Планировщика задач выберите “Создать базовое задание” в правой панели.
- Выберите “Ежедневно” и укажите удобное для вас время.
- Выберите “Запуск программы” и нажмите “Далее”.
- Настройте скрипт PowerShell:
- Введите путь к исполняемому файлу PowerShell (обычно “
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
“). - Добавьте аргумент
-File "C:\Users\Administrator\Desktop\sendCheckDiskAlert.ps1"
- Введите путь к исполняемому файлу PowerShell (обычно “