my_backup_binlog.sh

w_date=$(date '+%Y_%m_%d_%H_%M_%S')
BINLOGPATH=/data/mysql/databases
BINLOGNAME=mysql-bin.index
BACKUPDIR=/data/backups/mysql/${w_date}_binlog
# sans log pour remonter dans VTOM
#su mysql --command="mysqlbackup --user=root --password=zsxedc --ibbackup=/opt/mysql/meb-3.5/bin/ibbackup /etc/mysql/my.cnf /data/backups/mysql"
echo "Flush Logs"
mysql -pzsxedc --batch --skip-column-names --execute="flush logs"
echo "Copying binlogs"
su mysql --command="mkdir $BACKUPDIR"
for FILE in `cat $BINLOGPATH/$BINLOGNAME`
do
SFILE=(${FILE/*\//})
#echo "$SFILE"
su mysql --command="cp -p $BINLOGPATH/$SFILE $BACKUPDIR/"
#gzip $/$SFILE
done

my_alter_engine_mig.sh

#!/bin/bash
file=/exploit/scripts/my_alter_table_engine_mig.sql
file2=/exploit/scripts/my_alter_table_engine_mig_spe.sql
mysql -pzsxedc --batch --skip-column-names --execute="select concat('ALTER TABLE ',table_schema,'.',table_name,' ENGINE=InnoDB;') from information_schema.TABLES where table_schema not in ('information_schema', 'mysql', 'performance_schema') and table_type <> 'VIEW' and engine <> 'InnoDB' and table_name not in ('General Ledger','Controlling#temporary','Overdue-DrillThrough')" > $file
cat $file
time mysql -pzsxedc <$file
cat $file2
time mysql -pzsxedc <$file2

my_alertlog.sh

#!/bin/sh
echo "----------------------------------------------"
echo " Recherche des erreurs dans les log"
echo "----------------------------------------------"
echo " "
fic=$1 # nom du fichier
day=$2 # jour recherche
error=$3 # chaine erreur
#fic=/data/mysql/databases/pdtb2.err
#day=140114
#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 trouvee"
 exit 0
else
 echo "Erreur trouvee en ligne : " $numligne
fi
# on compte le nombre d'erreurs trouvees 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

zab_mem_free.sh

#!/bin/bash
#-------------------------------------------
# Retourne le pourcentage de memoire dispo
#-------------------------------------------
mem_tot=`free | grep Mem: | awk '{print $2}'`
swap_free=`free | grep cache: | awk '{print $4}'`
memoire_disp=`echo " scale=2; $swap_free / $mem_tot * 100" | bc -l`
echo $memoire_disp

purge_file.sh

#!/bin/bash
# ==================================================
# Nom : purge_file.sh
# Objet : purge de fichier
# Auteur : FAIVELEY - DIGORA
# Cree le : 01/01/2010
# Modifié par : EF le 23/02/2012
# Syntaxe : purge_file.sh repertoire_cible nb_de_jours
# ==================================================
# ----------------------------------
# Fonction d'affichage de la syntaxe
# ----------------------------------
syntaxe()
{
 echo "Usage : $0 repertoire_cible nb_de_jours"
}
# --------------------------
# Verification de la syntaxe
# --------------------------
if [ $# -ne 3 ]
then
 echo "=================================================="
 echo "ERREUR : Nombre d'arguments incorrects !"
 syntaxe
 echo "=================================================="
 exit 1
fi
# ----------
# Traitement
# ----------
w_rep_purge=$1
w_jour_purge=$2
w_extension=$3
echo w_rep_purge = $1
echo w_jour_purge = $2
echo w_extension = $3
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}.log
echo " "
echo fichier log : $w_log_file
w_rep_purge=`dirname ${1}/toto`
{
echo `date +"%Y-%m-%d %H:%M:%S"` "- Debut purge du repertoire [${w_rep_purge}] pour les fichiers modifies il y a [${w_jour_purge}] jours ..."
# Recherche et supression des fichiers dans le rep w_rep_purge et qui ont ete modifies il y a $w_jour_purge jours
#
# ------ Modifié + par : EF le 23/02/2012
# ------ on traite tous les extensions de fichier.
#
#if [ "${w_rep_purge}" = "${w_log_dest}" ]
#then
# for v_fic in `find ${w_rep_purge}/ -type f -mtime ${w_jour_purge} -name "*.e"`
# do
# echo " - Suppression du fichier [${v_fic}] ..."
# rm -f ${v_fic}
# done
# for v_fic in `find ${w_rep_purge}/ -type f -mtime ${w_jour_purge} -name "*.o"`
# do
# echo " - Suppression du fichier [${v_fic}] ..."
# rm -f ${v_fic}
# done
# for v_fic in `find ${w_rep_purge}/ -type f -mtime ${w_jour_purge} -name "*.${w_extension}"`
# do
# echo " - Suppression du fichier [${v_fic}] ..."
# rm -f ${v_fic}
# done
#else
# for v_fic in `find ${w_rep_purge}/ -type f -mtime ${w_jour_purge} -name "${w_extension}"`
 for v_fic in `find ${w_rep_purge}/ -type f -mtime ${w_jour_purge} -name "*.*"`
 do
 echo " - Suppression du fichier [${v_fic}] ..."
 rm -f ${v_fic}
 done
#fi
# Modifié - par : EF le 23/02/2012
echo `date +"%Y-%m-%d %H:%M:%S"` "- Fin purge du repertoire [${w_rep_purge}] !"
} >${w_log_file} 2>&1
# Pause de 10 secondes : NE PAS SUPPRIMER
sleep 10
cat $w_log_file
exit

purge_dir.sh

#!/bin/bash
w_rep_purge=$1
w_jour_purge=$2
echo w_rep_purge = $1
echo w_jour_purge = $2
w_date=$(date '+%Y_%m_%d_%H_%M_%S')
w_log_dest=/exploit/logs
w_log_file=${w_log_dest}/${w_date}_${w_prog}.log
echo " "
echo fichier log : $w_log_file
echo " Espaces disque avant purge"
df /dev/sda1
echo " "
w_rep_purge=`dirname ${1}/toto`
{
echo `date +"%Y-%m-%d %H:%M:%S"` "- Debut purge du repertoire [${w_rep_purge}] pour les dossiers modifies il y a [${w_jour_purge}] jours ..."
# Recherche et supression des dossiers dans le rep w_rep_purge et qui ont ete modifies il y a $w_jour_purge jours
 for v_dos in `find ${w_rep_purge}/ -type d -mtime ${w_jour_purge} `
 do
 echo " - Suppression du dossier [${v_dos}] ..."
 rm -f -R ${v_dos}
 done
echo `date +"%Y-%m-%d %H:%M:%S"` "- Fin purge du repertoire [${w_rep_purge}] !"
} >${w_log_file} 2>&1
echo " "
cat ${w_log_file}
echo " "
echo " Espaces disque apres purge"
df /dev/sda1root

process_check.sh

#!/bin/bash
# ========================================================
# Objet : verification de l'etat d'un process
# Auteur : E.Fougere
# Cree le : 15/05/2012
# =======================================================
w_process=$1
echo Process : $w_process
#v_res=`grep "${w_process}:" | wc -l`
v_res=`ps -ef |grep ${w_process} | grep -v grep | wc -l`
v_res=`expr ${v_res}`
#echo $v_res
if [ ${v_res} -eq 0 ]
then
 echo "==================================================================================="
 echo "ERREUR : Process [${w_process}] inexistant !"
 echo "==================================================================================="
 exit 1
fi
if [ ${v_res} -ne 0 ]
then
 echo "==================================================================================="
 echo "PAS d'ERREUR : Process [${w_process}] existant "
 echo "==================================================================================="
 exit 0
fi

lpz_sap_m3_run_12.sh

#!/bin/sh
# Parametre 1 : environnement sur lequel seront chargees les donnees
# Parametre 2 : nom du fichier utilise pour l'initialisation du refentiel ou "integration" pour le mode normal (apres une initialisation.
# exemple de nom de fichier : LPZ_SAPM3_210510_1.zip (le fichier doit se trouver dans le repertoire : ftp.faiveley.com/LpzXM3/input)
echo "Environnement : "${1}
echo "Mode d'execution : "${2}
echo ""
# Sauvegarde des fichiers avant traitement
dt_dir=`date +"%Y_%m_%d_%H%M%S"`
dir_save=sauve_av_traitement_$dt_dir
cd /data/talend/repository/${1}
mkdir $dir_save
cp *.* $dir_save
sleep 5
sh /data/talend/jobs/LPZ_SAP_M3_INTEGRATION_1.2/LPZ_SAP_M3_INTEGRATION/LPZ_SAP_M3_INTEGRATION_run.sh ${1} ${2}
err_sh=$?
echo "Valeur err_sh : "$err_sh
echo ""
dt_fin=`date +"%A %d/%m/%Y - %H:%M:%S"`
echo $dt_fin
echo ""
if [ $err_sh -eq 0 ] ; then
${ABM_BIN}/tmail -c ${ABM_BIN}/tmail.ini -to ${3} -sub "DCC : Integration SAP - M3 env: ${1} - OK" -msg "
----------------------------- VTOM MESSAGE OK ---------------------------------------
The scheduler Vtom has successfully completed the process of Talend integration of SAP-LPZ data in M3 (${1}).
Please verify log file you received from Talend for any functional failure.
Best Regards.
------------------------------ END OF VTOM MESSAGE -----------------------------------------" -att $TOM_LOG.o\;$TOM_LOG.e
else
${ABM_BIN}/tmail -c ${ABM_BIN}/tmail.ini -to ${3} -cc ${4} -sub "ERROR - Integration SAP - M3 env: ${1} - ERROR" -msg "
******************* VTOM MESSAGE ERROR ***********************
The scheduler Vtom has completed with error the process of Talend integration of SAP-LPZ data in M3 (${1}).
Please verify log file you received from Talend for any functional failure.
Best Regards.
******************* END OF VTOM MESSAGE ERROR***********************" -att $TOM_LOG.o\;$TOM_LOG.e
err_sh=1
fi
exit $err_sh

chk_fic_sap_m3_new.sh

#!/bin/sh -vx

date_fic=`date +%d%m%y`
echo « date : « $date_fic
echo «  »

nom_fic= »LPZ_SAPM3_ »$date_fic »_1.zip »
echo « nom du fichier : « $nom_fic
echo «  »
cd /exploit/scripts

HOST=’filetransfert.faiveleytransport.com’
PORT=’21’
USER=’$1′
PASSWD=’$2′

ftp -i -n $HOST $PORT << END_SCRIPT
quote USER $USER
quote PASS $PASSWD
cd lpzxm3
cd In
bin
get $nom_fic
quit
END_SCRIPT

test -s $nom_fic
fic=$?
if [ $fic -eq 0 ] ; then
${ABM_BIN}/tmail -c ${ABM_BIN}/tmail.ini -to ${1} -sub « DCC : SAP file on filetransfert.faiveleytransport.com OK » -msg  »
Dear Dietmar,

Your file $nom_fic is now on our ftp server : filetransfert.faiveleytransport.com.

Best Regards.
IT Faiveley Team »

rm $nom_fic

else
${ABM_BIN}/tmail -c ${ABM_BIN}/tmail.ini -to ${1} -cc ccosupport@faiveley-test.com -sub « ERROR : SAP file on filetransfert.faiveleytransport.com NOT OK » -msg  »
Dear Dietmar,

We have not received your file from SAP on our ftp server (filetransfert.faiveleytransport.com) or the file is empty, today.

Best Regards.
IT Faiveley Team »;
fi

exit $fic

backup_des_fichiers.sh

# Récupération des fichiers avant traitement
echo Environnement : ${1}
echo Dossier de sauvegarde : ${2}

echo Contenu du dossier /data/talend/repository/${1} avant effacement
cd /data/talend/repository/${1}
ls -ltra
# Cette commande ne supprime pas les sous dossier
rm *.*
echo Contenu du dossier de sauvegarde /data/talend/repository/${1}/${2}
cd /data/talend/repository/${1}/${2}
ls -ltra
cp *.* ..
echo Contenu du dossier /data/talend/repository/${1} après récupération
cd ..
ls -ltra

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