Format date (horodatage)

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:

 

 

robocopy_transfert_horolog.bat

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%

purge_fichier.bat

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

windows_reboot.bat

@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

horofile.bat

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!

ftp_win_get_lin.bat

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

ftp_get.bat

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%

frp_mov.bat

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%

Fichier_non_vide

Sous Linux

#!/bin/bash
cd /exploit/logs
find *.e -type f -not -empty

Sous Windows

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%

citrix_reboot.bat

@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

citrix_quser.bat

@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%

citrix_message.bat

@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

citrix_del_file.bat

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