SlideShare ist ein Scribd-Unternehmen logo
1 von 11
@echo off
REM ======================================================================
REM
REM NAME: ProdQMCheck.cmd
REM
REM AUTHOR: Rob Jones, FHLB of Pittsburgh
REM DATE : 9/30/2011
REM
REM COMMENT: Checks for existence of trigger files to reboot QM PROD environment
REM
REM Updated By:
REM Rob Jones 9/22/2011
REM 12/14/2012
REM
REM Variables Used:
REM Fileloc1 = Are Where Reboot or Cleanup File Will Exist
REM FL1 = Actual Reboot or Cleanup File
REM Fowner1 = Person Who Invoked Action
REM Fdept1 = Department to Be Cleaned Up
REM
REM ======================================================================
REM echo on
REM ----------------------- Initialize Variables ----------------------------
set FileLoc1="BluePER1wShared DataBankwideServer Task RequestsQMProd"
REM set ENDLOOP=%FileLoc1%end.txt
REM +++++++++++++++++++++++++++++ MAIN ++++++++++++++++++++++++++++++++++++++
:MAIN
if exist %FileLoc1%aft.txt goto CopyAFT
if exist %FileLoc1%reboot.txt goto Boot
if exist %fileloc1%clean.txt goto Cleanup
goto NoReq
REM +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
REM
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@
:Boot
if exist c:adminQMrestart.bak del c:adminQMrestart.bak
if exist c:adminQMrestart.log ren c:adminQMrestart.log QMrestart.bak
REM
REM >>>>>>>>>>>>> QM Reboot
REM
REM =========================================================================
REM ======================= Determine Who Is Rebooting ======================
REM =========================================================================
if exist %FileLoc1%reboot.txt set FL1=%FileLoc1%reboot.txt
echo ####### QM PROD REBOOT HAS BEEN TRIGERRED %DATE% %TIME% ####### >> c:adminQMrestart.log
echo. >> c:adminQMrestart.log
echo ...Copying Reboot File to Local Drive to ID Owner>> c:adminQMrestart.log
echo.>> c:adminQMrestart.log
move /y %FL1% C:admin
set FL1=c:adminreboot.txt
REM dir /q %FL1% | c:windowssystem32find /i "reboot.txt" > c:adminfowner1.txt
for /f "tokens=1,2" %%a in (%FL1%) do (call :setvar %%a %%b)
REM =========================================================================
REM ==================== BLAT Start of Reboot to Admins =====================
REM =========================================================================
echo Beginning %fdept1% QM PROD restart process requested by %fowner1% on %DATE% at %TIME% >> c:adminQMrestart.log
REM del c:adminfowner1.txt
tealsys1wpublicblatblat "c:adminQMrestart.log" -to winadmins@company.com -subject "%fdept1% QM PROD is Being Restarted from
%ComputerName%" -f %COMPUTERNAME%@company.net -q -server mailserver
echo Beginning %fdept1% QM PROD restart process requested by %fowner1% on %DATE% at %TIME% >> c:admintracking.log
echo. >> c:adminQMrestart.log
echo * * * * * * * * * * * * * * >> c:adminQMrestart.log
echo. >> c:adminQMrestart.log
REM =========================================================================
REM ============================= Clear Files ===============================
REM =========================================================================
if exist %FL1% del %FL1% >> c:adminQMrestart.log
set FL1=%fileloc1%reboot.txt
if exist %FL1% del %FL1% >> c:adminQMrestart.log
if not exist %FL1% echo %FL1% file deleted successfully >> c:adminQMrestart.log
if exist %FL1% echo %FL1% file NOT deleted successfully - PLEASE ADDRESS! >> c:adminQMrestart.log
REM =========================================================================
REM ===========================** ACTUAL RESTART **==========================
REM =========================================================================
call tealsys1wpublicQMrestart.cmd PROD %fowner1% c:adminQMrestart.log %fdept1%
REM =========================================================================
REM ==================== Restart & Going Back To Sleep ======================
REM =========================================================================
echo. >> c:adminQMrestart.log
echo ... Returning from %fdept1% PROD QMRestart and Going Back Into Wait Cycle>> c:adminQMrestart.log
echo. >> c:adminQMrestart.log
echo * * * * * * * * * * * * * * >> c:adminQMrestart.log
REM if exist c:adminQMrestart.log del c:adminQMrestart.log
echo Ending %fdept1% QM PROD restart process on %DATE% at %TIME% >> c:admintracking.log
goto AllDone
REM
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@
REM %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
:Cleanup
if exist c:adminQMclean.bak del c:adminQMclean.bak
if exist c:adminQMclean.log ren c:adminQMclean.log QMclean.bak
REM
REM >>>>>>>>>>>>> QM Cleanup
REM
REM =========================================================================
REM =================== Determine Who Is Invoking Cleanup ===================
REM =========================================================================
if exist %fileloc1%clean.txt set FL1=%fileloc1%clean.txt
echo ####### QM PROD CLEANUP HAS BEEN TRIGGERED %DATE% %TIME% ####### >> c:adminQMclean.log
echo. >> c:adminQMclean.log
echo ...Copying Cleanup Trigger File to Local Drive to ID Owner>> c:adminQMclean.log
echo.>> c:adminQMclean.log
move /y %FL1% C:admin
set FL1=c:adminclean.txt
for /f "tokens=1,2" %%a in (%FL1%) do (call :setvar %%a %%b)
goto next
:Setvar
set fowner1=%1
set fdept1=%2
goto :eof
:Next
REM =========================================================================
REM ==================== BLAT Start of Clean-up to Admins ===================
REM =========================================================================
echo Beginning %fdept1% QM PROD CLEANUP process requested by %fowner1% on %DATE% at %TIME% >> c:adminQMclean.log
tealsys1wpublicblatblat "c:adminQMclean.log" -to winadmins@company.com -subject "%fdept1% QM PROD Cleanup invoked from
%ComputerName%" -f %COMPUTERNAME%@company.net -q -server mailserver
echo Beginning %fdept1% QM PROD CLEANUP process requested by %fowner1% on %DATE% at %TIME% >> c:admintracking.log
echo. >> c:adminQMclean.log
echo * * * * * * * * * * * * * * >> c:adminQMclean.log
echo. >> c:adminQMclean.log
REM =========================================================================
REM ============================= Clear Files =============================
REM =========================================================================
if exist %FL1% del %FL1% >> c:adminQMclean.log
set FL1=%fileloc1%clean.txt
if exist %FL1% del %FL1% >> c:adminQMclean.log
if not exist %FL1% echo %FL1% file deleted successfully >> c:adminQMclean.log
if exist %FL1% echo %FL1% file NOT deleted successfully - PLEASE ADDRESS! >> c:adminQMclean.log
REM =========================================================================
REM ============================ Actual Cleanup =============================
REM =========================================================================
call tealsys1wpublicQMClean.cmd PROD %fowner1% c:adminQMclean.log %fdept1%
REM =========================================================================
REM ========================= Going Back To Sleep ===========================
REM =========================================================================
echo. >> c:adminQMclean.log
echo ... Returning from %fdept1% PROD QMClean and Going Back Into Wait Cycle>> c:adminQMclean.log
echo. >> c:adminQMclean.log
echo * * * * * * * * * * * * * * >> c:adminQMclean.log
REM if exist c:adminQMclean.log del c:adminQMclean.log
echo Ending %fdept1% QM PROD Cleanup process on %DATE% at %TIME% >> c:admintracking.log
goto AllDone
REM %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
:NoReq
REM
REM >>>>>>>>>>>>>> PASS ON QM Prod Reboot
REM
echo %DATE% %TIME% - No files exist - No Prod Reboot or Cleanup>> c:adminnorequests.log
REM :Sleap
REM SLEEP 300
REM if not exist %ENDLOOP% Goto Main
goto AllDone
:CopyAFT
echo.
echo ================== Copying AFT License File To QM Servers ====================
echo.
call tealsys1wpublicQM-AFT.cmd
:AllDone
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
@echo off
REM ======================================================================
REM
REM CMD File -- Created with SAPIEN Technologies PrimalScript 2009
REM
REM NAME: qmRestart.cmd
REM
REM AUTHOR: Rob Jones , Federal Home Loan Bank of Pittsburgh
REM DATE : 5/5/2011
REM
REM COMMENT: Reboots qm servers
REM Called by file watcher with 3 parameters:
REM 1st is which region to reboot
REM 2nd is owner of watcher file (requestor)
REM 3rd is output log file which will get emailed
REM Updated By:
REM Rob Jones 9/22/2011
REM
REM ======================================================================
REM echo on
if "%1"=="" goto syntax
if "%2"=="" goto syntax
if "%3"=="" goto syntax
REM if exist c:adminsumrestart.bak del c:adminsumrestart.bak
REM if exist %3 ren %3 sumrestart.bak
if "%1" == "PROD" goto ProdBoot
if "%1" == "UAT" goto UATBoot
if "%1" == "UATV" goto UATVBoot
goto syntax
REM ******************
REM PROD server reboot
REM ******************
:ProdBoot
set LOOPCNTR=
echo. >> %3
echo qm Production server reboot started on %DATE% at %TIME% >> %3
echo. >> %3
echo * * * Requested by %2 * * * >> %3
echo. >> %3
servutil1wpublicpstoolspsshutdown -r -t 5 @servutil1wpublicqmprodservers.txt
REM call some magic ping check and determine servers are up
:PRODCHEK
servutil1wpublicsleep 120
set /a LOOPCNTR+=1
Set LOOPRET=
If "%LOOPCNTR%"=="20" Goto PROB
IF not "%servqm1WUP%"=="1" Call servutil1wpublicFindcomp servqm1W
If "%LOOPRET%"=="1" Goto PRODCHEK
IF not "%servqm2WUP%"=="1" Call servutil1wpublicFindcomp servqm2W
If "%LOOPRET%"=="1" Goto PRODCHEK
IF not "%servqm3WUP%"=="1" Call servutil1wpublicFindcomp servqm3W
If "%LOOPRET%"=="1" Goto PRODCHEK
IF not "%servqm4WUP%"=="1" Call servutil1wpublicFindcomp servqm4W
If "%LOOPRET%"=="1" Goto PRODCHEK
IF not "%servqm5WUP%"=="1" Call servutil1wpublicFindcomp servqm5W
If "%LOOPRET%"=="1" Goto PRODCHEK
IF not "%servqm6WUP%"=="1" Call servutil1wpublicFindcomp servqm6W
If "%LOOPRET%"=="1" Goto PRODCHEK
REM goto PRODCHEK until verified back up then exit to PRODUP
REM After 20 Failed verification loops administrators will be notified.
:PRODUP
REM Finish Verification that servers rebooted
servutil1wpublicuptime servqm1w >> %3
servutil1wpublicuptime servqm2w >> %3
servutil1wpublicuptime servqm3w >> %3
servutil1wpublicuptime servqm4w >> %3
servutil1wpublicuptime servqm5w >> %3
servutil1wpublicuptime servqm6w >> %3
echo. >> %3
echo qm Production server reboot completed on %DATE% at %TIME% >> %3
echo. >> %3
servutil1wpublicblatblat "%3" -to winadmins@company.com -subject "qm Production servers restarted" -f %COMPUTERNAME%@company.net -q
-server mailserver
servutil1wpublicblatblat "%3" -to qmfs@company.com -subject "qm Production servers restarted" -f %COMPUTERNAME%@company.net -q -server
mailserver
goto AllDone
REM ******************
REM UAT server reboot
REM ******************
:UATBoot
set LOOPCNTR=
echo. >> %3
echo qm UAT server reboot started on %DATE% at %TIME% >> %3
echo. >> %3
echo * * * Requested by %2 * * * >> %3
echo. >> %3
servutil1wpublicpstoolspsshutdown -r -t 5 @servutil1wpublicqmuatservers.txt
REM call some magic ping check and determine servers are up
:UATCHEK
servutil1wpublicsleep 120
set /a LOOPCNTR+=1
Set LOOPRET=
If "%LOOPCNTR%"=="20" Goto PROB
IF not "%JADEqm1WUP%"=="1" Call servutil1wpublicFindcomp JADEqm1W
If "%LOOPRET%"=="1" Goto UATCHEK
IF not "%JADEqm2WUP%"=="1" Call servutil1wpublicFindcomp JADEqm2W
If "%LOOPRET%"=="1" Goto UATCHEK
IF not "%JADEqm3WUP%"=="1" Call servutil1wpublicFindcomp JADEqm3W
If "%LOOPRET%"=="1" Goto UATCHEK
IF not "%JADEqm4WUP%"=="1" Call servutil1wpublicFindcomp JADEqm4W
If "%LOOPRET%"=="1" Goto UATCHEK
REM goto UATCHEK until verified back up then exit to UATUP
REM After 20 Failed verification loops administrators will be notified.
:UATUP
REM Finish Verification that servers rebooted
servutil1wpublicuptime jadeqm1w >> %3
servutil1wpublicuptime jadeqm2w >> %3
servutil1wpublicuptime jadeqm3w >> %3
servutil1wpublicuptime jadeqm4w >> %3
echo. >> %3
echo qm UAT server reboot completed on %DATE% at %TIME% >> %3
echo. >> %3
servutil1wpublicblatblat "%3" -to winadmins@company.com -subject "qm UAT servers restarted" -f %COMPUTERNAME%@company.net -q -server
mailserver
servutil1wpublicblatblat "%3" -to qmfs@company.com -subject "qm UAT servers restarted" -f %COMPUTERNAME%@company.net -q -server
mailserver
goto AllDone
REM ******************
REM UATV server reboot
REM ******************
:UATVBoot
set LOOPCNTR=
echo. >> %3
echo qm UAT Virtual server reboot started on %DATE% at %TIME% >> %3
echo. >> %3
echo * * * Requested by %2 * * * >> %3
echo. >> %3
servutil1wpublicpstoolspsshutdown /accepteula -r -t 5 @servutil1wpublicqmuatvservers.txt
echo PSShutdown command was issued >> %3
echo. >> %3
echo Ping Check now starting... >> %3
echo. >> %3
REM call some magic ping check and determine servers are up
:UATVCHEK
servutil1wpublicsleep 120
set /a LOOPCNTR+=1
Set LOOPRET=
If "%LOOPCNTR%"=="20" Goto PROB
IF not "%JADEqm1WvUP%"=="1" Call servutil1wpublicFindcomp JADEqm1Wv
If "%LOOPRET%"=="1" Goto UATVCHEK
IF not "%JADEqm2WvUP%"=="1" Call servutil1wpublicFindcomp JADEqm2Wv
If "%LOOPRET%"=="1" Goto UATVCHEK
IF not "%JADEqm3WvUP%"=="1" Call servutil1wpublicFindcomp JADEqm3Wv
If "%LOOPRET%"=="1" Goto UATVCHEK
IF not "%JADEqm4WvUP%"=="1" Call servutil1wpublicFindcomp JADEqm4Wv
If "%LOOPRET%"=="1" Goto UATVCHEK
REM goto UATVCHEK until verified back up then exit to UATVUP
REM After 20 Failed verification loops administrators will be notified.
:UATVUP
REM Finish Verification that servers rebooted
servutil1wpublicuptime jadeqm1wv >> %3
servutil1wpublicuptime jadeqm2wv >> %3
servutil1wpublicuptime jadeqm3wv >> %3
servutil1wpublicuptime jadeqm4wv >> %3
echo. >> %3
echo qm UAT Virtual server reboot completed on %DATE% at %TIME% >> %3
echo. >> %3
servutil1wpublicblatblat "%3" -to winadmins@company.com -subject "qm UAT Virtual servers restarted from %ComputerName%" -f
%COMPUTERNAME%@company.net -q -server mailserver
servutil1wpublicblatblat "%3" -to qmfs@company.com -subject "qm UAT Virtual servers restarted" -f %COMPUTERNAME%@company.net -q -server
mailserver
goto AllDone
:Prob
set LOOPCNTR=
echo. >> %3
echo qm server reboot Failed on %DATE% at %TIME% >> %3
echo. >> %3
servutil1wpublicblatblat "%3" -to winadmins@company.com -subject "qm servers reboot failed" -f %COMPUTERNAME%@company.net -q -server
mailserver
servutil1wpublicblatblat "%3" -to qmfs@company.com -subject "qm servers reboot failed" -f %COMPUTERNAME%@company.net -q -server
mailserver
goto AllDone
:syntax
echo. >> %3
echo No parameters supplied >> %3
echo. >> %3
goto AllDone
:AllDone

