<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://infocepo.com/wiki/index.php?action=history&amp;feed=atom&amp;title=ServerDiff.sh</id>
	<title>ServerDiff.sh - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://infocepo.com/wiki/index.php?action=history&amp;feed=atom&amp;title=ServerDiff.sh"/>
	<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=ServerDiff.sh&amp;action=history"/>
	<updated>2026-04-26T18:41:07Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.13</generator>
	<entry>
		<id>https://infocepo.com/wiki/index.php?title=ServerDiff.sh&amp;diff=1109&amp;oldid=prev</id>
		<title>Tcepo at 11:14, 14 August 2022</title>
		<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=ServerDiff.sh&amp;diff=1109&amp;oldid=prev"/>
		<updated>2022-08-14T11:14:53Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 13:14, 14 August 2022&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l2&quot;&gt;Line 2:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 2:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#!/bin/bash&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#!/bin/bash&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# diff entre serveurs&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# diff entre serveurs&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# &amp;quot;serverCheck&amp;quot; [srv1 srv2 ... srvn]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# &amp;quot;serverCheck&amp;quot; [srv1 srv2 ... srvn&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;] [ref1 ref2 ... refn&lt;/ins&gt;]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# APA 20180325&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# APA 20180325&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# APA 20190419 refactory&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# APA 20190419 refactory&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Tcepo</name></author>
	</entry>
	<entry>
		<id>https://infocepo.com/wiki/index.php?title=ServerDiff.sh&amp;diff=813&amp;oldid=prev</id>
		<title>Tcepo: Created page with &quot;&lt;syntaxhighlight lang=&quot;bash&quot;&gt; #!/bin/bash # diff entre serveurs # &quot;serverCheck&quot; [srv1 srv2 ... srvn] # APA 20180325 # APA 20190419 refactory # APA 20191107 clean # APA 2021102...&quot;</title>
		<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=ServerDiff.sh&amp;diff=813&amp;oldid=prev"/>
		<updated>2022-02-26T05:44:40Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt; #!/bin/bash # diff entre serveurs # &amp;quot;serverCheck&amp;quot; [srv1 srv2 ... srvn] # APA 20180325 # APA 20190419 refactory # APA 20191107 clean # APA 2021102...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# diff entre serveurs&lt;br /&gt;
# &amp;quot;serverCheck&amp;quot; [srv1 srv2 ... srvn]&lt;br /&gt;
# APA 20180325&lt;br /&gt;
# APA 20190419 refactory&lt;br /&gt;
# APA 20191107 clean&lt;br /&gt;
# APA 20211020 improve file and link check&lt;br /&gt;
&lt;br /&gt;
# initialisation des variables&lt;br /&gt;
  serverCheck=&amp;quot;$1&amp;quot;&lt;br /&gt;
  serverRef=&amp;quot;$2&amp;quot;&lt;br /&gt;
  if [ -z &amp;quot;${serverRef}&amp;quot; ]  ;then&lt;br /&gt;
    $0 &amp;quot;$1&amp;quot; &amp;quot;$(hostList.sh all |grep -vEx &amp;quot;$(hostList.sh &amp;quot;$1&amp;quot;)&amp;quot; |shuf |head -7 |tr '\n' ' ' )&amp;quot;&lt;br /&gt;
    exit 0&lt;br /&gt;
  fi&lt;br /&gt;
  baseDir=&amp;quot;$(realpath &amp;quot;$(dirname $0)&amp;quot;/..)&amp;quot;&lt;br /&gt;
  cacheFile=/tmp/&amp;quot;$(basename $0)&amp;quot;$$&lt;br /&gt;
  logFile=&amp;quot;${baseDir}&amp;quot;/log/&amp;quot;$(echo &amp;quot;${serverCheck}&amp;quot; | tr -c '[:alnum:]' '_' | cut -c 1-68 )&amp;quot;VS&amp;quot;$(echo &amp;quot;${serverRef}&amp;quot; | tr -c '[:alnum:]' '_' | cut -c 1-68 )&amp;quot;.$(date -u '+%Y-%m-%dT%H_%M_%SZ')&lt;br /&gt;
