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%

Del_non_vide.bat

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 fic=%1
set dossier=%2
for /R %dossier% %%i in (%fic%) do if "%%~zi" geq "1" (
echo %%~nxzi 
del /f %%i 
)
:TERMINE
exit /b %nb_fic%

connect_as400.bat

rem Tracking #63550
rem Test de connection à l'AS400
net use s: /delete /yes
net use s: \\ERPM3TWO\root\M3FileTransfer\M3Production\DE1\test vtomvtom /USER:erpm3two\DCXSERVICE
echo source =\\ERPM3TWO\root\M3FileTransfer\M3Production\DE1\test
rem set source=\\pfile.ft.grp\Distrib\_cco\EF\Documents
rem set cible=s:
set source=s:
set cible=\\pfile.ft.grp\Distrib\_cco\EF\test
echo %source% 
echo %cible%
set w_log=%cible\%TOM_JOB%.log
dir %source%
robocopy %source% %cible% /S /w:1 /r:1 test*.txt
dir %cible%

my_coldbackup_database.sh

w_date=$(date '+%Y_%m_%d_%H_%M_%S')
# avec generation log
# su mysql --command="mysqlbackup --user=root --password=motdepasse --ibbackup=/opt/mysql/meb-3.5/bin/ibbackup /etc/mysql/my.cnf /data/backups/mysql" > /exploit/logs/my-backup-${w_date}.log
# sans log pour remonter dans VTOM
su mysql --command="mysqlbackup --user=root --password=motdepasse --ibbackup=/opt/mysql/meb-3.5/bin/ibbackup /etc/mysql/my.cnf /data/backups/mysql"
[root@pdtb2 scripts]# cat my_coldbackup_database.sh
#w_date=$(date '+%Y_%m_%d_%H_%M_%S')
w_date=$(date '+%A')
BACKUPDIR=/data/backups/mysql/${w_date}_coldbackup
DATADIR=/data/mysql
echo "rm -rf $BACKUPDIR"
rm -rf $BACKUPDIR
echo "stop mysql database"
/exploit/scripts/my_stop_database.sh
su mysql --command="mkdir $BACKUPDIR"
echo "copy my.cnf"
cp -p /etc/mysql/my.cnf $BACKUPDIR/
echo "copy database sans compression"
time cp -rp $DATADIR/ $BACKUPDIR/
echo "start mysql database"
/exploit/scripts/my_start_database.sh
sleep 120

my_backup_database.sh

w_date=$(date '+%Y_%m_%d_%H_%M_%S')
# avec generation log
# su mysql --command="mysqlbackup --user=root --password=motdepasse --ibbackup=/opt/mysql/meb-3.5/bin/ibbackup /etc/mysql/my.cnf /data/backups/mysql" > /exploit/logs/my-backup-${w_date}.log
# sans log pour remonter dans VTOM
su mysql --command="mysqlbackup --user=root --password=motdepasse --ibbackup=/opt/mysql/meb-3.5/bin/ibbackup /etc/mysql/my.cnf /data/backups/mysql"

my_alertlog.sh

#!/bin/sh
echo "----------------------------------------------"
echo " Recherche des erreurs dans les log"
echo "----------------------------------------------"
echo " "
fic=$1 # nom du fichier
day=$2 # jour recherché
error="$3" # chaine erreur
#fic=/data/mysql/databases/pdtb2.err
#day=131222
#error="ERROR"
echo "File : $fic"
echo "day : $day"
echo "error : $error"
nbligne=`cat $fic | wc -l`
echo "nom de lignes dans le fichier log : " $nbligne
numligne=`grep -n "$day " $fic |head -1 | awk -F ':' '{print $1}'`
if [ "x$numligne" == "x" ]; then
 echo "Pas d erreur trouvée"
 exit 0
else
 echo "Erreur trouvée en ligne : " $numligne
fi
# on compte le nombre d'erreurs trouvées et on affiche les 5 lignes suivantes du log
cpt=`tail -n +$numligne $fic | grep -C 5 $error |wc -l`
if [ $cpt == 0 ]; then
 # si pas d'erreur on sort
 exit 0
else
 # On affiche les erreur pour le log Vtom
 tail -n +$numligne $fic | grep -C 5 $error
 exit $cpt
fi

ora_switch_logfile.sh