Weitere ähnliche Inhalte

Andere mochten auch

Material de conteo para niños sordos
Material de conteo para niños sordosMaterial de conteo para niños sordos
Material de conteo para niños sordosPily Aco-ll
 
Aluminium katonai doboz - Katonai box NA 740 hu
Aluminium katonai doboz - Katonai box NA 740 huAluminium katonai doboz - Katonai box NA 740 hu
Aluminium katonai doboz - Katonai box NA 740 huAlu-Logic
 
Archiváló doboz - Office box BB 345 hu
Archiváló doboz - Office box BB 345 huArchiváló doboz - Office box BB 345 hu
Archiváló doboz - Office box BB 345 huAlu-Logic
 
Estrategia el rincón de la matemática
Estrategia el rincón de la matemáticaEstrategia el rincón de la matemática
Estrategia el rincón de la matemáticaPily Aco-ll
 
Material de conteo para niños sordos 1
Material de conteo para niños sordos 1Material de conteo para niños sordos 1
Material de conteo para niños sordos 1Pily Aco-ll
 
Material de conteo para niños sordos
Material de conteo para niños sordosMaterial de conteo para niños sordos
Material de conteo para niños sordosPily Aco-ll
 
SOP - 2013 Server Build
SOP - 2013 Server BuildSOP - 2013 Server Build
SOP - 2013 Server BuildRobert Jones
 