&lt;br /&gt;
(&lt;br /&gt;
echo '&amp;quot;'${serverCheck}'&amp;quot; VS &amp;quot;'${serverRef}'&amp;quot;'&lt;br /&gt;
echo&lt;br /&gt;
echo ${logFile} &amp;gt;&amp;amp;2&lt;br /&gt;
echo &amp;gt;&amp;amp;2&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;= HW diff =&amp;quot;&lt;br /&gt;
#  diff.sh &amp;quot;${serverCheck}&amp;quot; &amp;quot;${serverRef}&amp;quot; 'dmidecode'&lt;br /&gt;
echo &amp;quot;== CPU power audit ==&amp;quot;&lt;br /&gt;
 diff.sh &amp;quot;${serverCheck}&amp;quot; &amp;quot;${serverRef}&amp;quot; 'lscpu |grep -E &amp;quot;^CPU\(s\):|^BogoMIPS:&amp;quot; |awk &amp;quot;BEGIN{val=1};{val = val*\$2};END{print int(val/1000)}&amp;quot;'&lt;br /&gt;
echo &amp;quot;== memory ==&amp;quot;&lt;br /&gt;
 diff.sh &amp;quot;${serverCheck}&amp;quot; &amp;quot;${serverRef}&amp;quot; 'free -h |grep -iE &amp;quot;^Mem:|^Swap:&amp;quot; |sed -rn &amp;quot;s#^((Mem|Swap):[[:space:]]+[[:graph:]]+).*#\1#p&amp;quot;'&lt;br /&gt;
&lt;br /&gt;
echo&lt;br /&gt;
echo &amp;quot;= Kernel diff =&amp;quot;&lt;br /&gt;
  diff.sh &amp;quot;${serverCheck}&amp;quot; &amp;quot;${serverRef}&amp;quot; 'uname -r'&lt;br /&gt;
&lt;br /&gt;
echo&lt;br /&gt;
echo &amp;quot;= partitions diff =&amp;quot;&lt;br /&gt;
#  diff.sh &amp;quot;${serverCheck}&amp;quot; &amp;quot;${serverRef}&amp;quot; 'cat /proc/partitions |sed -rn &amp;quot;s#.* ([[:graph:]]+) ([[:graph:]]+)\$#\1 \2#p&amp;quot;'&lt;br /&gt;
#  diff.sh &amp;quot;${serverCheck}&amp;quot; &amp;quot;${serverRef}&amp;quot; 'mount |grep ^/dev/ |cut -d' ' -f3 |grep -vwE '^/(mnt|media)' |while read lineMy ;do df -h &amp;quot;${lineMy}&amp;quot; ;done |sed -rn &amp;quot;s#^[[:graph:]]+[[:space:]]+([[:graph:]]+) [^/]+(/.*)\$#\1 \2#p&amp;quot;'&lt;br /&gt;
#  diff.sh &amp;quot;${serverCheck}&amp;quot; &amp;quot;${serverRef}&amp;quot; &amp;quot;mount |grep -E 'vg_root|rhel_' |grep ^/dev/ |cut -d' ' -f3 |grep -vwE '^/(mnt|media)' |while read lineMy ;do df -h \${lineMy} ;done |sed -rn 's#^[[:graph:]]+[[:space:]]+([[:graph:]]+) [^/]+(/.*)\$#\1 \2#p'&amp;quot;&lt;br /&gt;
  diff.sh &amp;quot;${serverCheck}&amp;quot; &amp;quot;${serverRef}&amp;quot; &amp;quot;mount |grep ^/dev/ |cut -d' ' -f3 |grep -vwE '^/(mnt|media)' |while read lineMy ;do df -h \${lineMy} ;done |sed -rn 's#^[[:graph:]]+[[:space:]]+([[:graph:]]+) [^/]+(/.*)\$#\1 \2#p'&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#echo&lt;br /&gt;
#echo &amp;quot;= FS diff =&amp;quot;&lt;br /&gt;
#  diff.sh &amp;quot;${serverCheck}&amp;quot; &amp;quot;${serverRef}&amp;quot; 'xfs_info /'&lt;br /&gt;
&lt;br /&gt;
echo&lt;br /&gt;
echo &amp;quot;= RMP diff =&amp;quot;&lt;br /&gt;
  diff.sh &amp;quot;${serverCheck}&amp;quot; &amp;quot;${serverRef}&amp;quot; 'rpm -qa --qf &amp;quot;%{n}.%{arch}\n&amp;quot; |sed -r &amp;quot;s#\.(noarch|x86_64)\$##&amp;quot; |sort -u'&lt;br /&gt;
&lt;br /&gt;
echo&lt;br /&gt;
echo &amp;quot;= services =&amp;quot;&lt;br /&gt;
  diff.sh &amp;quot;${serverCheck}&amp;quot; &amp;quot;${serverRef}&amp;quot; '(systemctl list-unit-files 2&amp;gt;/dev/null |sort -u ;chkconfig --list 2&amp;gt;/dev/null |sort -u ) |grep -Ev &amp;quot;^session-|^user-&amp;quot; |grep -Ew &amp;quot;enabled|on&amp;quot; |sed -rn &amp;quot;s#^[[:space:]]*([[:graph:]]+)[[:space:]].*\$#\1#p&amp;quot; |sed -r &amp;quot;s#(\.service|\.target|\.socket)##g&amp;quot;' 2&amp;gt;/dev/null&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;amp;2 echo&lt;br /&gt;
&amp;gt;&amp;amp;2 echo &amp;quot;# listing files diff step&amp;quot;&lt;br /&gt;
&amp;gt;&amp;amp;2 echo &amp;quot;## listing cfg files&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  echo&lt;br /&gt;
  echo &amp;quot;= files =&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# missing recent after boot&lt;br /&gt;
&lt;br /&gt;
cat &amp;lt;&amp;lt;EOT &amp;gt;&amp;quot;${cacheFile}&amp;quot;.sh&lt;br /&gt;
uptimeDays=\$(((\$(date +%s) - \$(date -d&amp;quot;\$(who -b |sed 's# *system boot *##')&amp;quot; +%s))/86400+1))&lt;br /&gt;
uptimeDays0=\$(((\$(date +%s) - \$(date -d&amp;quot;\$(who -b |sed 's# *system boot *##')&amp;quot; +%s))/86400-1))&lt;br /&gt;
sync&lt;br /&gt;
(&lt;br /&gt;
  #find /boot -type f -size -9k -mmin +60 2&amp;gt;/dev/null&lt;br /&gt;
  find /etc ! -path '/etc/lvm/backup/*' ! -path '/etc/lvm/archive/*' -type f -atime -\$uptimeDays -size -9k -mmin +6 -exec grep -Iq . {} \\; -and -print 2&amp;gt;/dev/null |head -4096&lt;br /&gt;
  #find /etc ! -path '/etc/lvm/backup/*' ! -path '/etc/lvm/archive/*' -type f -atime -1 -size -9k -mmin +6 2&amp;gt;/dev/null&lt;br /&gt;
  timeout --signal=9 16 find \$(mount |grep ^/dev/ |grep -E &amp;quot;vg_root|rhel_&amp;quot; |cut -d' ' -f3 |grep -vwE '^/(mnt|media)' ) \&lt;br /&gt;
   -xdev ! -path '*/log/*' ! -path '/boot/*' ! -path '/etc/*' ! -path '/var/lib/*' -type f -atime -\$uptimeDays -size -9k -mmin +6 -exec grep -Iq . {} \\; -and -print 2&amp;gt;/dev/null \&lt;br /&gt;
   |grep -vwEi '(log|logs|deb|dpkg|rpm|yum|cache|tmp|bash_history|old|bck|back)' |head -8192&lt;br /&gt;
  #timeout --signal=9 12 find \$(mount |grep ^/dev/ |grep -E &amp;quot;vg_root|rhel_&amp;quot; |cut -d' ' -f3 |grep -vwE '^/(mnt|media)' ) \&lt;br /&gt;
   -xdev ! -path '*/log/*' ! -path '/boot/*' ! -path '/etc/*' ! -path '/var/lib/*' -type f -atime -1 -size -9k -mmin +6 2&amp;gt;/dev/null \&lt;br /&gt;
   |grep -vwEi '(log|logs|deb|dpkg|rpm|yum|cache|tmp|bash_history|old|bck|back)' |head -2048&lt;br /&gt;
  timeout --signal=9 16 find \$(mount |grep ^/dev/ |grep -vE &amp;quot;vg_root|rhel_&amp;quot; |cut -d' ' -f3 |grep -vwE '^/(mnt|media)' ) \&lt;br /&gt;
   -xdev ! -path '*/log/*' ! -path '/boot/*' ! -path '/etc/*' ! -path '/var/lib/*' -type f -atime -\$uptimeDays -size -9k -mmin +6 -exec grep -Iq . {} \\; -and -print 2&amp;gt;/dev/null \&lt;br /&gt;
   |grep -vwEi '(log|logs|deb|dpkg|rpm|yum|cache|tmp|bash_history|old|bck|back|trace)' |head -8192&lt;br /&gt;
  #timeout --signal=9 12 find \$(mount |grep ^/dev/ |grep -vE &amp;quot;vg_root|rhel_&amp;quot; |cut -d' ' -f3 |grep -vwE '^/(mnt|media)' ) \&lt;br /&gt;
   -xdev ! -path '*/log/*' ! -path '/boot/*' ! -path '/etc/*' ! -path '/var/lib/*' -type f -atime -1 -size -9k -mmin +6 2&amp;gt;/dev/null \&lt;br /&gt;
   |grep -vwEi '(log|logs|deb|dpkg|rpm|yum|cache|tmp|bash_history|old|bck|back|trace)' |head -2048&lt;br /&gt;
)|grep -vE '(\\.rpmnew|\\.rpmsave|-|~)\$' |sort -u |tee /tmp/cfgList&lt;br /&gt;
EOT&lt;br /&gt;
&lt;br /&gt;
  .scriptDiff.sh &amp;quot;${serverCheck}&amp;quot; &amp;quot;${serverRef}&amp;quot; &amp;quot;${cacheFile}&amp;quot;.sh |grep -v &amp;quot;^==&amp;quot; |awk '!seen[$0]++' &amp;gt;&amp;quot;${cacheFile}&amp;quot;.missing&lt;br /&gt;
&lt;br /&gt;
# cp missing recent after boot&lt;br /&gt;
( echo &amp;quot;cat &amp;lt;&amp;lt;EOT &amp;gt;/tmp/cfgList-missing&amp;quot;&lt;br /&gt;
  cat &amp;quot;${cacheFile}&amp;quot;.missing&lt;br /&gt;
  echo &amp;quot;EOT&amp;quot;) &amp;gt;&amp;quot;${cacheFile}&amp;quot;.missing2&lt;br /&gt;
  mv -f &amp;quot;${cacheFile}&amp;quot;.missing2 &amp;quot;${cacheFile}&amp;quot;.missing&lt;br /&gt;
  script.sh &amp;quot;${serverCheck} ${serverRef}&amp;quot; &amp;quot;${cacheFile}&amp;quot;.missing&lt;br /&gt;
&lt;br /&gt;
# missing infra&lt;br /&gt;
  diff.sh &amp;quot;${serverCheck}&amp;quot; &amp;quot;${serverRef}&amp;quot; 'cat /tmp/cfgList-missing |while read fileName ;do [ -f &amp;quot;${fileName}&amp;quot; ] &amp;amp;&amp;amp;[ ! -L &amp;quot;${fileName}&amp;quot; ] &amp;amp;&amp;amp;(echo &amp;quot;${fileName}&amp;quot; ) ;done ;rm -f /tmp/cfgList-missing'&lt;br /&gt;
# \&lt;br /&gt;
#    |grep -vxf &amp;quot;${baseDir}&amp;quot;/system_restore/rsync.list&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;amp;2 echo&lt;br /&gt;
&amp;gt;&amp;amp;2 echo &amp;quot;# calculing md5sum&amp;quot;&lt;br /&gt;
  ssh.sh &amp;quot;${serverCheck} ${serverRef}&amp;quot; 'cat /tmp/cfgList |while read fileName ;do md5sum &amp;quot;${fileName}&amp;quot; 2&amp;gt;/dev/null ||sudo -n md5sum &amp;quot;${fileName}&amp;quot; 2&amp;gt;/dev/null ;done ' &amp;gt;&amp;quot;${cacheFile}&amp;quot;.md5sum&lt;br /&gt;
&lt;br /&gt;
# cfg diff details if &amp;gt;=2 cfg&lt;br /&gt;
&amp;gt;&amp;amp;2 echo &amp;quot;# formating&amp;quot;&lt;br /&gt;
cat &amp;quot;${cacheFile}&amp;quot;.md5sum \&lt;br /&gt;
  |grep -v &amp;quot;^==.*==$&amp;quot; \&lt;br /&gt;
    |awk '!seen[$0]++' \&lt;br /&gt;
      |sed -r 's/^[0-9a-zA-Z]+ +//' \&lt;br /&gt;
        &amp;gt;&amp;quot;${cacheFile}&amp;quot;.files&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;amp;2 echo &amp;quot;# removing uniq files&amp;quot;&lt;br /&gt;
awk 'NR == FNR {count[$0]++; next}; count[$0] &amp;gt;= 2' &amp;quot;${cacheFile}&amp;quot;.files &amp;quot;${cacheFile}&amp;quot;.files \&lt;br /&gt;
  |sort -ru &amp;gt;&amp;quot;${cacheFile}&amp;quot;.diff&lt;br /&gt;
#    |grep -vxf &amp;quot;${baseDir}&amp;quot;/system_restore/rsync.list &amp;gt;&amp;quot;${cacheFile}&amp;quot;.diff&lt;br /&gt;
&lt;br /&gt;
echo&lt;br /&gt;
echo &amp;quot;= diff cfg =&amp;quot;&lt;br /&gt;
while [ -s &amp;quot;${cacheFile}&amp;quot;.diff ] ;do&lt;br /&gt;
  fileName=&amp;quot;$(tail -1 &amp;quot;${cacheFile}&amp;quot;.diff)&amp;quot;&lt;br /&gt;
  sed -i '$ d' &amp;quot;${cacheFile}&amp;quot;.diff&lt;br /&gt;
&lt;br /&gt;
  timeout --signal=9 45 diff.sh &amp;quot;${serverCheck}&amp;quot; &amp;quot;${serverRef}&amp;quot; 'grep -x &amp;quot;'&amp;quot;${fileName}&amp;quot;'&amp;quot; /tmp/cfgList 2&amp;gt;/dev/null &amp;gt;/dev/null &amp;amp;&amp;amp;( ls -dZ &amp;quot;'&amp;quot;${fileName}&amp;quot;'&amp;quot; ;cat &amp;quot;'&amp;quot;${fileName}&amp;quot;'&amp;quot; ||sudo -n cat &amp;quot;'&amp;quot;${fileName}&amp;quot;'&amp;quot; )|grep -vE &amp;quot;^[[:space:]]*#&amp;quot;' |grep -v ' no result ==$' |\&lt;br /&gt;
  awk -v titleStart=&amp;quot;===&amp;quot; '{if ($1 == titleStart)&lt;br /&gt;
    title=$0 ;&lt;br /&gt;
  else&lt;br /&gt;
    {if (title != &amp;quot;&amp;quot;)&lt;br /&gt;
      print title ;&lt;br /&gt;
    title=&amp;quot;&amp;quot; ;&lt;br /&gt;
    print $0 ;}}' &amp;gt;&amp;quot;${cacheFile}&amp;quot;.result&lt;br /&gt;
  if [[ $(cat &amp;quot;${cacheFile}&amp;quot;.result |wc -l) -ge 2 ]] ;then&lt;br /&gt;
    echo&lt;br /&gt;
    echo &amp;quot;= ${fileName} =&amp;quot;&lt;br /&gt;
    cat &amp;quot;${cacheFile}&amp;quot;.result&lt;br /&gt;
  fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;amp;2 echo&lt;br /&gt;
