Мне нужно настроить службу на сервере приложений Oracle для проверки подключения к базе данных, а затем отправить уведомление по электронной почте о состоянии. Кто-нибудь может мне помочь.
Спасибо,
Мне нужно настроить службу на сервере приложений Oracle для проверки подключения к базе данных, а затем отправить уведомление по электронной почте о состоянии. Кто-нибудь может мне помочь.
Спасибо,
Вот один из вариантов:
Несколько замечаний:
tnsping %1 > ping_result.txt
пингует базу данных, переданную в качестве параметра (%1), и сохраняет результат в файле .txtbmail
(вы можете использовать любую другую почтовую программу SMTP из командной строки; или Google для «загрузки bmail» - это бесплатно)Вот вам:
rem PING_DB.BAT
@echo off
setlocal EnableDelayedExpansion
tnsping %1 > ping_result.txt
rem Littlefoot slightly adjusted code: https://stackoverflow.com/questions/27416341/how-can-i-read-the-last-2-lines-of-a-file-in-batch-script
rem Tail command in pure Batch, version 2: Tail.bat filename numOfLines
rem Antonio Perez Ayala
set /A firstTail=1, lastTail=0
for /F "delims=" %%a in (ping_result.txt) do (
set /A lastTail+=1, lines=lastTail-firstTail+1
set "lastLine[!lastTail!]=%%a"
if !lines! gtr 1 (
set "lastLine[!firstTail!]="
set /A firstTail+=1
)
)
for /L %%i in (%firstTail%,1,%lastTail%) do set result=!lastLine[%%i]!
rem end of LF's adjustment
echo %result%
echo off
bmail -s smtp.server.name -f [email protected] -t [email protected] -a "%result%" -c
Параметры bmail:
Command Line SMTP Emailer V1.07
Copyright(C) 2002-2004 [email protected]
Date: Wed, 20 Jun 2018 10:08:15 +0200
Usage: bmail [options]
-s SMTP Server Name
-p SMTP Port Number (optional, defaults to 25)
-t To: Address
-f From: Address
-b Text Body of Message (optional)
-h Generate Headers
-a Subject (optional)
-m Filename (optional) Use file as Body of Message
-c Prefix above file with CR/LF to separate body from header
-d Debug (Show all mail server communications)
Тестирование (я удалил вывод bmail):
M:\>ping_db xe
TNS-12541: TNS:no listener --> this is being sent by e-mail
M:\>ping_db orcl
OK (10 msec) --> this is being sent by e-mail