Auto NAS Data Move.cmd
Auto NAS Data Move.cmdAuto NAS Data Move.cmd
Auto NAS Data Move.cmdRobert Jones
 
Infrastructure Strategy
Infrastructure StrategyInfrastructure Strategy
Infrastructure StrategyRobert Jones
 

Andere mochten auch (9)

Material de conteo para niños sordos
Material de conteo para niños sordosMaterial de conteo para niños sordos
Material de conteo para niños sordos
 
Aluminium katonai doboz - Katonai box NA 740 hu
Aluminium katonai doboz - Katonai box NA 740 huAluminium katonai doboz - Katonai box NA 740 hu
Aluminium katonai doboz - Katonai box NA 740 hu
 
Archiváló doboz - Office box BB 345 hu
Archiváló doboz - Office box BB 345 huArchiváló doboz - Office box BB 345 hu
Archiváló doboz - Office box BB 345 hu
 
Estrategia el rincón de la matemática
Estrategia el rincón de la matemáticaEstrategia el rincón de la matemática
Estrategia el rincón de la matemática
 
Material de conteo para niños sordos 1
Material de conteo para niños sordos 1Material de conteo para niños sordos 1
Material de conteo para niños sordos 1
 
Material de conteo para niños sordos
Material de conteo para niños sordosMaterial de conteo para niños sordos
Material de conteo para niños sordos
 
