Linux
w_err=0
w_err=$(($w_err+$?))
exit $w_err
Windows
set /a w_err=0
set /a w_err=%w_err%+%errorlevel%
exit /B %w_err%
Robocopy
set /a w_err=8
set /a w_err=%w_err%+%errorlevel%
traitement
set /a w_err=%w_err%-8
exit /B %w_err%
Un site utilisant WordPress
w_err=0
w_err=$(($w_err+$?))
exit $w_err
set /a w_err=0
set /a w_err=%w_err%+%errorlevel%
exit /B %w_err%
set /a w_err=8
set /a w_err=%w_err%+%errorlevel%
traitement
set /a w_err=%w_err%-8
exit /B %w_err%
echo date_av : %date%
rem Permet de changer le format de date pour le current user
reg add « HKCU\Control Panel\International » /v sShortDate /d « dd-MM-yyyy » /f
echo date_ap : %date%
for /F « tokens=1-4 delims=- » %%a in (‘echo %date:~0,10%’) do set w_date=%%c%%b%%a
echo w_date : %w_date%
set horo=%w_date%_%w_time%
rem Horodatage d’un fichier log
set f_log=%d_log%\%horo%_%TOM_JOB%.log
On peut aussi changer temporairement le format de date.
rem save the existing format definition
for /f "skip=2 tokens=3" %%a in ('reg query "HKCU\Control Panel\International" /v sShortDate') do set FORMAT=%%a
rem set ISO specific format definition
reg add "HKCU\Control Panel\International" /v sShortDate /t REG_SZ /f /d yyyy-MM-dd 1>nul:
rem query the date in the ISO specific format
set ISODATE=%DATE%
rem restore previous format definition
reg add "HKCU\Control Panel\International" /v sShortDate /t REG_SZ /f /d %FORMAT% 1>nul:
for /f « tokens=3-6 » %a in (‘systeminfo ^| findstr /B /C: »Total Physical Memory »‘) do @echo %b
set source=%1
set cible=%2
set mode=%3
set d_log=%4
echo %source%
echo %cible%
echo %mode%
for /F « tokens=1-4 delims=/ » %%a in (‘echo %date:~4,10%’) do set w_date=%%c%%a%%b
for /F « tokens=1-4 delims=: » %%a in (‘echo %time:~0,8%’) do set w_time=%%a%%b%%c
set horo=%w_date%_%w_time%
set f_log=%d_log%\%w_date%_%w_time%_%TOM_JOB%.log
echo robocopy %source% %cible% /%mode% /w:10 /r:2 /LOG+:%f_log%
robocopy %source% %cible% /%mode% /w:10 /r:2 /LOG+:%f_log%
set err=%errorlevel%
type %f_log%
exit /B %err%
REM ********************* STOP PROCESS app servers ****************** REM
echo ---- Reboot server %1% ---
echo shutdown /r /m \\%1% : /t 30 /c "BatchStop" /f /d p:4:1
shutdown /r /m \\%1% : /t 30 /c "BatchStop" /f /d p:4:1
TIMEOUT /T 300 /NOBREAK >nul
rem ----------------------------------------------------------- rem ce script utilise FORFILES pour Windows rem ----------------------------------------------------------- echo Directorie de logs : %1 echo Purge des fichiers log suppérieur à %2 jours echo Fichiers : %3
set w_dir=%1 set w_nb_jour=%2 set w_fic=%3
forfiles /P %w_dir% /S /D -%w_nb_jour% /M %w_fic% /C "cmd /c dir @file" if %errorlevel% == 1 goto FIN
:SUITE forfiles /P %w_dir% /S /D -%w_nb_jour% /M %w_fic% /C "cmd /c del /F /Q @file" goto :END
:FIN echo Pas de fichier à supprimer
:END set errorlevel=0
@echo off SETLOCAL enableExtensions enableDelayedExpansion
echo change logon /enable sur le serveur : %1 set serv=%1
set PATH=%PATH%;c:\Program Files\pstools
for /f "tokens=* delims=" %%i in (\\PFILE\Batch_win\Citrix_List_services.txt) do ( echo sc \\!serv! query "%%i" | find "RUNNING" sc \\!serv! query "%%i" | find "RUNNING" if !errorlevel! equ 0 sc \\!serv! stop "%%i" )
psexec \\%serv% cmd /c change logon /enable 2>&1 set %errorlevel%=0
echo ---- Reboot server %serv% ---
for /f "tokens=3 delims= " %%b in ('QUSER /SERVER:%serv%') do if "%%b" neq "ID" LOGOFF %%b /SERVER:%serv%
rem QUSER /SERVER:%serv% 2>&1 set %errorlevel%=0
echo shutdown /r /m \\%serv% : /t 30 /c "BatchStop" /f /d p:4:1 shutdown /r /m \\%1% : /t 30 /c "BatchStop" /f /d p:4:1 2>&1
echo process : %1
set proc=%1
tasklist /FI "imagename eq %proc%.exe" /V /FO CSV /NH 2> nul | find /I /N "%proc%" 2> nul if %errorlevel%==0 ( tasklist /FI "imagename eq %proc%.exe" /V /FO CSV /NH TASKKILL /F /IM %proc%.exe /T )
echo Fin de script set errorlevel=0
cls @echo off SETLOCAL ENABLEDELAYEDEXPANSION
set d_rep=%1 set w_fic=%2
for /F "tokens=1-4 delims=/" %%a in ('echo %date:~4,10%') do set w_date=%%c%%a%%b for /F "tokens=1-4 delims=:" %%a in ('echo %time:~0,8%') do set w_time=%%a%%b%%c
dir %d_rep%%w_fic%
if EXIST %d_rep%%w_fic%. ( for /r "%d_rep%" %%i in (%w_fic%) do ( echo. set wf_name=%%~ni set we_name=%%~xi rem set f_out=!wf_name!_%w_date%_%w_time%!we_name! set f_out=%w_fic%.%w_date%_%w_time% ren %d_rep%%w_fic% !f_out! ) )
dir %d_rep%!f_out!
g: cd /backup/pdtb4 dir
del /f /q *.tar
dir
echo open pdtb4.ft.grp>C:\temp\ftp_pdtb4.ini echo ora112>>C:\temp\ftp_pdtb4.ini echo motdepasse>>C:\temp\ftp_pdtb4.ini echo bin>>C:\temp\ftp_pdtb4.ini echo cd /exploit/dumps/archive>>C:\temp\ftp_pdtb4.ini echo mget *.tar>>C:\temp\ftp_pdtb4.ini echo cd /data/backups/archive>>C:\temp\ftp_pdtb4.ini echo mget *.tar>>C:\temp\ftp_pdtb4.ini echo bye>>C:\temp\ftp_pdtb4.ini
ftp -v -i -s:C:\temp\ftp_pdtb4.ini dir
cls echo Transfert FTP... WINDOWS
set w_ftp=%1 set w_user=%2 set w_pwd=%3 set w_source=%4 set w_cible=%5
rem echo ftp : %w_ftp% rem echo user : %w_user% rem echo pwd : %w_pwd% rem echo source : %w_source% rem echo cible : %w_cible%
net use x: /delete /Y
net use x: %w_cible%
x: dir
set dir_logs=c:\temp\ set ftp_log=%dir_logs%transfert_ftp.log set ftp_ini=C:\temp\FTP_envoi.ini
rem ************************************************************************** rem Récupération d'un fichier avec un get rem ************************************************************************** echo open %w_ftp%>%ftp_ini% echo %w_user%>>%ftp_ini% echo %w_pwd%>>%ftp_ini% echo ascii>>%ftp_ini% echo cd %w_source%>>%ftp_ini% echo dir test*>>%ftp_ini% echo get test*.*>>%ftp_ini% rem echo dir >>%ftp_ini% echo bye>>%ftp_ini%
rem type %ftp_ini%
ftp.exe -i -s:%ftp_ini% 1>%ftp_log%
type %ftp_log%
cls echo === Transfert Robocopy ===
set w_fic=%1 set w_source=%2 set w_cible1=%3 set w_cible2=%4 set w_log=%5\%TOM_JOB%.log
echo fic : %w_fic% echo source : %w_source% echo cible1 : %w_cible1% echo cible2 : %w_cible2% echo log : %w_log%
for /F "tokens=1-4 delims=/" %%a in ('echo %date:~4,10%') do set w_date=%%c%%a%%b for /F "tokens=1-4 delims=:" %%a in ('echo %time:~0,8%') do set w_time=%%a%%b%%c set w_horo=%w_date%_%w_time% echo w_horo : %w_horo%
TIMEOUT /T 3 /NOBREAK >nul
echo Copy echo robocopy %w_source% %w_cible1% /S /w:10 /r:2 /LOG+:%w_log% robocopy %w_source% %w_cible1% /S /w:10 /r:2 /LOG+:%w_log%
TIMEOUT /T 3 /NOBREAK >nul
echo Rename echo ren %w_source%%w_fic% %w_fic%.%w_horo% ren %w_source%%w_fic% %w_fic%.%w_horo%
echo robocopy %w_source% %w_cible2% /S /w:10 /r:2 /LOG+:%w_log% robocopy %w_source% %w_cible2% /MOV /w:10 /r:2 /LOG+:%w_log%
#!/bin/bash
cd /exploit/logs
find *.e -type f -not -empty
rem ——————————————– rem ce script rechercher les fichiers non vide rem pour un type (extension) donné rem dans une directorie donné rem ——————————————–
@Echo Off
echo extension : %1 echo dossier : %2
setlocal ENABLEDELAYEDEXPANSION
set /A P1=0 set fic=%1 set dossier=%2
for /R %dossier% %%i in (%fic%) do if « %%~zi » geq « 1 » ( echo %%~nxzi set /A P1=!P1!+1 )
echo Il y a !P1! fichiers non vide
set /A nb_fic=!P1!
if %nb_fic% equ 0 goto TERMINE goto ERREUR
:ERREUR Echo « il y a !P1! Pb sur ces serveurs » rem cd %ABM_LOGS% rem copy /Y %TOM_LOG_PATH_E% log_erreur.txt rem copy /Y %TOM_LOG_PATH_O% log_standard.txt rem %ABM_BIN%/tmail -c %ABM_BIN%/tmail.ini -to eric.fougere@faiveleytransport.com -sub « DCB – VTOM : ERREUR job : %TOM_JOB% » -msg « fichier log non vide MACHINE : %TOM_HOST% %TOM_JOB% : Les log errors ne sont pas vides. » -att log_standard.txt;log_erreur.txt
:TERMINE exit /b %nb_fic%
setlocal enableDelayedExpansion set serv=%1 echo serveur : %serv% echo -----
for /f "tokens=* delims=" %%j in (\\PFILE\Batch_win\Citrix_List_services.txt) do ( echo service : %%j sc \\!serv! query "%%j" | find "STOPPED" if !errorlevel! equ 0 sc \\!serv! start "%%j" sc \\!serv! query "%%j"
\\PFILE\Batch_win\Citrix_List_services.txt
Zabbix Agent
@echo off echo "Tempo de 5s" TIMEOUT /T 5 /NOBREAK >nul
set w_serv=%1
echo ---- Reboot server %w_serv% ---
echo shutdown /r /m \\%w_serv% /t 30 /c "BatchStop" /f /d p:4:1
for /f "tokens=3 delims= " %%b in ('QUSER /SERVER:%w_serv%') do LOGOFF %%b /SERVER:%w_serv% /V
shutdown /r /m \\%w_serv% /t 30 /c "BatchStop" /f /d p:4:1
echo "Tempo de 180s" TIMEOUT /T 180 /NOBREAK >nul
@echo off SETLOCAL enableExtensions enableDelayedExpansion
set /a cpt=0
for /f %%i in (\\pfile\batch_win\Liste_serveurs_citrix.txt) do (
for /f "tokens=1 delims= " %%b in ('QUSER /SERVER:%%i ^|findstr "Disc" ') do ( rem echo %%b set /a cpt=!cpt!+1 ) for /f "tokens=1 delims= " %%b in ('QUSER /SERVER:%%i ^|findstr "Active" ') do ( rem echo %%b set /a cpt=!cpt!+1 ) )
echo %cpt%
@echo off setlocal enableDelayedExpansion
rem Nom du serveur set serv=%1
rem Durée en minutes avant deconnection set wmin=%2
rem Nombre de message affichés avant logout set wboucle=%3
rem Message affiché. set mesg="Please save your work and log out, this server will be restarted in"
echo Envoi de message vers le serveur Citrix : %serv% echo Délai de prévenance : %wmin% minutes echo Boucle : %wboucle% echo Message : %mesg%
set /a wsec=%wmin%*60
rem echo %wsec% sec
QUSER /SERVER:%serv% 2>null if %errorlevel% NEQ 0 ( echo "No users" goto fin )
for /f "tokens=1 delims= " %%b in ('QUSER /SERVER:%serv% ^|findstr "Disc" ') do echo %%b va être deconnecté. for /f "tokens=2 delims= " %%b in ('QUSER /SERVER:%serv% ^|findstr "Disc" ') do LOGOFF %%b /SERVER:%serv% /V
:message QUSER /SERVER:%serv% 2>null if %errorlevel% NEQ 0 ( echo "No users Disc" goto fin )
echo boucle : %wboucle% de %wmin% mn. if %wboucle% neq 0 ( set /a wtimeout=!wmin!*!wboucle! set wmesg=!mesg! !wtimeout! minutes. for /f "tokens=1 delims= " %%b in ('QUSER /SERVER:!serv! ^|findstr "Activ" ') do MSG %%b /SERVER:!serv! /TIME:30 !wmesg! for /f "tokens=2 delims= " %%b in ('QUSER /SERVER:%serv% ^|findstr "Disc" ') do LOGOFF %%b /SERVER:%serv% /V TIMEOUT /T !wsec! /NOBREAK >nul set /a wboucle=%wboucle%-1 goto :message )
for /f "tokens=1 delims= " %%b in ('QUSER /SERVER:%serv% ^|findstr "Disc" ') do echo %%b va être deconnecté. for /f "tokens=2 delims= " %%b in ('QUSER /SERVER:%serv% ^|findstr "Disc" ') do LOGOFF %%b /SERVER:%serv% /V for /f "tokens=1 delims= " %%b in ('QUSER /SERVER:%serv% ^|findstr "Activ" ') do echo %%b Log off. for /f "tokens=2 delims= " %%b in ('QUSER /SERVER:%serv% ^|findstr "Activ" ') do LOGOFF %%b /SERVER:%serv% /V
:fin QUSER /SERVER:%serv% 2>null exit /B 0
echo off
SETLOCAL enableExtensions enableDelayedExpansion
set w_file=%1 %2 %3 %4 rem set cpt=0 echo Search File : \\PCTXxx%w_file%
echo *******************************************
for /f %%i in (\\PFILE\Batch_win\Citrix_List_servers.txt) do (
set w_target="\\%%i!w_file!"
IF EXIST !w_target! ( echo The file : !w_target! will be DELETED. del /S /F /Q !w_target! rem del /S /F /Q !w_target! 2>&1 rem IF !ERRORLEVEL!==0 set /A cpt+=1 ) ELSE ( echo The file : !w_target! does not exist. )
echo --------------------- )
rem exit /B %cpt%
Citrix_List_servers.txt
PCTX0
PCTX1
PCTX2
PCTX3
PCTX4
PCTX6
PCTX7
PCTX8
PCTX9
PCTX11
PCTX12
PCTX13
PCTX14
PCTX15
PCTX16
echo change logon /enable sur le serveur %1
set PATH=%PATH%;c:\Program Files\pstools
psexec \\%1 cmd /c change logon /enable
QUSER /SERVER:%1
@echo off
echo serveur : %1
echo status : %2
QUSER /SERVER:%1
echo change logon /%2 sur le serveur %1
set PATH=%PATH%;c:\Program Files\pstools
psexec \\%1 cmd /c change logon /%2