#!/bin/bash
# ----------------------------------
# Fonction d'affichage de la syntaxe
# ----------------------------------
syntaxe()
{
 echo "Usage : $0 database_name"
}
# --------------------------
# Verification de la syntaxe
# --------------------------
if [ $# -ne 1 ]
then
 echo "=================================================="
 echo "ERREUR : Nombre d'arguments incorrects !"
 syntaxe
 echo "=================================================="
 exit 1
fi
# --------------------------
# Verification des arguments
# --------------------------
w_instance=$1
v_res=`grep "${w_instance}:" /etc/oratab | wc -l`
v_res=`expr ${v_res}`
if [ ${v_res} -eq 0 ]
then
 echo "=================================================="
 echo "ERREUR : Base de donnees ${w_instance} inexistante !"
 syntaxe
 echo "=================================================="
 exit 1
fi
export ORACLE_SID=${w_instance}
echo $ORACLE_SID
# export NLS_DATE_FORMAT=YYYY.MM.DD.HH24.MI.SS
w_prog=`basename $0 .sh`
w_date=$(date '+%Y_%m_%d_%H_%M_%S')
w_log_dest=/exploit/logs
w_log_file=$w_log_dest/${w_date}_${w_prog}_${w_instance}.log;
sqlplus /nolog <<EOSQL >>$w_log_file 2>&1
WHENEVER SQLERROR EXIT SQL.SQLCODE
connect / as sysdba
ALTER SYSTEM ARCHIVE LOG CURRENT;
exit

ora_compilation.sh

#!/bin/bash
# --------------------------
# Verification de la syntaxe
# --------------------------
if [ $# -ne 1 ]
then
 echo "=================================================="
 echo "ERREUR : Nombre d'arguments incorrects !"
 syntaxe
 echo "=================================================="
 exit 1
fi
# --------------------------
# Verification des arguments
# --------------------------
w_instance=$1
v_res=`grep "${w_instance}" /etc/oratab | wc -l`
v_res=`expr ${v_res}`
if [ ${v_res} -eq 0 ]
then
 echo "=================================================="
 echo "ERREUR : Base de donnees [${w_instance}] inexistante !"
 syntaxe
 echo "=================================================="
 exit 1
fi
echo "SID=${w_instance}"
export ORACLE_SID=${w_instance}
ls /soft/oracle/db102/rdbms/admin/utlrp.sql
err_fic=$?
if [ "${err_fic}" != "0" ]
then
 echo Fichier absent.
 exit ${err_fic}
fi
export ORACLE_SID=$1
echo "recompile tous les objets invalides" ${ORACLE_SID}
sqlplus /nolog <<EOF
 connect / as sysdba
 WHENEVER SQLERROR EXIT SQL.SQLCODE
 SELECT owner#,name,status,ctime,mtime,stime FROM obj$ WHERE status IN (4, 5, 6);
start /soft/oracle/db102/rdbms/admin/utlrp.sql
SELECT job_name FROM dba_scheduler_running_jobs WHERE job_name like 'UTL_RECOMP_SLAVE_%';
exit
 EOF
exit ${err_sql}

stop_database.sh

#!/bin/bash
# ==================================================
# Nom : start_database.sh
# Objet : arret d'une base de donnees
# Cree le : 28/01/2010
# Syntaxe : start_database.sh database_name
# ==================================================
# ----------------------------------
# Fonction d'affichage de la syntaxe
# ----------------------------------
syntaxe()
{
 echo "Usage : $0 database_name"
}
# --------------------------
# Verification de la syntaxe
# --------------------------
if [ $# -ne 1 ]
then
 echo "=================================================="
 echo "ERREUR : Nombre d'arguments incorrects !"
 syntaxe
 echo "=================================================="
 exit 1
fi
# --------------------------
# Verification des arguments
# --------------------------
w_instance=$1
v_res=`grep "${w_instance}:" /etc/oratab | wc -l`
v_res=`expr ${v_res}`
if [ ${v_res} -eq 0 ]
then
 echo "=================================================="
 echo "ERREUR : Base de donnees ${w_instance} inexistante !"
 syntaxe
 echo "=================================================="
 exit 1
fi
export ORACLE_SID=${w_instance}
# export NLS_DATE_FORMAT=YYYY.MM.DD.HH24.MI.SS
w_prog=`basename $0 .sh`
w_date=$(date '+%Y_%m_%d_%H_%M_%S')
w_log_dest=/exploit/logs
w_log_file=$w_log_dest/${w_date}_${w_prog}_${w_instance}.log;
sqlplus /nolog <<EOSQL >>$w_log_file 2>&1
connect / as sysdba
shutdown immediate;
exit
EOSQL

start_database.sh

#!/bin/bash
# ==================================================
# Nom : start_database.sh
# Objet : demarrage d'une base de donnees
# Cree le : 28/01/2010
# Syntaxe : start_database.sh database_name
# ==================================================
# ----------------------------------
# Fonction d'affichage de la syntaxe
# ----------------------------------
syntaxe()
{
 echo "Usage : $0 database_name"
}
# --------------------------
# Verification de la syntaxe
# --------------------------
if [ $# -ne 1 ]
then
 echo "=================================================="
 echo "ERREUR : Nombre d'arguments incorrects !"
 syntaxe
 echo "=================================================="
 exit 1
fi
# --------------------------
# Verification des arguments
# --------------------------
w_instance=$1
v_res=`grep "${w_instance}:" /etc/oratab | wc -l`
v_res=`expr ${v_res}`
if [ ${v_res} -eq 0 ]
then
 echo "=================================================="
 echo "ERREUR : Base de donnees ${w_instance} inexistante !"
 syntaxe
 echo "=================================================="
 exit 1
fi
export ORACLE_SID=${w_instance}
echo $ORACLE_SID
# export NLS_DATE_FORMAT=YYYY.MM.DD.HH24.MI.SS
w_prog=`basename $0 .sh`
w_date=$(date '+%Y_%m_%d_%H_%M_%S')
w_log_dest=/exploit/logs
w_log_file=$w_log_dest/${w_date}_${w_prog}_${w_instance}.log;
sqlplus /nolog <<EOSQL >>$w_log_file 2>&1
connect / as sysdba
startup;
select NAME, CREATED,LOG_MODE,OPEN_MODE from v\$database;
exit
EOSQL