<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://infocepo.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sfil</id>
	<title>Essential - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://infocepo.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sfil"/>
	<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php/Special:Contributions/Sfil"/>
	<updated>2026-05-16T03:07:02Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.13</generator>
	<entry>
		<id>https://infocepo.com/wiki/index.php?title=Passwd_update&amp;diff=743</id>
		<title>Passwd update</title>
		<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=Passwd_update&amp;diff=743"/>
		<updated>2018-02-08T09:37:52Z</updated>

		<summary type="html">&lt;p&gt;Sfil: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ceci est la procédure de modification des mots de passes de l infrastructure.&lt;br /&gt;
== stockage du mot de passe ==&lt;br /&gt;
* Dans KEEPASS mettre un nouveau mot de passe pour root et intrasys (exemple:MAJUSCULEminuscules-01).&lt;br /&gt;
&lt;br /&gt;
== cryptage ==&lt;br /&gt;
* Lancer depuis le serveur Ansible la commande suivante :&lt;br /&gt;
 /exploitation/bin/hash.sh root intrasys&lt;br /&gt;
&lt;br /&gt;
== deployment == &lt;br /&gt;
 ansible-playbook --extra-vars '{&amp;quot;HOSTS&amp;quot;:&amp;quot;linux&amp;quot;,&amp;quot;USER&amp;quot;:&amp;quot;root&amp;quot;,&amp;quot;HASH&amp;quot;:&amp;quot;'$(cat /exploitation/env/root_hash)'&amp;quot;}' /etc/ansible/playbooks/passwd_update.yml&lt;br /&gt;
 ansible-playbook --extra-vars '{&amp;quot;HOSTS&amp;quot;:&amp;quot;all&amp;quot;,&amp;quot;USER&amp;quot;:&amp;quot;intrasys&amp;quot;,&amp;quot;HASH&amp;quot;:&amp;quot;'$(cat /exploitation/env/intrasys_hash)'&amp;quot;}' /etc/ansible/playbooks/passwd_update.yml&lt;/div&gt;</summary>
		<author><name>Sfil</name></author>
	</entry>
	<entry>
		<id>https://infocepo.com/wiki/index.php?title=Backup&amp;diff=739</id>
		<title>Backup</title>
		<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=Backup&amp;diff=739"/>
		<updated>2018-01-14T12:05:21Z</updated>

		<summary type="html">&lt;p&gt;Sfil: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