&amp;gt;&amp;amp;2 echo &amp;quot;# listing links diff step&amp;quot;&lt;br /&gt;
&amp;gt;&amp;amp;2 echo &amp;quot;## listing links&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  echo&lt;br /&gt;
  echo &amp;quot;= links =&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# missing recent after boot&lt;br /&gt;
cat &amp;lt;&amp;lt;EOT &amp;gt;&amp;quot;${cacheFile}&amp;quot;.sh&lt;br /&gt;
uptimeDays=\$(((\$(date +%s) - \$(date -d&amp;quot;\$(who -b |sed 's# *system boot *##')&amp;quot; +%s))/86400+1))&lt;br /&gt;
(&lt;br /&gt;
  find /etc ! -path '/etc/lvm/backup/*' ! -path '/etc/lvm/archive/*' -type l -atime -\$uptimeDays 2&amp;gt;/dev/null&lt;br /&gt;
)|grep -vE '(-|~)\$' |sort -u |tee /tmp/linksList&lt;br /&gt;
EOT&lt;br /&gt;
&lt;br /&gt;
  .scriptDiff.sh &amp;quot;${serverCheck}&amp;quot; &amp;quot;${serverRef}&amp;quot; &amp;quot;${cacheFile}&amp;quot;.sh |grep -v &amp;quot;^==&amp;quot; |awk '!seen[$0]++' &amp;gt;&amp;quot;${cacheFile}&amp;quot;.missing&lt;br /&gt;