SOP - 2013 Server Build
SOP - 2013 Server BuildSOP - 2013 Server Build
SOP - 2013 Server Build
 
Auto NAS Data Move.cmd
Auto NAS Data Move.cmdAuto NAS Data Move.cmd
Auto NAS Data Move.cmd
 
Infrastructure Strategy
Infrastructure StrategyInfrastructure Strategy
Infrastructure Strategy
 

Ähnlich wie ProdQMScripts.cmd

Buildout: How to maintain big app stacks without losing your mind
Buildout: How to maintain big app stacks without losing your mindBuildout: How to maintain big app stacks without losing your mind
Buildout: How to maintain big app stacks without losing your mindDylan Jay
 
Php Env Var
Php Env VarPhp Env Var
Php Env Vararvind34
 
How to install squid proxy on server or how to install squid proxy on centos o
How to install squid proxy on server  or how to install squid proxy on centos oHow to install squid proxy on server  or how to install squid proxy on centos o
How to install squid proxy on server or how to install squid proxy on centos oProxiesforrent
 
Subversion Retake
Subversion RetakeSubversion Retake
Subversion Retakemanat
 
Debugging: Rules And Tools - PHPTek 11 Version
Debugging: Rules And Tools - PHPTek 11 VersionDebugging: Rules And Tools - PHPTek 11 Version
Debugging: Rules And Tools - PHPTek 11 VersionIan Barber
 