# backup.sh [host]&lt;br /&gt;
&lt;br /&gt;
# Init&lt;br /&gt;
binDir=&amp;quot;$(dirname $0)&amp;quot;&lt;br /&gt;
backupDir=&amp;quot;${binDir}&amp;quot;/../system_restore&lt;br /&gt;
&lt;br /&gt;
if [ $# -gt 0 ] ;then&lt;br /&gt;
  hostList=$1&lt;br /&gt;
else&lt;br /&gt;
  hostList=$(grep &amp;quot;^t&amp;quot; /etc/ansible/hosts |sort -u)&lt;br /&gt;
fi  &lt;br /&gt;
&lt;br /&gt;
for serverMy in $hostList ;do&lt;br /&gt;
  # Test acces root&lt;br /&gt;
  timeout --kill-after=1 1 ssh -i /etc/ansible/id_intrasys intrasys@${serverMy} &amp;quot;sudo su -c echo 2&amp;gt;&amp;amp;1 &amp;gt;/dev/null&amp;quot; 2&amp;gt;&amp;amp;1 &amp;gt;/dev/null &amp;amp;&amp;amp;(&lt;br /&gt;
&lt;br /&gt;
    sourceDir=&amp;quot;${serverMy}:/&amp;quot;&lt;br /&gt;
    destinationDir=&amp;quot;${backupDir}/${serverMy}/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    oldDir=&amp;quot;$(realpath -mL --relative-base . &amp;quot;${destinationDir}&amp;quot;).old&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    mkdir -p &amp;quot;${destinationDir}&amp;quot; &amp;quot;${oldDir}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    # Backup rpm list&lt;br /&gt;
    ${binDir}/clush.sh ${serverMy} &amp;quot;rpm -qa&amp;quot; \&lt;br /&gt;
      | gzip &amp;gt;&amp;quot;${backupDir}&amp;quot;/${serverMy}.rpmlist.gz&lt;br /&gt;
&lt;br /&gt;
    # Backup cfg files&lt;br /&gt;
    rsync --files-from=&amp;quot;${backupDir}/rsync.list&amp;quot; -abrtv --modify-window=1 --delete --force --backup-dir=&amp;quot;$oldDir&amp;quot; --suffix=&amp;quot;.$(date -u '+%Y-%m-%dT%H_%M_%SZ')&amp;quot; --rsync-path=&amp;quot;sudo /usr/bin/rsync&amp;quot; --rsh=&amp;quot;ssh -i /etc/ansible/id_intrasys -l intrasys&amp;quot; &amp;quot;intrasys@${sourceDir}&amp;quot; &amp;quot;${destinationDir}&amp;quot;&lt;br /&gt;
t  )&lt;br /&gt;
done&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
# initialisation&lt;br /&gt;
binDir=&amp;quot;$(dirname $0)&amp;quot;&lt;br /&gt;
cacheFile=/tmp/$(basename $0)$$&lt;br /&gt;
cacheFileRemote=/tmp/$(basename $0)$(uuidgen)&lt;br /&gt;
&lt;br /&gt;
# &lt;br /&gt;
touch ${cacheFile}&lt;br /&gt;
chown intrasys: ${cacheFile}&lt;br /&gt;
chmod 700 ${cacheFile}&lt;br /&gt;
&lt;br /&gt;
if [ $# -gt 1 ] ;then&lt;br /&gt;
  echo &amp;quot;$2&amp;quot; &amp;gt;${cacheFile}&lt;br /&gt;
  ${binDir}/script.sh &amp;quot;$1&amp;quot; &amp;quot;${cacheFile}&amp;quot;&lt;br /&gt;
else&lt;br /&gt;
  echo &amp;quot;$1&amp;quot; &amp;gt;${cacheFile}&lt;br /&gt;
  ${binDir}/script.sh &amp;quot;${cacheFile}&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
rm -f ${cacheFile}&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
# diff entre serveurs&lt;br /&gt;
# &amp;quot;&amp;lt;code bash&amp;gt;&amp;quot;&lt;br /&gt;
# APA 20180108&lt;br /&gt;
&lt;br /&gt;
# initialisation des variables&lt;br /&gt;
binDir=&amp;quot;$(dirname $0)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# signature du code&lt;br /&gt;
nameBase=&amp;quot;$(echo &amp;quot;$1&amp;quot; | tr -c '[:alnum:]' '_' | cut -c 1-68).$(echo &amp;quot;$1&amp;quot; | md5sum | cut -c 1-2).$(date '+%Y%m%d')&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# si resultat non en cache, lancer le traitement&lt;br /&gt;
[ ! -f &amp;quot;${binDir}/../log/${nameBase}.gz&amp;quot; ] &amp;amp;&amp;amp; (&lt;br /&gt;
  # lancement du code&lt;br /&gt;
  &amp;quot;${binDir}/&amp;quot;clush.sh &amp;quot;$1&amp;quot; &amp;gt;/dev/null&lt;br /&gt;
&lt;br /&gt;
  # Enleve les lignes en doublons par serveur. Puis ne garde que les lignes uniques entre tous les serveurs.&lt;br /&gt;
  for fileName in &amp;quot;${binDir}/../log/old/&amp;quot;*&amp;quot;.${nameBase}.gz&amp;quot; ;do&lt;br /&gt;
    echo &amp;quot;== ${fileName} ==&amp;quot;&lt;br /&gt;
    zcat &amp;quot;${fileName}&amp;quot; \&lt;br /&gt;
      | awk '!seen[$0]++'&lt;br /&gt;
  done \&lt;br /&gt;
    | awk '!seen[$0]++ {lines[i++]=$0}&lt;br /&gt;
      END {for (i in lines) if (seen[lines[i]]&amp;lt;=1) print lines[i]}' \&lt;br /&gt;
        gzip &amp;gt;${cacheFile}2.gz&lt;br /&gt;
&lt;br /&gt;
  # mise en cache&lt;br /&gt;
  mv ${cacheFile}2.gz &amp;quot;${binDir}/../log/${nameBase}.gz&amp;quot;&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
# affiche le resultat&lt;br /&gt;
zcat &amp;quot;${binDir}/../log/${nameBase}.gz&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# nettoyage traitement&lt;br /&gt;
rm -f ${cacheFile}*&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
[ $# -ne 1 ] &amp;amp;&amp;amp; echo &amp;quot;&lt;br /&gt;
# env parameters&lt;br /&gt;
# p : production&lt;br /&gt;
# b : preproduction&lt;br /&gt;
# r : recette&lt;br /&gt;
# t : test&lt;br /&gt;
# d : dev&lt;br /&gt;
&amp;quot; &amp;amp;&amp;amp; exit 1&lt;br /&gt;
&lt;br /&gt;
envParam=$1&lt;br /&gt;
binDir=&amp;quot;$(dirname $0)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
grep &amp;quot;^t&amp;quot; ${binDir}/../env/hosts \&lt;br /&gt;
  | sort -u \&lt;br /&gt;
    | grep -E '^.{11}'&amp;quot;${envParam}&amp;quot;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
binDir=&amp;quot;$(dirname $0)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
filesList=&amp;quot;${binDir}&amp;quot;/../system_restore/rsync.list&lt;br /&gt;
&lt;br /&gt;
[ ! -f &amp;quot;${filesList}&amp;quot;.$(date '+%Y%m%d').gz ] &amp;amp;&amp;amp;(&lt;br /&gt;
&lt;br /&gt;
  cat &amp;quot;${filesList}&amp;quot; |gzip &amp;gt;&amp;quot;${filesList}&amp;quot;.$(date '+%Y%m%d').gz&lt;br /&gt;
&lt;br /&gt;
  ${binDir}/diff.sh 'find /etc -follow -type f -mtime +1 -size -5M -exec md5sum {} \; ;find /boot /.authorized_keys /root /opt -type f -mtime +1 -size -5M -exec md5sum {} \;'&lt;br /&gt;
&lt;br /&gt;
  zcat $(ls -t1 ${binDir}/../log/*find*etc*md5sum*.$(date '+%Y%m%d').gz \&lt;br /&gt;
    |head -1) \&lt;br /&gt;
      |grep -v &amp;quot;^==.*==$&amp;quot; \&lt;br /&gt;
        |sed -r 's/^[0-9a-zA-Z]+ //' \&lt;br /&gt;
          |sort \&lt;br /&gt;
            &amp;gt;&amp;quot;all.${filesList}&amp;quot;&lt;br /&gt;
  cat &amp;quot;all.${filesList}&amp;quot; \&lt;br /&gt;
    |uniq &amp;gt;&amp;quot;${filesList}&amp;quot;&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;less \&amp;quot;${filesList}\&amp;quot;&amp;quot;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
if [ -z &amp;quot;$@&amp;quot; ] ;then&lt;br /&gt;
  MyKey=&amp;quot;-ie critical\|error\|warn\|fail&amp;quot;&lt;br /&gt;
else&lt;br /&gt;
  MyKey=&amp;quot;$@&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
MyBin=&amp;quot;$(basename $0)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
MyTimeOutMin=900&lt;br /&gt;
MyTimeOutMax=3600&lt;br /&gt;
&lt;br /&gt;
# bash colors&lt;br /&gt;
RED='\033[0;31m'&lt;br /&gt;
GREEN='\033[0;32m'&lt;br /&gt;
NC='\033[0m' # No Color&lt;br /&gt;
&lt;br /&gt;
lsof -X 2&amp;gt;/dev/null |grep &amp;quot; REG &amp;quot; |grep -E &amp;quot; [0-9]+w &amp;quot; |grep -o -P &amp;quot;(\/.+)&amp;quot; |sort -g |uniq |grep -v &amp;quot;/${MyBin}.cfg$&amp;quot; &amp;gt;~/${MyBin}.cfg&lt;br /&gt;
&lt;br /&gt;
cacheFile=&amp;quot;/tmp/${MyBin}.$$&amp;quot;&lt;br /&gt;
&lt;br /&gt;
function MyStep1 {&lt;br /&gt;
&amp;gt;${cacheFile}&lt;br /&gt;
&lt;br /&gt;
# 3 derniers jours du mois ou 9h à 17h en jour ouvré&lt;br /&gt;
if [ $(date +%d -d &amp;quot;3 day&amp;quot;) -lt $(date +%d) ] || { [ $(date +%H) -ge 9 ] &amp;amp;&amp;amp; [ $(date +%H) -lt 17 ] &amp;amp;&amp;amp; [ $(date +%u) -lt 6 ] ;} ;then&lt;br /&gt;
  MyTimeOut=$MyTimeOutMin&lt;br /&gt;
else&lt;br /&gt;
  MyTimeOut=$MyTimeOutMax&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
cat ~/${MyBin}.cfg |while read MyLogPath ;do&lt;br /&gt;
  if [ -f &amp;quot;$MyLogPath&amp;quot; ] ;then&lt;br /&gt;
    MyLogElapsed=$(($(date +%s) - $(date +%s -r &amp;quot;$MyLogPath&amp;quot;)))&lt;br /&gt;
&lt;br /&gt;
    if [ &amp;quot;$MyLogElapsed&amp;quot; -lt &amp;quot;$MyTimeOut&amp;quot; ] ;then&lt;br /&gt;
      MyResult=&amp;quot;$(tail -666 &amp;quot;$MyLogPath&amp;quot; 2&amp;gt;/dev/null |strings |grep $MyKey |tail -2 |cut -c1-111)&amp;quot;&lt;br /&gt;
      if [ -z &amp;quot;$MyResult&amp;quot; ] ;then&lt;br /&gt;
        MyResult=&amp;quot;$(tail -2 &amp;quot;$MyLogPath&amp;quot; 2&amp;gt;/dev/null |strings |tail -2 |cut -c1-111)&amp;quot;&lt;br /&gt;
        if [ ! -z &amp;quot;$MyResult&amp;quot; ] ;then&lt;br /&gt;
          echo -e &amp;quot;${NC}== $MyLogPath ==&amp;quot; &amp;gt;&amp;gt;${cacheFile}&lt;br /&gt;
          echo -e &amp;quot;${GREEN}${MyResult}${NC}&amp;quot; &amp;gt;&amp;gt;${cacheFile}&lt;br /&gt;
        fi&lt;br /&gt;
      else&lt;br /&gt;
        echo -e &amp;quot;${NC}== $MyLogPath ==&amp;quot; &amp;gt;&amp;gt;${cacheFile}&lt;br /&gt;
        echo -e &amp;quot;${RED}${MyResult}${NC}&amp;quot; &amp;gt;&amp;gt;${cacheFile}&lt;br /&gt;
      fi&lt;br /&gt;
    fi&lt;br /&gt;
  fi&lt;br /&gt;
done&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
MyStep1&lt;br /&gt;
cat ${cacheFile} |grep -v -w -f ~/${MyBin}.cfg &amp;gt;~/${MyBin}.ref&lt;br /&gt;
&lt;br /&gt;
while true ; do&lt;br /&gt;
  MyStep1&lt;br /&gt;
  diff --changed-group-format='%&amp;gt;' --unchanged-group-format='' ~/${MyBin}.ref ${cacheFile} &amp;gt;${cacheFile}.diff&lt;br /&gt;
  clear&lt;br /&gt;
  cat ${cacheFile}.diff&lt;br /&gt;
  sleep 2&lt;br /&gt;
done&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
# Init&lt;br /&gt;
sourceDir=&amp;quot;$1&amp;quot;&lt;br /&gt;
destinationDir=&amp;quot;$2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
backupDir=&amp;quot;$(realpath -mL --relative-base . &amp;quot;${destinationDir}&amp;quot;).backup&amp;quot;&lt;br /&gt;
&lt;br /&gt;
mkdir -p &amp;quot;${destinationDir}&amp;quot; &amp;quot;${backupDir}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Backup external datas&lt;br /&gt;
rsync -abrtv --modify-window=1 --delete --force --backup-dir=&amp;quot;$backupDir&amp;quot; --suffix=&amp;quot;.$(date -u '+%Y-%m-%dT%H_%M_%SZ')&amp;quot; --rsync-path=&amp;quot;sudo /usr/bin/rsync&amp;quot; --rsh=&amp;quot;ssh -i /etc/ansible/id_intrasys -l intrasys&amp;quot; -x &amp;quot;intrasys@${sourceDir}&amp;quot; &amp;quot;${destinationDir}&amp;quot;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
binDir=&amp;quot;$(dirname $0)&amp;quot;&lt;br /&gt;
cacheFile=/tmp/$(basename $0)$$&lt;br /&gt;
cacheFileRemote=/tmp/$(basename $0)$(uuidgen)&lt;br /&gt;
&lt;br /&gt;
touch ${cacheFile}&lt;br /&gt;
chown intrasys: ${cacheFile}&lt;br /&gt;
chmod 700 ${cacheFile}&lt;br /&gt;
&lt;br /&gt;
if [ $# -gt 1 ] ;then&lt;br /&gt;
  hostList=$1&lt;br /&gt;
  cat &amp;quot;$2&amp;quot; &amp;gt;${cacheFile}&lt;br /&gt;
else&lt;br /&gt;
  hostList=$(grep &amp;quot;^t&amp;quot; &amp;quot;${binDir}&amp;quot;/../env/hosts |sort -u)&lt;br /&gt;
  cat &amp;quot;$1&amp;quot; &amp;gt;${cacheFile}&lt;br /&gt;
fi  &lt;br /&gt;
&lt;br /&gt;
for serverMy in $hostList ;do&lt;br /&gt;
  cachePath=&amp;quot;${binDir}&amp;quot;/../log/old/${serverMy}.&amp;quot;$(cat ${cacheFile} | tr -c '[:alnum:]' '_' | cut -c 1-68)&amp;quot;.$(md5sum ${cacheFile} | cut -c 1-2).$(date '+%Y%m%d')&lt;br /&gt;
&lt;br /&gt;
  [ ! -f &amp;quot;${cachePath}&amp;quot;.gz ] &amp;amp;&amp;amp;\&lt;br /&gt;
    timeout --kill-after=1 1 ssh -i &amp;quot;${binDir}&amp;quot;/../env/id_intrasys intrasys@${serverMy} &amp;quot;sudo su -c echo 2&amp;gt;&amp;amp;1 &amp;gt;/dev/null&amp;quot; 2&amp;gt;&amp;amp;1 &amp;gt;/dev/null &amp;amp;&amp;amp;(&lt;br /&gt;
      timeout 3 scp -i &amp;quot;${binDir}&amp;quot;/../env/id_intrasys -p ${cacheFile} intrasys@${serverMy}:${cacheFileRemote} 2&amp;gt;&amp;amp;1 &amp;gt;/dev/null &amp;amp;&amp;amp;\&lt;br /&gt;
      timeout 120 ssh -i &amp;quot;${binDir}&amp;quot;/../env/id_intrasys intrasys@${serverMy} &amp;quot;sudo su -c ${cacheFileRemote}&amp;quot; |gzip &amp;gt;&amp;quot;${cachePath}&amp;quot;.gz&lt;br /&gt;
      timeout 3 ssh -i &amp;quot;${binDir}&amp;quot;/../env/id_intrasys intrasys@${serverMy} &amp;quot;rm -f ${cacheFileRemote} 2&amp;gt;/dev/null&amp;quot;)&lt;br /&gt;
  [ -f &amp;quot;${cachePath}&amp;quot;.gz ] &amp;amp;&amp;amp;(&lt;br /&gt;
    echo &amp;quot;== ${serverMy} ==&amp;quot;&lt;br /&gt;
    zcat &amp;quot;${cachePath}&amp;quot;.gz)&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
rm -f ${cacheFile}* 2&amp;gt;/dev/null ;find /tmp -user intrasys -type f -atime +1 -mtime +1 -delete 2&amp;gt;/dev/null&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sfil</name></author>
	</entry>
	<entry>
		<id>https://infocepo.com/wiki/index.php?title=Backup&amp;diff=738</id>
		<title>Backup</title>
		<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=Backup&amp;diff=738"/>
		<updated>2018-01-14T11:15:21Z</updated>

		<summary type="html">&lt;p&gt;Sfil: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
# backup.sh [host]&lt;br /&gt;
&lt;br /&gt;
# Init&lt;br /&gt;
binDir=&amp;quot;$(dirname $0)&amp;quot;&lt;br /&gt;
backupDir=&amp;quot;${binDir}&amp;quot;/../system_restore&lt;br /&gt;
cacheFile=/tmp/$$&lt;br /&gt;
&lt;br /&gt;
if [ $# -gt 1 ] ;then&lt;br /&gt;
  hostList=$1&lt;br /&gt;
  cat &amp;quot;$2&amp;quot; &amp;gt;${cacheFile}&lt;br /&gt;
  fileName=&amp;quot;$2&amp;quot;&lt;br /&gt;
else&lt;br /&gt;
  hostList=$(grep &amp;quot;^t&amp;quot; /etc/ansible/hosts |sort -u)&lt;br /&gt;
  cat &amp;quot;$1&amp;quot; &amp;gt;${cacheFile}&lt;br /&gt;
  fileName=&amp;quot;$1&amp;quot;&lt;br /&gt;
fi  &lt;br /&gt;
&lt;br /&gt;
for serverMy in $hostList ;do&lt;br /&gt;
  # Test acces root&lt;br /&gt;
  timeout --kill-after=1 1 ssh -i /etc/ansible/id_intrasys intrasys@${serverMy} &amp;quot;sudo su -c echo 2&amp;gt;&amp;amp;1 &amp;gt;/dev/null&amp;quot; 2&amp;gt;&amp;amp;1 &amp;gt;/dev/null &amp;amp;&amp;amp;(&lt;br /&gt;
&lt;br /&gt;
    sourceDir=&amp;quot;${serverMy}:/&amp;quot;&lt;br /&gt;
    destinationDir=&amp;quot;${backupDir}/${serverMy}/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    oldDir=&amp;quot;$(realpath -mL --relative-base . &amp;quot;${destinationDir}&amp;quot;).old&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    mkdir -p &amp;quot;${destinationDir}&amp;quot; &amp;quot;${oldDir}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    # Backup rpm list&lt;br /&gt;
    ${binDir}/clush.sh ${serverMy} &amp;quot;rpm -qa&amp;quot; \&lt;br /&gt;
      | gzip &amp;gt;&amp;quot;${backupDir}&amp;quot;/${serverMy}.rpmlist.gz&lt;br /&gt;
&lt;br /&gt;
    # Backup cfg files&lt;br /&gt;
    rsync --files-from=&amp;quot;${backupDir}/rsync.list&amp;quot; -abrtv --modify-window=1 --delete --force --backup-dir=&amp;quot;$oldDir&amp;quot; --suffix=&amp;quot;.$(date -u '+%Y-%m-%dT%H_%M_%SZ')&amp;quot; --rsync-path=&amp;quot;sudo /usr/bin/rsync&amp;quot; --rsh=&amp;quot;ssh -i /etc/ansible/id_intrasys -l intrasys&amp;quot; &amp;quot;intrasys@${sourceDir}&amp;quot; &amp;quot;${destinationDir}&amp;quot;&lt;br /&gt;
t  )&lt;br /&gt;
done&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
# initialisation&lt;br /&gt;
binDir=&amp;quot;$(dirname $0)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# &lt;br /&gt;
touch ${cacheFile}&lt;br /&gt;
chown intrasys: ${cacheFile}&lt;br /&gt;
chmod 700 ${cacheFile}&lt;br /&gt;
&lt;br /&gt;
if [ $# -gt 1 ] ;then&lt;br /&gt;
  echo &amp;quot;$2&amp;quot; &amp;gt;${cacheFile}&lt;br /&gt;
  ${binDir}/script.sh &amp;quot;$1&amp;quot; &amp;quot;${cacheFile}&amp;quot;&lt;br /&gt;
else&lt;br /&gt;
  echo &amp;quot;$1&amp;quot; &amp;gt;${cacheFile}&lt;br /&gt;
  ${binDir}/script.sh &amp;quot;${cacheFile}&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
rm -f ${cacheFile}&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
# diff entre serveurs&lt;br /&gt;
# &amp;quot;&amp;lt;code bash&amp;gt;&amp;quot;&lt;br /&gt;
# APA 20180108&lt;br /&gt;
&lt;br /&gt;
# initialisation des variables&lt;br /&gt;
binDir=&amp;quot;$(dirname $0)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# signature du code&lt;br /&gt;
nameBase=&amp;quot;$(echo &amp;quot;$1&amp;quot; | tr -c '[:alnum:]' '_' | cut -c 1-68).$(echo &amp;quot;$1&amp;quot; | md5sum | cut -c 1-2).$(date '+%Y%m%d')&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# si resultat non en cache, lancer le traitement&lt;br /&gt;
[ ! -f &amp;quot;${binDir}/../log/${nameBase}.gz&amp;quot; ] &amp;amp;&amp;amp; (&lt;br /&gt;
  # lancement du code&lt;br /&gt;
  &amp;quot;${binDir}/&amp;quot;clush.sh &amp;quot;$1&amp;quot; &amp;gt;/dev/null&lt;br /&gt;
&lt;br /&gt;
  # Enleve les lignes en doublons par serveur. Puis ne garde que les lignes uniques entre tous les serveurs.&lt;br /&gt;
  for fileName in &amp;quot;${binDir}/../log/old/&amp;quot;*&amp;quot;.${nameBase}.gz&amp;quot; ;do&lt;br /&gt;
    echo &amp;quot;== ${fileName} ==&amp;quot;&lt;br /&gt;
    zcat &amp;quot;${fileName}&amp;quot; \&lt;br /&gt;
      | awk '!seen[$0]++'&lt;br /&gt;
  done \&lt;br /&gt;
    | awk '!seen[$0]++ {lines[i++]=$0}&lt;br /&gt;
      END {for (i in lines) if (seen[lines[i]]&amp;lt;=1) print lines[i]}' \&lt;br /&gt;
        gzip &amp;gt;${cacheFile}2.gz&lt;br /&gt;
&lt;br /&gt;
  # mise en cache&lt;br /&gt;
  mv ${cacheFile}2.gz &amp;quot;${binDir}/../log/${nameBase}.gz&amp;quot;&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
# affiche le resultat&lt;br /&gt;
zcat &amp;quot;${binDir}/../log/${nameBase}.gz&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# nettoyage traitement&lt;br /&gt;
rm -f ${cacheFile}*&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
[ $# -ne 1 ] &amp;amp;&amp;amp; echo &amp;quot;&lt;br /&gt;
# env parameters&lt;br /&gt;
# p : production&lt;br /&gt;
# b : preproduction&lt;br /&gt;
# r : recette&lt;br /&gt;
# t : test&lt;br /&gt;
# d : dev&lt;br /&gt;
&amp;quot; &amp;amp;&amp;amp; exit 1&lt;br /&gt;
&lt;br /&gt;
envParam=$1&lt;br /&gt;
binDir=&amp;quot;$(dirname $0)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
grep &amp;quot;^t&amp;quot; ${binDir}/../env/hosts \&lt;br /&gt;
  | sort -u \&lt;br /&gt;
    | grep -E '^.{11}'&amp;quot;${envParam}&amp;quot;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
binDir=&amp;quot;$(dirname $0)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
filesList=&amp;quot;${binDir}&amp;quot;/../system_restore/rsync.list&lt;br /&gt;
&lt;br /&gt;
[ ! -f &amp;quot;${filesList}&amp;quot;.$(date '+%Y%m%d').gz ] &amp;amp;&amp;amp;(&lt;br /&gt;
&lt;br /&gt;
  cat &amp;quot;${filesList}&amp;quot; |gzip &amp;gt;&amp;quot;${filesList}&amp;quot;.$(date '+%Y%m%d').gz&lt;br /&gt;
&lt;br /&gt;
  ${binDir}/diff.sh 'find /etc -follow -type f -mtime +1 -size -5M -exec md5sum {} \; ;find /boot /.authorized_keys /root /opt -type f -mtime +1 -size -5M -exec md5sum {} \;'&lt;br /&gt;
&lt;br /&gt;
  zcat $(ls -t1 ${binDir}/../log/*find*etc*md5sum*.$(date '+%Y%m%d').gz \&lt;br /&gt;
    |head -1) \&lt;br /&gt;
      |grep -v &amp;quot;^==.*==$&amp;quot; \&lt;br /&gt;
        |sed -r 's/^[0-9a-zA-Z]+ //' \&lt;br /&gt;
          |sort \&lt;br /&gt;
            &amp;gt;&amp;quot;all.${filesList}&amp;quot;&lt;br /&gt;
   cat &amp;quot;all.${filesList}&amp;quot; \&lt;br /&gt;
      |uniq &amp;gt;&amp;quot;${filesList}&amp;quot;&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;less \&amp;quot;${filesList}\&amp;quot;&amp;quot;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
if [ -z &amp;quot;$@&amp;quot; ] ;then&lt;br /&gt;
  MyKey=&amp;quot;-ie critical\|error\|warn\|fail&amp;quot;&lt;br /&gt;
else&lt;br /&gt;
  MyKey=&amp;quot;$@&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
MyBin=&amp;quot;$(basename $0)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
MyTimeOutMin=900&lt;br /&gt;
MyTimeOutMax=3600&lt;br /&gt;
&lt;br /&gt;
# bash colors&lt;br /&gt;
RED='\033[0;31m'&lt;br /&gt;
GREEN='\033[0;32m'&lt;br /&gt;
NC='\033[0m' # No Color&lt;br /&gt;
&lt;br /&gt;
lsof -X 2&amp;gt;/dev/null |grep &amp;quot; REG &amp;quot; |grep -E &amp;quot; [0-9]+w &amp;quot; |grep -o -P &amp;quot;(\/.+)&amp;quot; |sort -g |uniq |grep -v &amp;quot;/${MyBin}.cfg$&amp;quot; &amp;gt;~/${MyBin}.cfg&lt;br /&gt;
&lt;br /&gt;
cacheFile=&amp;quot;/tmp/${MyBin}.$$&amp;quot;&lt;br /&gt;
&lt;br /&gt;
function MyStep1 {&lt;br /&gt;
&amp;gt;${cacheFile}&lt;br /&gt;
&lt;br /&gt;
# 3 derniers jours du mois ou 9h à 17h en jour ouvré&lt;br /&gt;
if [ $(date +%d -d &amp;quot;3 day&amp;quot;) -lt $(date +%d) ] || { [ $(date +%H) -ge 9 ] &amp;amp;&amp;amp; [ $(date +%H) -lt 17 ] &amp;amp;&amp;amp; [ $(date +%u) -lt 6 ] ;} ;then&lt;br /&gt;
  MyTimeOut=$MyTimeOutMin&lt;br /&gt;
else&lt;br /&gt;
  MyTimeOut=$MyTimeOutMax&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
cat ~/${MyBin}.cfg |while read MyLogPath ;do&lt;br /&gt;
  if [ -f &amp;quot;$MyLogPath&amp;quot; ] ;then&lt;br /&gt;
    MyLogElapsed=$(($(date +%s) - $(date +%s -r &amp;quot;$MyLogPath&amp;quot;)))&lt;br /&gt;
&lt;br /&gt;
    if [ &amp;quot;$MyLogElapsed&amp;quot; -lt &amp;quot;$MyTimeOut&amp;quot; ] ;then&lt;br /&gt;
      MyResult=&amp;quot;$(tail -666 &amp;quot;$MyLogPath&amp;quot; 2&amp;gt;/dev/null |strings |grep $MyKey |tail -2 |cut -c1-111)&amp;quot;&lt;br /&gt;
      if [ -z &amp;quot;$MyResult&amp;quot; ] ;then&lt;br /&gt;
        MyResult=&amp;quot;$(tail -2 &amp;quot;$MyLogPath&amp;quot; 2&amp;gt;/dev/null |strings |tail -2 |cut -c1-111)&amp;quot;&lt;br /&gt;
        if [ ! -z &amp;quot;$MyResult&amp;quot; ] ;then&lt;br /&gt;
          echo -e &amp;quot;${NC}== $MyLogPath ==&amp;quot; &amp;gt;&amp;gt;${cacheFile}&lt;br /&gt;
          echo -e &amp;quot;${GREEN}${MyResult}${NC}&amp;quot; &amp;gt;&amp;gt;${cacheFile}&lt;br /&gt;
        fi&lt;br /&gt;
      else&lt;br /&gt;
        echo -e &amp;quot;${NC}== $MyLogPath ==&amp;quot; &amp;gt;&amp;gt;${cacheFile}&lt;br /&gt;
        echo -e &amp;quot;${RED}${MyResult}${NC}&amp;quot; &amp;gt;&amp;gt;${cacheFile}&lt;br /&gt;
      fi&lt;br /&gt;
    fi&lt;br /&gt;
  fi&lt;br /&gt;
done&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
MyStep1&lt;br /&gt;
cat ${cacheFile} |grep -v -w -f ~/${MyBin}.cfg &amp;gt;~/${MyBin}.ref&lt;br /&gt;
&lt;br /&gt;
while true ; do&lt;br /&gt;
  MyStep1&lt;br /&gt;
  diff --changed-group-format='%&amp;gt;' --unchanged-group-format='' ~/${MyBin}.ref ${cacheFile} &amp;gt;${cacheFile}.diff&lt;br /&gt;
  clear&lt;br /&gt;
  cat ${cacheFile}.diff&lt;br /&gt;
  sleep 2&lt;br /&gt;
done&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
# Init&lt;br /&gt;
sourceDir=&amp;quot;$1&amp;quot;&lt;br /&gt;
destinationDir=&amp;quot;$2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
backupDir=&amp;quot;$(realpath -mL --relative-base . &amp;quot;${destinationDir}&amp;quot;).backup&amp;quot;&lt;br /&gt;
&lt;br /&gt;
mkdir -p &amp;quot;${destinationDir}&amp;quot; &amp;quot;${backupDir}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Backup external datas&lt;br /&gt;
rsync -abrtv --modify-window=1 --delete --force --backup-dir=&amp;quot;$backupDir&amp;quot; --suffix=&amp;quot;.$(date -u '+%Y-%m-%dT%H_%M_%SZ')&amp;quot; --rsync-path=&amp;quot;sudo /usr/bin/rsync&amp;quot; --rsh=&amp;quot;ssh -i /etc/ansible/id_intrasys -l intrasys&amp;quot; -x &amp;quot;intrasys@${sourceDir}&amp;quot; &amp;quot;${destinationDir}&amp;quot;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
binDir=&amp;quot;$(dirname $0)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
touch ${cacheFile}&lt;br /&gt;
chown intrasys: ${cacheFile}&lt;br /&gt;
chmod 700 ${cacheFile}&lt;br /&gt;
&lt;br /&gt;
if [ $# -gt 1 ] ;then&lt;br /&gt;
  hostList=$1&lt;br /&gt;
  cat &amp;quot;$2&amp;quot; &amp;gt;${cacheFile}&lt;br /&gt;
else&lt;br /&gt;
  hostList=$(grep &amp;quot;^t&amp;quot; &amp;quot;${binDir}&amp;quot;/../env/hosts |sort -u)&lt;br /&gt;
  cat &amp;quot;$1&amp;quot; &amp;gt;${cacheFile}&lt;br /&gt;
fi  &lt;br /&gt;
&lt;br /&gt;
for serverMy in $hostList ;do&lt;br /&gt;
  cachePath=&amp;quot;${binDir}&amp;quot;/../log/old/${serverMy}.&amp;quot;$(cat ${cacheFile} | tr -c '[:alnum:]' '_' | cut -c 1-68)&amp;quot;.$(md5sum ${cacheFile} | cut -c 1-2).$(date '+%Y%m%d')&lt;br /&gt;
&lt;br /&gt;
  [ ! -f &amp;quot;${cachePath}&amp;quot;.gz ] &amp;amp;&amp;amp;\&lt;br /&gt;
    timeout --kill-after=1 1 ssh -i &amp;quot;${binDir}&amp;quot;/../env/id_intrasys intrasys@${serverMy} &amp;quot;sudo su -c echo 2&amp;gt;&amp;amp;1 &amp;gt;/dev/null&amp;quot; 2&amp;gt;&amp;amp;1 &amp;gt;/dev/null &amp;amp;&amp;amp;(&lt;br /&gt;
      timeout 3 scp -i &amp;quot;${binDir}&amp;quot;/../env/id_intrasys -p ${cacheFile} intrasys@${serverMy}:${cacheFile} 2&amp;gt;&amp;amp;1 &amp;gt;/dev/null &amp;amp;&amp;amp;\&lt;br /&gt;
      timeout 120 ssh -i &amp;quot;${binDir}&amp;quot;/../env/id_intrasys intrasys@${serverMy} &amp;quot;sudo su -c ${cacheFile}&amp;quot; |gzip &amp;gt;&amp;quot;${cachePath}&amp;quot;.gz&lt;br /&gt;
      timeout 3 ssh -i &amp;quot;${binDir}&amp;quot;/../env/id_intrasys intrasys@${serverMy} &amp;quot;rm -f ${cacheFile} 2&amp;gt;/dev/null&amp;quot;)&lt;br /&gt;
  [ -f &amp;quot;${cachePath}&amp;quot;.gz ] &amp;amp;&amp;amp;(&lt;br /&gt;
    echo &amp;quot;== ${serverMy} ==&amp;quot;&lt;br /&gt;
    zcat &amp;quot;${cachePath}&amp;quot;.gz)&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
rm -f ${cacheFile}* 2&amp;gt;/dev/null ;find /tmp -user intrasys -type f -atime +1 -mtime +1 -delete 2&amp;gt;/dev/null&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sfil</name></author>
	</entry>
	<entry>
		<id>https://infocepo.com/wiki/index.php?title=Backup&amp;diff=737</id>
		<title>Backup</title>
		<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=Backup&amp;diff=737"/>
		<updated>2018-01-14T10:04:42Z</updated>

		<summary type="html">&lt;p&gt;Sfil: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
# backup.sh [host]&lt;br /&gt;
&lt;br /&gt;
# Init&lt;br /&gt;
binDir=&amp;quot;$(dirname $0)&amp;quot;&lt;br /&gt;
backupDir=&amp;quot;${binDir}&amp;quot;/../system_restore&lt;br /&gt;
cacheFile=/tmp/$$&lt;br /&gt;
&lt;br /&gt;
if [ $# -gt 1 ] ;then&lt;br /&gt;
  hostList=$1&lt;br /&gt;
  cat &amp;quot;$2&amp;quot; &amp;gt;${cacheFile}&lt;br /&gt;
  fileName=&amp;quot;$2&amp;quot;&lt;br /&gt;
else&lt;br /&gt;
  hostList=$(grep &amp;quot;^t&amp;quot; /etc/ansible/hosts |sort -u)&lt;br /&gt;
  cat &amp;quot;$1&amp;quot; &amp;gt;${cacheFile}&lt;br /&gt;
  fileName=&amp;quot;$1&amp;quot;&lt;br /&gt;
fi  &lt;br /&gt;
&lt;br /&gt;
for serverMy in $hostList ;do&lt;br /&gt;
  # Test acces root&lt;br /&gt;
  timeout --kill-after=1 1 ssh -i /etc/ansible/id_intrasys intrasys@${serverMy} &amp;quot;sudo su -c echo 2&amp;gt;&amp;amp;1 &amp;gt;/dev/null&amp;quot; 2&amp;gt;&amp;amp;1 &amp;gt;/dev/null &amp;amp;&amp;amp;(&lt;br /&gt;
&lt;br /&gt;
    sourceDir=&amp;quot;${serverMy}:/&amp;quot;&lt;br /&gt;
    destinationDir=&amp;quot;${backupDir}/${serverMy}/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    oldDir=&amp;quot;$(realpath -mL --relative-base . &amp;quot;${destinationDir}&amp;quot;).old&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    mkdir -p &amp;quot;${destinationDir}&amp;quot; &amp;quot;${oldDir}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    # Backup rpm list&lt;br /&gt;
    ${binDir}/clush.sh ${serverMy} &amp;quot;rpm -qa&amp;quot; \&lt;br /&gt;
      | gzip &amp;gt;&amp;quot;${backupDir}&amp;quot;/${serverMy}.rpmlist.gz&lt;br /&gt;
&lt;br /&gt;
    # Backup cfg files&lt;br /&gt;
    rsync --files-from=&amp;quot;${backupDir}/rsync.list&amp;quot; -abrtv --modify-window=1 --delete --force --backup-dir=&amp;quot;$oldDir&amp;quot; --suffix=&amp;quot;.$(date -u '+%Y-%m-%dT%H_%M_%SZ')&amp;quot; --rsync-path=&amp;quot;sudo /usr/bin/rsync&amp;quot; --rsh=&amp;quot;ssh -i /etc/ansible/id_intrasys -l intrasys&amp;quot; &amp;quot;intrasys@${sourceDir}&amp;quot; &amp;quot;${destinationDir}&amp;quot;&lt;br /&gt;
t  )&lt;br /&gt;
done&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
# initialisation&lt;br /&gt;
binDir=&amp;quot;$(dirname $0)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# &lt;br /&gt;
touch ${cacheFile}&lt;br /&gt;
chown intrasys: ${cacheFile}&lt;br /&gt;
chmod 700 ${cacheFile}&lt;br /&gt;
&lt;br /&gt;
if [ $# -gt 1 ] ;then&lt;br /&gt;
  echo &amp;quot;$2&amp;quot; &amp;gt;${cacheFile}&lt;br /&gt;
  ${binDir}/script.sh &amp;quot;$1&amp;quot; &amp;quot;${cacheFile}&amp;quot;&lt;br /&gt;
else&lt;br /&gt;
  echo &amp;quot;$1&amp;quot; &amp;gt;${cacheFile}&lt;br /&gt;
  ${binDir}/script.sh &amp;quot;${cacheFile}&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
rm -f ${cacheFile}&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
# diff entre serveurs&lt;br /&gt;
# &amp;quot;&amp;lt;code bash&amp;gt;&amp;quot;&lt;br /&gt;
# APA 20180108&lt;br /&gt;
&lt;br /&gt;
# initialisation des variables&lt;br /&gt;
binDir=&amp;quot;$(dirname $0)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# signature du code&lt;br /&gt;
nameBase=&amp;quot;$(echo &amp;quot;$1&amp;quot; | tr -c '[:alnum:]' '_' | cut -c 1-68).$(echo &amp;quot;$1&amp;quot; | md5sum | cut -c 1-2).$(date '+%Y%m%d')&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# si resultat non en cache, lancer le traitement&lt;br /&gt;
[ ! -f &amp;quot;${binDir}/../log/${nameBase}.gz&amp;quot; ] &amp;amp;&amp;amp; (&lt;br /&gt;
  # lancement du code&lt;br /&gt;
  &amp;quot;${binDir}/&amp;quot;clush.sh &amp;quot;$1&amp;quot; &amp;gt;/dev/null&lt;br /&gt;
&lt;br /&gt;
  # Enleve les lignes en doublons par serveur. Puis ne garde que les lignes uniques entre tous les serveurs.&lt;br /&gt;
  for fileName in &amp;quot;${binDir}/../log/old/&amp;quot;*&amp;quot;.${nameBase}.gz&amp;quot; ;do&lt;br /&gt;
    echo &amp;quot;== ${fileName} ==&amp;quot;&lt;br /&gt;
    zcat &amp;quot;${fileName}&amp;quot; \&lt;br /&gt;
      | awk '!seen[$0]++'&lt;br /&gt;
  done \&lt;br /&gt;
    | awk '!seen[$0]++ {lines[i++]=$0}&lt;br /&gt;
      END {for (i in lines) if (seen[lines[i]]&amp;lt;=2) print lines[i]}' \&lt;br /&gt;
        gzip &amp;gt;${cacheFile}2.gz&lt;br /&gt;
&lt;br /&gt;
  # mise en cache&lt;br /&gt;
  mv ${cacheFile}2.gz &amp;quot;${binDir}/../log/${nameBase}.gz&amp;quot;&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
# affiche le resultat&lt;br /&gt;
zcat &amp;quot;${binDir}/../log/${nameBase}.gz&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# nettoyage traitement&lt;br /&gt;
rm -f ${cacheFile}*&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
[ $# -ne 1 ] &amp;amp;&amp;amp; echo &amp;quot;&lt;br /&gt;
# env parameters&lt;br /&gt;
# p : production&lt;br /&gt;
# b : preproduction&lt;br /&gt;
# r : recette&lt;br /&gt;
# t : test&lt;br /&gt;
# d : dev&lt;br /&gt;
&amp;quot; &amp;amp;&amp;amp; exit 1&lt;br /&gt;
&lt;br /&gt;
envParam=$1&lt;br /&gt;
binDir=&amp;quot;$(dirname $0)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
grep &amp;quot;^t&amp;quot; ${binDir}/../env/hosts \&lt;br /&gt;
  | sort -u \&lt;br /&gt;
    | grep -E '^.{11}'&amp;quot;${envParam}&amp;quot;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
binDir=&amp;quot;$(dirname $0)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
filesList=&amp;quot;${binDir}&amp;quot;/../system_restore/rsync.list&lt;br /&gt;
&lt;br /&gt;
[ ! -f &amp;quot;${filesList}&amp;quot;.$(date '+%Y%m%d').gz ] &amp;amp;&amp;amp;(&lt;br /&gt;
&lt;br /&gt;
  cat &amp;quot;${filesList}&amp;quot; |gzip &amp;gt;&amp;quot;${filesList}&amp;quot;.$(date '+%Y%m%d').gz&lt;br /&gt;
&lt;br /&gt;
  ${binDir}/diff.sh 'find /etc -follow -type f -mtime +1 -size -5M -exec md5sum {} \; ;find /boot /.authorized_keys /root /opt -type f -mtime +1 -size -5M -exec md5sum {} \;'&lt;br /&gt;
&lt;br /&gt;
  zcat $(ls -t1 ${binDir}/../log/*find*etc*md5sum*.$(date '+%Y%m%d').gz \&lt;br /&gt;
    |head -1) \&lt;br /&gt;
      |grep -v &amp;quot;^==.*==$&amp;quot; \&lt;br /&gt;
        |sed -r 's/^[0-9a-zA-Z]+ //' \&lt;br /&gt;
          |sort \&lt;br /&gt;
            &amp;gt;&amp;quot;all.${filesList}&amp;quot;&lt;br /&gt;
   cat &amp;quot;all.${filesList}&amp;quot; \&lt;br /&gt;
      |uniq &amp;gt;&amp;quot;${filesList}&amp;quot;&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;less \&amp;quot;${filesList}\&amp;quot;&amp;quot;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
if [ -z &amp;quot;$@&amp;quot; ] ;then&lt;br /&gt;
  MyKey=&amp;quot;-ie critical\|error\|warn\|fail&amp;quot;&lt;br /&gt;
else&lt;br /&gt;
  MyKey=&amp;quot;$@&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
MyBin=&amp;quot;$(basename $0)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
MyTimeOutMin=900&lt;br /&gt;
MyTimeOutMax=3600&lt;br /&gt;
&lt;br /&gt;
# bash colors&lt;br /&gt;
RED='\033[0;31m'&lt;br /&gt;
GREEN='\033[0;32m'&lt;br /&gt;
NC='\033[0m' # No Color&lt;br /&gt;
&lt;br /&gt;
lsof -X 2&amp;gt;/dev/null |grep &amp;quot; REG &amp;quot; |grep -E &amp;quot; [0-9]+w &amp;quot; |grep -o -P &amp;quot;(\/.+)&amp;quot; |sort -g |uniq |grep -v &amp;quot;/${MyBin}.cfg$&amp;quot; &amp;gt;~/${MyBin}.cfg&lt;br /&gt;
&lt;br /&gt;
cacheFile=&amp;quot;/tmp/${MyBin}.$$&amp;quot;&lt;br /&gt;
&lt;br /&gt;
function MyStep1 {&lt;br /&gt;
&amp;gt;${cacheFile}&lt;br /&gt;
&lt;br /&gt;
# 3 derniers jours du mois ou 9h à 17h en jour ouvré&lt;br /&gt;
if [ $(date +%d -d &amp;quot;3 day&amp;quot;) -lt $(date +%d) ] || { [ $(date +%H) -ge 9 ] &amp;amp;&amp;amp; [ $(date +%H) -lt 17 ] &amp;amp;&amp;amp; [ $(date +%u) -lt 6 ] ;} ;then&lt;br /&gt;
  MyTimeOut=$MyTimeOutMin&lt;br /&gt;
else&lt;br /&gt;
  MyTimeOut=$MyTimeOutMax&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
cat ~/${MyBin}.cfg |while read MyLogPath ;do&lt;br /&gt;
  if [ -f &amp;quot;$MyLogPath&amp;quot; ] ;then&lt;br /&gt;
    MyLogElapsed=$(($(date +%s) - $(date +%s -r &amp;quot;$MyLogPath&amp;quot;)))&lt;br /&gt;
&lt;br /&gt;
    if [ &amp;quot;$MyLogElapsed&amp;quot; -lt &amp;quot;$MyTimeOut&amp;quot; ] ;then&lt;br /&gt;
      MyResult=&amp;quot;$(tail -666 &amp;quot;$MyLogPath&amp;quot; 2&amp;gt;/dev/null |strings |grep $MyKey |tail -2 |cut -c1-111)&amp;quot;&lt;br /&gt;
      if [ -z &amp;quot;$MyResult&amp;quot; ] ;then&lt;br /&gt;
        MyResult=&amp;quot;$(tail -2 &amp;quot;$MyLogPath&amp;quot; 2&amp;gt;/dev/null |strings |tail -2 |cut -c1-111)&amp;quot;&lt;br /&gt;
        if [ ! -z &amp;quot;$MyResult&amp;quot; ] ;then&lt;br /&gt;
          echo -e &amp;quot;${NC}== $MyLogPath ==&amp;quot; &amp;gt;&amp;gt;${cacheFile}&lt;br /&gt;
          echo -e &amp;quot;${GREEN}${MyResult}${NC}&amp;quot; &amp;gt;&amp;gt;${cacheFile}&lt;br /&gt;
        fi&lt;br /&gt;
      else&lt;br /&gt;
        echo -e &amp;quot;${NC}== $MyLogPath ==&amp;quot; &amp;gt;&amp;gt;${cacheFile}&lt;br /&gt;
        echo -e &amp;quot;${RED}${MyResult}${NC}&amp;quot; &amp;gt;&amp;gt;${cacheFile}&lt;br /&gt;
      fi&lt;br /&gt;
    fi&lt;br /&gt;
  fi&lt;br /&gt;
done&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
MyStep1&lt;br /&gt;
cat ${cacheFile} |grep -v -w -f ~/${MyBin}.cfg &amp;gt;~/${MyBin}.ref&lt;br /&gt;
&lt;br /&gt;
while true ; do&lt;br /&gt;
  MyStep1&lt;br /&gt;
  diff --changed-group-format='%&amp;gt;' --unchanged-group-format='' ~/${MyBin}.ref ${cacheFile} &amp;gt;${cacheFile}.diff&lt;br /&gt;
  clear&lt;br /&gt;
  cat ${cacheFile}.diff&lt;br /&gt;
  sleep 2&lt;br /&gt;
done&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
# Init&lt;br /&gt;
sourceDir=&amp;quot;$1&amp;quot;&lt;br /&gt;
destinationDir=&amp;quot;$2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
backupDir=&amp;quot;$(realpath -mL --relative-base . &amp;quot;${destinationDir}&amp;quot;).backup&amp;quot;&lt;br /&gt;
&lt;br /&gt;
mkdir -p &amp;quot;${destinationDir}&amp;quot; &amp;quot;${backupDir}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Backup external datas&lt;br /&gt;
rsync -abrtv --modify-window=1 --delete --force --backup-dir=&amp;quot;$backupDir&amp;quot; --suffix=&amp;quot;.$(date -u '+%Y-%m-%dT%H_%M_%SZ')&amp;quot; --rsync-path=&amp;quot;sudo /usr/bin/rsync&amp;quot; --rsh=&amp;quot;ssh -i /etc/ansible/id_intrasys -l intrasys&amp;quot; -x &amp;quot;intrasys@${sourceDir}&amp;quot; &amp;quot;${destinationDir}&amp;quot;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
binDir=&amp;quot;$(dirname $0)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
touch ${cacheFile}&lt;br /&gt;
chown intrasys: ${cacheFile}&lt;br /&gt;
chmod 700 ${cacheFile}&lt;br /&gt;
&lt;br /&gt;
if [ $# -gt 1 ] ;then&lt;br /&gt;
  hostList=$1&lt;br /&gt;
  cat &amp;quot;$2&amp;quot; &amp;gt;${cacheFile}&lt;br /&gt;
else&lt;br /&gt;
  hostList=$(grep &amp;quot;^t&amp;quot; &amp;quot;${binDir}&amp;quot;/../env/hosts |sort -u)&lt;br /&gt;
  cat &amp;quot;$1&amp;quot; &amp;gt;${cacheFile}&lt;br /&gt;
fi  &lt;br /&gt;
&lt;br /&gt;
for serverMy in $hostList ;do&lt;br /&gt;
  cachePath=&amp;quot;${binDir}&amp;quot;/../log/old/${serverMy}.&amp;quot;$(cat ${cacheFile} | tr -c '[:alnum:]' '_' | cut -c 1-68)&amp;quot;.$(md5sum ${cacheFile} | cut -c 1-2).$(date '+%Y%m%d')&lt;br /&gt;
&lt;br /&gt;
  [ ! -f &amp;quot;${cachePath}&amp;quot;.gz ] &amp;amp;&amp;amp;\&lt;br /&gt;
    timeout --kill-after=1 1 ssh -i &amp;quot;${binDir}&amp;quot;/../env/id_intrasys intrasys@${serverMy} &amp;quot;sudo su -c echo 2&amp;gt;&amp;amp;1 &amp;gt;/dev/null&amp;quot; 2&amp;gt;&amp;amp;1 &amp;gt;/dev/null &amp;amp;&amp;amp;(&lt;br /&gt;
      timeout 3 scp -i &amp;quot;${binDir}&amp;quot;/../env/id_intrasys -p ${cacheFile} intrasys@${serverMy}:${cacheFile} 2&amp;gt;&amp;amp;1 &amp;gt;/dev/null &amp;amp;&amp;amp;\&lt;br /&gt;
      timeout 120 ssh -i &amp;quot;${binDir}&amp;quot;/../env/id_intrasys intrasys@${serverMy} &amp;quot;sudo su -c ${cacheFile}&amp;quot; |gzip &amp;gt;&amp;quot;${cachePath}&amp;quot;.gz&lt;br /&gt;
      timeout 3 ssh -i &amp;quot;${binDir}&amp;quot;/../env/id_intrasys intrasys@${serverMy} &amp;quot;rm -f ${cacheFile} 2&amp;gt;/dev/null&amp;quot;)&lt;br /&gt;
  [ -f &amp;quot;${cachePath}&amp;quot;.gz ] &amp;amp;&amp;amp;(&lt;br /&gt;
    echo &amp;quot;== ${serverMy} ==&amp;quot;&lt;br /&gt;
    zcat &amp;quot;${cachePath}&amp;quot;.gz)&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
rm -f ${cacheFile}* 2&amp;gt;/dev/null ;find /tmp -user intrasys -type f -atime +1 -mtime +1 -delete 2&amp;gt;/dev/null&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sfil</name></author>
	</entry>
</feed>