&lt;br /&gt;
# cp missing recent after boot&lt;br /&gt;
( echo &amp;quot;cat &amp;lt;&amp;lt;EOT &amp;gt;/tmp/linksList-missing&amp;quot;&lt;br /&gt;
  cat &amp;quot;${cacheFile}&amp;quot;.missing&lt;br /&gt;
  echo &amp;quot;EOT&amp;quot;) &amp;gt;&amp;quot;${cacheFile}&amp;quot;.missing2&lt;br /&gt;
  mv &amp;quot;${cacheFile}&amp;quot;.missing2 &amp;quot;${cacheFile}&amp;quot;.missing&lt;br /&gt;
  script.sh &amp;quot;${serverCheck} ${serverRef}&amp;quot; &amp;quot;${cacheFile}&amp;quot;.missing&lt;br /&gt;
&lt;br /&gt;
# missing infra&lt;br /&gt;
  diff.sh &amp;quot;${serverCheck}&amp;quot; &amp;quot;${serverRef}&amp;quot; 'cat /tmp/linksList-missing |while read fileName ;do [ -L &amp;quot;${fileName}&amp;quot; ] &amp;amp;&amp;amp;(stat -c%N &amp;quot;${fileName}&amp;quot; ) ;done ;rm -f /tmp/linksList-missing'&lt;br /&gt;
&lt;br /&gt;
# clean&lt;br /&gt;
rm -f /tmp/&amp;quot;$(basename $0)&amp;quot;$$* 2&amp;gt;/dev/null&lt;br /&gt;
&lt;br /&gt;
) |tee &amp;quot;${logFile}&amp;quot;&lt;br /&gt;
echo &amp;gt;&amp;amp;2&lt;br /&gt;
echo ${logFile} &amp;gt;&amp;amp;2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tcepo</name></author>
	</entry>
</feed>