Presentation Linux Server setup Advance Networking
Presentation   Linux Server setup Advance NetworkingPresentation   Linux Server setup Advance Networking
Presentation Linux Server setup Advance NetworkingTariqul Islam Shohag
 
Enterprise managerclodcontrolinstallconfiguration emc12c
Enterprise managerclodcontrolinstallconfiguration emc12cEnterprise managerclodcontrolinstallconfiguration emc12c
Enterprise managerclodcontrolinstallconfiguration emc12cRakesh Gujjarlapudi
 
The Enterprise Wor/d/thy/Press
The Enterprise Wor/d/thy/PressThe Enterprise Wor/d/thy/Press
The Enterprise Wor/d/thy/PressJeroen van Dijk
 
Debugging: Rules & Tools
Debugging: Rules & ToolsDebugging: Rules & Tools
Debugging: Rules & ToolsIan Barber
 
Ansible, Simplicity, and the Zen of Python
Ansible, Simplicity, and the Zen of PythonAnsible, Simplicity, and the Zen of Python
Ansible, Simplicity, and the Zen of Pythontoddmowen
 

Ähnlich wie ProdQMScripts.cmd (20)

Go Replicator
Go ReplicatorGo Replicator
Go Replicator
 
Buildout: How to maintain big app stacks without losing your mind
Buildout: How to maintain big app stacks without losing your mindBuildout: How to maintain big app stacks without losing your mind
Buildout: How to maintain big app stacks without losing your mind
 
Php Env Var
Php Env VarPhp Env Var
Php Env Var
 
How to install squid proxy on server or how to install squid proxy on centos o
How to install squid proxy on server  or how to install squid proxy on centos oHow to install squid proxy on server  or how to install squid proxy on centos o
How to install squid proxy on server or how to install squid proxy on centos o
 
emc work12.pptx
emc work12.pptxemc work12.pptx
emc work12.pptx
 
God Presentation
God PresentationGod Presentation
God Presentation
 
Subversion Retake
Subversion RetakeSubversion Retake
Subversion Retake
 
Debugging: Rules And Tools - PHPTek 11 Version
Debugging: Rules And Tools - PHPTek 11 VersionDebugging: Rules And Tools - PHPTek 11 Version
Debugging: Rules And Tools - PHPTek 11 Version
 
Command
CommandCommand
Command
 
Puppet Camp 2012
Puppet Camp 2012Puppet Camp 2012
Puppet Camp 2012
 
Presentation Linux Server setup Advance Networking
Presentation   Linux Server setup Advance NetworkingPresentation   Linux Server setup Advance Networking
Presentation Linux Server setup Advance Networking
 
Enterprise managerclodcontrolinstallconfiguration emc12c
Enterprise managerclodcontrolinstallconfiguration emc12cEnterprise managerclodcontrolinstallconfiguration emc12c
Enterprise managerclodcontrolinstallconfiguration emc12c
 
PrinterSpoolerFix
PrinterSpoolerFixPrinterSpoolerFix
PrinterSpoolerFix
 
The Enterprise Wor/d/thy/Press
The Enterprise Wor/d/thy/PressThe Enterprise Wor/d/thy/Press
The Enterprise Wor/d/thy/Press
 
Debugging: Rules & Tools
Debugging: Rules & ToolsDebugging: Rules & Tools
Debugging: Rules & Tools
 
Vietnam.rb rom talk
Vietnam.rb rom talkVietnam.rb rom talk
Vietnam.rb rom talk
 
Ansible, Simplicity, and the Zen of Python
Ansible, Simplicity, and the Zen of PythonAnsible, Simplicity, and the Zen of Python
Ansible, Simplicity, and the Zen of Python
 
Crack.ba
Crack.baCrack.ba
Crack.ba
 
Readme
ReadmeReadme
Readme
 
Perlbal Tutorial
Perlbal TutorialPerlbal Tutorial
Perlbal Tutorial
 

