Стоит задача контролировать количесво свободного места на диске в операционной системе Windows и сообщать ответственным людям по электронной почте о необходимости обслуживания системы. Я Не рассматриваю варианты подключения к мониторинговым системам типа Zenos или Nagios.
Сервер должен сам сообщить мне о том, что свободное место на его дисках закончилось или достигло опредеоенного лимита. Эта проблема также известна каr Low Disk Space - "Мало места на диске" и может привести к отказе системы или остановке сервисов.
Встоенный Windows сервис "Task Scheduler" будет следить за сообщениями системы об оставшемся свободном месте на дисках и инициировать оправку E-mail указанным в списке адресатам. Для отправки почты будем использовать Open source утилиту SendEmail.exe (во вложении внизу страницы). В этом случае мы не касаемся никаких внешних элементов инфраструктуры. Единственное условие - хост (компьютер) который будет мониторится должен получить доступ к почтовому серверу для отправки Email.
Следуйте следующим шагам. Проверено на Windows Server 2008 R2. Скорее всего должно быть валидно для Window 7 и Windows 2012 R2. Картинки с English версии Windows Server 2008 R2.
1. Добавляем два ключа в реестр. Для этого выполняем regedit. Идем в ветку
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\LanmanServer\Parameters
и добавляем новые ключи REG_DEORD (32-bit) LowDiskSpaceMinimum и DiskSpaceThreshold с Base Decimal значениями 2048 и 25 соотвественно.
LowDiskSpaceMinimum = 2048
DiskSpaceThreshold = 25
В этом случае если свободное место на любом диске системы будет меньше 2048 Мб И это место (2048 Мб) будет составлять меньшн 25% от общего размера этого логического диска система зафиксирует EventID 2013 и инициирует отправку E-mail сообщения.
2. Скачиваем программу SendEmail.exe внизу страницы или ищем ее на просторах Всемирной Паутины. Разархивируем SendEmail.zip в корень диска в папку c:\sendEmail. Выполняемый файл будет иметь путь c:\sendEmail\sendEmail.exe
3. Запускаем Менеджер компьютера - Task Scheduler. Добавляем новое правило - Action - Create Basic Task...
4. Назавем событие "Low Disk Space Alert". Кнопка "Далее".
5. В поле "Log" выбираем из выпадающего списка "System". В поле "Source" выбираем из выпадающего списка "Srv". В поле "Event ID" вписываем "2013". Кнопка "Далее".
6. Выберите "Start a program". Кнопка "Далее".
7. В поле "Program/Script" вписываем путь к sendEmail.exe "c:\sendEmail\sendEmail.exe".
8. В поле "Add arguments (optional)" пием следующее:
-s smtp.gmail.com:587 -xu This email address is being protected from spambots. You need JavaScript enabled to view it. -xp nic-name-password -o tls=yes -f This email address is being protected from spambots. You need JavaScript enabled to view it. -t This email address is being protected from spambots. You need JavaScript enabled to view it. This email address is being protected from spambots. You need JavaScript enabled to view it. This email address is being protected from spambots. You need JavaScript enabled to view it. -u Disk Space Alert name_of_server -m Warning! Server name_of_server is experiencing a low disk space alert. This means that 2GB or less of disk space remains on the server. Please free up some space. This alert is generated via Task Scheduler application on name_of_server.
где:
This email address is being protected from spambots. You need JavaScript enabled to view it. - email отправителя
nic-name-password - пароль на email отправителя
This email address is being protected from spambots. You need JavaScript enabled to view it. This email address is being protected from spambots. You need JavaScript enabled to view it. This email address is being protected from spambots. You need JavaScript enabled to view it. - список получателей
Кнопка "Далее". Закрываем Окно настройки.
9. В списке Активных задачь нажимеем кнопку Task Scheduler. Найдите задачу "Low Disk Space Alert". Правой нопкой на ней - выбирите "Свойства"
10. Нажмите радио-кнопку ""Run whether user is logged on or not". Оставте все другие чек-боксы пустыми. Нажмите"ОК".
11. Введите пароль администратора системы.
12. Сделано. Можете потестировать уменьшив место на диске до указанных выше параметров.
Дополнительная информация о программе sendEmail не сайте разработчика.