ProdQMScripts.cmd

  • 1. @echo off REM ====================================================================== REM REM NAME: ProdQMCheck.cmd REM REM AUTHOR: Rob Jones, FHLB of Pittsburgh REM DATE : 9/30/2011 REM REM COMMENT: Checks for existence of trigger files to reboot QM PROD environment REM REM Updated By: REM Rob Jones 9/22/2011 REM 12/14/2012 REM REM Variables Used: REM Fileloc1 = Are Where Reboot or Cleanup File Will Exist REM FL1 = Actual Reboot or Cleanup File REM Fowner1 = Person Who Invoked Action REM Fdept1 = Department to Be Cleaned Up REM REM ====================================================================== REM echo on REM ----------------------- Initialize Variables ---------------------------- set FileLoc1="BluePER1wShared DataBankwideServer Task RequestsQMProd" REM set ENDLOOP=%FileLoc1%end.txt REM +++++++++++++++++++++++++++++ MAIN ++++++++++++++++++++++++++++++++++++++ :MAIN if exist %FileLoc1%aft.txt goto CopyAFT if exist %FileLoc1%reboot.txt goto Boot if exist %fileloc1%clean.txt goto Cleanup goto NoReq REM +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  • 2. REM @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@ :Boot if exist c:adminQMrestart.bak del c:adminQMrestart.bak if exist c:adminQMrestart.log ren c:adminQMrestart.log QMrestart.bak REM REM >>>>>>>>>>>>> QM Reboot REM REM ========================================================================= REM ======================= Determine Who Is Rebooting ====================== REM ========================================================================= if exist %FileLoc1%reboot.txt set FL1=%FileLoc1%reboot.txt echo ####### QM PROD REBOOT HAS BEEN TRIGERRED %DATE% %TIME% ####### >> c:adminQMrestart.log echo. >> c:adminQMrestart.log echo ...Copying Reboot File to Local Drive to ID Owner>> c:adminQMrestart.log echo.>> c:adminQMrestart.log move /y %FL1% C:admin set FL1=c:adminreboot.txt REM dir /q %FL1% | c:windowssystem32find /i "reboot.txt" > c:adminfowner1.txt for /f "tokens=1,2" %%a in (%FL1%) do (call :setvar %%a %%b) REM ========================================================================= REM ==================== BLAT Start of Reboot to Admins ===================== REM ========================================================================= echo Beginning %fdept1% QM PROD restart process requested by %fowner1% on %DATE% at %TIME% >> c:adminQMrestart.log REM del c:adminfowner1.txt tealsys1wpublicblatblat "c:adminQMrestart.log" -to winadmins@company.com -subject "%fdept1% QM PROD is Being Restarted from %ComputerName%" -f %COMPUTERNAME%@company.net -q -server mailserver echo Beginning %fdept1% QM PROD restart process requested by %fowner1% on %DATE% at %TIME% >> c:admintracking.log echo. >> c:adminQMrestart.log echo * * * * * * * * * * * * * * >> c:adminQMrestart.log echo. >> c:adminQMrestart.log REM ========================================================================= REM ============================= Clear Files =============================== REM ========================================================================= if exist %FL1% del %FL1% >> c:adminQMrestart.log set FL1=%fileloc1%reboot.txt
  • 3. if exist %FL1% del %FL1% >> c:adminQMrestart.log if not exist %FL1% echo %FL1% file deleted successfully >> c:adminQMrestart.log if exist %FL1% echo %FL1% file NOT deleted successfully - PLEASE ADDRESS! >> c:adminQMrestart.log REM ========================================================================= REM ===========================** ACTUAL RESTART **========================== REM ========================================================================= call tealsys1wpublicQMrestart.cmd PROD %fowner1% c:adminQMrestart.log %fdept1% REM ========================================================================= REM ==================== Restart & Going Back To Sleep ====================== REM ========================================================================= echo. >> c:adminQMrestart.log echo ... Returning from %fdept1% PROD QMRestart and Going Back Into Wait Cycle>> c:adminQMrestart.log echo. >> c:adminQMrestart.log echo * * * * * * * * * * * * * * >> c:adminQMrestart.log REM if exist c:adminQMrestart.log del c:adminQMrestart.log echo Ending %fdept1% QM PROD restart process on %DATE% at %TIME% >> c:admintracking.log goto AllDone REM @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@ REM %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% :Cleanup if exist c:adminQMclean.bak del c:adminQMclean.bak if exist c:adminQMclean.log ren c:adminQMclean.log QMclean.bak REM REM >>>>>>>>>>>>> QM Cleanup REM REM ========================================================================= REM =================== Determine Who Is Invoking Cleanup =================== REM ========================================================================= if exist %fileloc1%clean.txt set FL1=%fileloc1%clean.txt echo ####### QM PROD CLEANUP HAS BEEN TRIGGERED %DATE% %TIME% ####### >> c:adminQMclean.log echo. >> c:adminQMclean.log echo ...Copying Cleanup Trigger File to Local Drive to ID Owner>> c:adminQMclean.log echo.>> c:adminQMclean.log
  • 4. move /y %FL1% C:admin set FL1=c:adminclean.txt for /f "tokens=1,2" %%a in (%FL1%) do (call :setvar %%a %%b) goto next :Setvar set fowner1=%1 set fdept1=%2 goto :eof :Next REM ========================================================================= REM ==================== BLAT Start of Clean-up to Admins =================== REM ========================================================================= echo Beginning %fdept1% QM PROD CLEANUP process requested by %fowner1% on %DATE% at %TIME% >> c:adminQMclean.log tealsys1wpublicblatblat "c:adminQMclean.log" -to winadmins@company.com -subject "%fdept1% QM PROD Cleanup invoked from %ComputerName%" -f %COMPUTERNAME%@company.net -q -server mailserver echo Beginning %fdept1% QM PROD CLEANUP process requested by %fowner1% on %DATE% at %TIME% >> c:admintracking.log echo. >> c:adminQMclean.log echo * * * * * * * * * * * * * * >> c:adminQMclean.log echo. >> c:adminQMclean.log REM ========================================================================= REM ============================= Clear Files ============================= REM ========================================================================= if exist %FL1% del %FL1% >> c:adminQMclean.log set FL1=%fileloc1%clean.txt if exist %FL1% del %FL1% >> c:adminQMclean.log if not exist %FL1% echo %FL1% file deleted successfully >> c:adminQMclean.log if exist %FL1% echo %FL1% file NOT deleted successfully - PLEASE ADDRESS! >> c:adminQMclean.log REM ========================================================================= REM ============================ Actual Cleanup ============================= REM ========================================================================= call tealsys1wpublicQMClean.cmd PROD %fowner1% c:adminQMclean.log %fdept1% REM ========================================================================= REM ========================= Going Back To Sleep =========================== REM =========================================================================
  • 5. echo. >> c:adminQMclean.log echo ... Returning from %fdept1% PROD QMClean and Going Back Into Wait Cycle>> c:adminQMclean.log echo. >> c:adminQMclean.log echo * * * * * * * * * * * * * * >> c:adminQMclean.log REM if exist c:adminQMclean.log del c:adminQMclean.log echo Ending %fdept1% QM PROD Cleanup process on %DATE% at %TIME% >> c:admintracking.log goto AllDone REM %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% :NoReq REM REM >>>>>>>>>>>>>> PASS ON QM Prod Reboot REM echo %DATE% %TIME% - No files exist - No Prod Reboot or Cleanup>> c:adminnorequests.log REM :Sleap REM SLEEP 300 REM if not exist %ENDLOOP% Goto Main goto AllDone :CopyAFT echo. echo ================== Copying AFT License File To QM Servers ==================== echo. call tealsys1wpublicQM-AFT.cmd :AllDone +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ @echo off REM ====================================================================== REM REM CMD File -- Created with SAPIEN Technologies PrimalScript 2009 REM
  • 6. REM NAME: qmRestart.cmd REM REM AUTHOR: Rob Jones , Federal Home Loan Bank of Pittsburgh REM DATE : 5/5/2011 REM REM COMMENT: Reboots qm servers REM Called by file watcher with 3 parameters: REM 1st is which region to reboot REM 2nd is owner of watcher file (requestor) REM 3rd is output log file which will get emailed REM Updated By: REM Rob Jones 9/22/2011 REM REM ====================================================================== REM echo on if "%1"=="" goto syntax if "%2"=="" goto syntax if "%3"=="" goto syntax REM if exist c:adminsumrestart.bak del c:adminsumrestart.bak REM if exist %3 ren %3 sumrestart.bak if "%1" == "PROD" goto ProdBoot if "%1" == "UAT" goto UATBoot if "%1" == "UATV" goto UATVBoot goto syntax REM ****************** REM PROD server reboot REM ****************** :ProdBoot set LOOPCNTR= echo. >> %3 echo qm Production server reboot started on %DATE% at %TIME% >> %3 echo. >> %3
  • 7. echo * * * Requested by %2 * * * >> %3 echo. >> %3 servutil1wpublicpstoolspsshutdown -r -t 5 @servutil1wpublicqmprodservers.txt REM call some magic ping check and determine servers are up :PRODCHEK servutil1wpublicsleep 120 set /a LOOPCNTR+=1 Set LOOPRET= If "%LOOPCNTR%"=="20" Goto PROB IF not "%servqm1WUP%"=="1" Call servutil1wpublicFindcomp servqm1W If "%LOOPRET%"=="1" Goto PRODCHEK IF not "%servqm2WUP%"=="1" Call servutil1wpublicFindcomp servqm2W If "%LOOPRET%"=="1" Goto PRODCHEK IF not "%servqm3WUP%"=="1" Call servutil1wpublicFindcomp servqm3W If "%LOOPRET%"=="1" Goto PRODCHEK IF not "%servqm4WUP%"=="1" Call servutil1wpublicFindcomp servqm4W If "%LOOPRET%"=="1" Goto PRODCHEK IF not "%servqm5WUP%"=="1" Call servutil1wpublicFindcomp servqm5W If "%LOOPRET%"=="1" Goto PRODCHEK IF not "%servqm6WUP%"=="1" Call servutil1wpublicFindcomp servqm6W If "%LOOPRET%"=="1" Goto PRODCHEK REM goto PRODCHEK until verified back up then exit to PRODUP REM After 20 Failed verification loops administrators will be notified. :PRODUP REM Finish Verification that servers rebooted servutil1wpublicuptime servqm1w >> %3 servutil1wpublicuptime servqm2w >> %3 servutil1wpublicuptime servqm3w >> %3 servutil1wpublicuptime servqm4w >> %3 servutil1wpublicuptime servqm5w >> %3 servutil1wpublicuptime servqm6w >> %3 echo. >> %3
  • 8. echo qm Production server reboot completed on %DATE% at %TIME% >> %3 echo. >> %3 servutil1wpublicblatblat "%3" -to winadmins@company.com -subject "qm Production servers restarted" -f %COMPUTERNAME%@company.net -q -server mailserver servutil1wpublicblatblat "%3" -to qmfs@company.com -subject "qm Production servers restarted" -f %COMPUTERNAME%@company.net -q -server mailserver goto AllDone REM ****************** REM UAT server reboot REM ****************** :UATBoot set LOOPCNTR= echo. >> %3 echo qm UAT server reboot started on %DATE% at %TIME% >> %3 echo. >> %3 echo * * * Requested by %2 * * * >> %3 echo. >> %3 servutil1wpublicpstoolspsshutdown -r -t 5 @servutil1wpublicqmuatservers.txt REM call some magic ping check and determine servers are up :UATCHEK servutil1wpublicsleep 120 set /a LOOPCNTR+=1 Set LOOPRET= If "%LOOPCNTR%"=="20" Goto PROB IF not "%JADEqm1WUP%"=="1" Call servutil1wpublicFindcomp JADEqm1W If "%LOOPRET%"=="1" Goto UATCHEK IF not "%JADEqm2WUP%"=="1" Call servutil1wpublicFindcomp JADEqm2W If "%LOOPRET%"=="1" Goto UATCHEK IF not "%JADEqm3WUP%"=="1" Call servutil1wpublicFindcomp JADEqm3W If "%LOOPRET%"=="1" Goto UATCHEK IF not "%JADEqm4WUP%"=="1" Call servutil1wpublicFindcomp JADEqm4W
  • 9. If "%LOOPRET%"=="1" Goto UATCHEK REM goto UATCHEK until verified back up then exit to UATUP REM After 20 Failed verification loops administrators will be notified. :UATUP REM Finish Verification that servers rebooted servutil1wpublicuptime jadeqm1w >> %3 servutil1wpublicuptime jadeqm2w >> %3 servutil1wpublicuptime jadeqm3w >> %3 servutil1wpublicuptime jadeqm4w >> %3 echo. >> %3 echo qm UAT server reboot completed on %DATE% at %TIME% >> %3 echo. >> %3 servutil1wpublicblatblat "%3" -to winadmins@company.com -subject "qm UAT servers restarted" -f %COMPUTERNAME%@company.net -q -server mailserver servutil1wpublicblatblat "%3" -to qmfs@company.com -subject "qm UAT servers restarted" -f %COMPUTERNAME%@company.net -q -server mailserver goto AllDone REM ****************** REM UATV server reboot REM ****************** :UATVBoot set LOOPCNTR= echo. >> %3 echo qm UAT Virtual server reboot started on %DATE% at %TIME% >> %3 echo. >> %3 echo * * * Requested by %2 * * * >> %3 echo. >> %3 servutil1wpublicpstoolspsshutdown /accepteula -r -t 5 @servutil1wpublicqmuatvservers.txt echo PSShutdown command was issued >> %3 echo. >> %3
  • 10. echo Ping Check now starting... >> %3 echo. >> %3 REM call some magic ping check and determine servers are up :UATVCHEK servutil1wpublicsleep 120 set /a LOOPCNTR+=1 Set LOOPRET= If "%LOOPCNTR%"=="20" Goto PROB IF not "%JADEqm1WvUP%"=="1" Call servutil1wpublicFindcomp JADEqm1Wv If "%LOOPRET%"=="1" Goto UATVCHEK IF not "%JADEqm2WvUP%"=="1" Call servutil1wpublicFindcomp JADEqm2Wv If "%LOOPRET%"=="1" Goto UATVCHEK IF not "%JADEqm3WvUP%"=="1" Call servutil1wpublicFindcomp JADEqm3Wv If "%LOOPRET%"=="1" Goto UATVCHEK IF not "%JADEqm4WvUP%"=="1" Call servutil1wpublicFindcomp JADEqm4Wv If "%LOOPRET%"=="1" Goto UATVCHEK REM goto UATVCHEK until verified back up then exit to UATVUP REM After 20 Failed verification loops administrators will be notified. :UATVUP REM Finish Verification that servers rebooted servutil1wpublicuptime jadeqm1wv >> %3 servutil1wpublicuptime jadeqm2wv >> %3 servutil1wpublicuptime jadeqm3wv >> %3 servutil1wpublicuptime jadeqm4wv >> %3 echo. >> %3 echo qm UAT Virtual server reboot completed on %DATE% at %TIME% >> %3 echo. >> %3 servutil1wpublicblatblat "%3" -to winadmins@company.com -subject "qm UAT Virtual servers restarted from %ComputerName%" -f %COMPUTERNAME%@company.net -q -server mailserver servutil1wpublicblatblat "%3" -to qmfs@company.com -subject "qm UAT Virtual servers restarted" -f %COMPUTERNAME%@company.net -q -server mailserver goto AllDone
  • 11. :Prob set LOOPCNTR= echo. >> %3 echo qm server reboot Failed on %DATE% at %TIME% >> %3 echo. >> %3 servutil1wpublicblatblat "%3" -to winadmins@company.com -subject "qm servers reboot failed" -f %COMPUTERNAME%@company.net -q -server mailserver servutil1wpublicblatblat "%3" -to qmfs@company.com -subject "qm servers reboot failed" -f %COMPUTERNAME%@company.net -q -server mailserver goto AllDone :syntax echo. >> %3 echo No parameters supplied >> %3 echo. >> %3 goto AllDone :AllDone