<?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=Scrip.sh</id>
	<title>Scrip.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=Scrip.sh"/>
	<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=Scrip.sh&amp;action=history"/>
	<updated>2026-04-27T00:13:50Z</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=Scrip.sh&amp;diff=969&amp;oldid=prev</id>
		<title>Tcepo at 23:27, 8 March 2022</title>
		<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=Scrip.sh&amp;diff=969&amp;oldid=prev"/>
		<updated>2022-03-08T23:27:46Z</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 01:27, 9 March 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-l22&quot;&gt;Line 22:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 22:&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;cat &amp;quot;${@: -1}&amp;quot; &amp;gt;&amp;quot;${cacheFile}&amp;quot;&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;cat &amp;quot;${@: -1}&amp;quot; &amp;gt;&amp;quot;${cacheFile}&amp;quot;&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;chmod 500 &amp;quot;${cacheFile}&amp;quot;&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;chmod 500 &amp;quot;${cacheFile}&amp;quot;&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;chown &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;intrasys&lt;/del&gt;: &amp;quot;${cacheFile}&amp;quot;&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;chown &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;infocepo&lt;/ins&gt;: &amp;quot;${cacheFile}&amp;quot;&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;# store script&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;# store script&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;nameBase=&amp;quot;$(cat ${cacheFile} |tr -c '[:alnum:]' '_' |cut -c 1-68 |tr -s '_' |sed -r 's#_$##' )&amp;quot;-$(md5sum ${cacheFile} |cut -c 1-2 )&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;nameBase=&amp;quot;$(cat ${cacheFile} |tr -c '[:alnum:]' '_' |cut -c 1-68 |tr -s '_' |sed -r 's#_$##' )&amp;quot;-$(md5sum ${cacheFile} |cut -c 1-2 )&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=Scrip.sh&amp;diff=912&amp;oldid=prev</id>
		<title>Tcepo: Created page with &quot;&lt;syntaxhighlight lang=&quot;bash&quot;&gt; #!/bin/sh # &lt;&lt;srv1&gt; &lt;srv2&gt;... &lt;srvN&gt;|all&gt; &quot;codeFile&quot;  [ $# -lt 2 ] &amp;&amp;exit  # initialisation des variables baseDir=&quot;$(realpath &quot;$(dirname $0)&quot;/..)...&quot;</title>
		<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=Scrip.sh&amp;diff=912&amp;oldid=prev"/>
		<updated>2022-03-04T19:09:30Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt; #!/bin/sh # &amp;lt;&amp;lt;srv1&amp;gt; &amp;lt;srv2&amp;gt;... &amp;lt;srvN&amp;gt;|all&amp;gt; &amp;quot;codeFile&amp;quot;  [ $# -lt 2 ] &amp;amp;&amp;amp;exit  # initialisation des variables baseDir=&amp;quot;$(realpath &amp;quot;$(dirname $0)&amp;quot;/..)...&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/sh&lt;br /&gt;
# &amp;lt;&amp;lt;srv1&amp;gt; &amp;lt;srv2&amp;gt;... &amp;lt;srvN&amp;gt;|all&amp;gt; &amp;quot;codeFile&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[ $# -lt 2 ] &amp;amp;&amp;amp;exit&lt;br /&gt;
&lt;br /&gt;
# initialisation des variables&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;
&lt;br /&gt;
# ssh parameters&lt;br /&gt;
sshUser=&amp;quot;$(cat &amp;quot;${baseDir}&amp;quot;/env/sshUser )&amp;quot;&lt;br /&gt;
sshKey=&amp;quot;${baseDir}&amp;quot;/env/sshKey-&amp;quot;${sshUser}&amp;quot;&lt;br /&gt;
sshOpt='-l '&amp;quot;${sshUser}&amp;quot;' -i '&amp;quot;${sshKey}&amp;quot;&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;
# stock code en cache avec des accès limités&lt;br /&gt;
cat &amp;quot;${@: -1}&amp;quot; &amp;gt;&amp;quot;${cacheFile}&amp;quot;&lt;br /&gt;
chmod 500 &amp;quot;${cacheFile}&amp;quot;&lt;br /&gt;
chown intrasys: &amp;quot;${cacheFile}&amp;quot;&lt;br /&gt;
# store script&lt;br /&gt;
nameBase=&amp;quot;$(cat ${cacheFile} |tr -c '[:alnum:]' '_' |cut -c 1-68 |tr -s '_' |sed -r 's#_$##' )&amp;quot;-$(md5sum ${cacheFile} |cut -c 1-2 )&lt;br /&gt;
cat &amp;quot;${cacheFile}&amp;quot; |gzip &amp;gt;&amp;quot;${baseDir}&amp;quot;/log/script-&amp;quot;${nameBase}&amp;quot;.sh.gz&lt;br /&gt;
&lt;br /&gt;
hostList=$(hostList.sh &amp;quot;${@:1:$(($# -1))}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
# execute code&lt;br /&gt;
## max jobs&lt;br /&gt;
echo 16 &amp;gt;&amp;quot;${cacheFile}&amp;quot;-count&lt;br /&gt;
#for hostName in $hostList ;do&lt;br /&gt;
echo &amp;quot;${hostList}&amp;quot; |shuf |while read hostName ;do&lt;br /&gt;
  cachePath=&amp;quot;${baseDir}&amp;quot;/log/old/${hostName}-&amp;quot;${nameBase}&amp;quot;-$(date '+%Y%m%d')&lt;br /&gt;
&lt;br /&gt;
  rm -f &amp;quot;${cachePath}&amp;quot;.err&lt;br /&gt;
  if [ -z &amp;quot;$(find &amp;quot;${cachePath}&amp;quot;.gz -mmin -1 2&amp;gt;/dev/null )&amp;quot; ] ;then&lt;br /&gt;
    (count=$(cat &amp;quot;${cacheFile}&amp;quot;-count)&lt;br /&gt;
     echo $(($count - 1)) &amp;gt;&amp;quot;${cacheFile}&amp;quot;-count&lt;br /&gt;
     cat &amp;quot;${cacheFile}&amp;quot; |\&lt;br /&gt;
      ssh -oStrictHostKeyChecking=no -o ConnectTimeout=3 -o ConnectionAttempts=2 $sshOpt &amp;quot;${hostName}&amp;quot; &amp;quot;cat -&amp;gt;/tmp/out$$ &amp;amp;&amp;amp;(&lt;br /&gt;
chmod 500 /tmp/out$$&lt;br /&gt;
sudo -n /bin/su -c 'timeout --signal=9 600 bash /tmp/out'$$ 2&amp;gt;/tmp/out$$.err &amp;gt;/tmp/out$$2&lt;br /&gt;
errCode=\$? ;if [ ! -s /tmp/out$$2 ] &amp;amp;&amp;amp;[ \$errCode -eq 1 ] ;then&lt;br /&gt;
  timeout --signal=9 600 bash /tmp/out$$ 2&amp;gt;/tmp/out$$.err &amp;gt;/tmp/out$$2&lt;br /&gt;
fi&lt;br /&gt;
cat /tmp/out$$2&lt;br /&gt;
cat /tmp/out$$.err &amp;gt;&amp;amp;2&lt;br /&gt;
rm -f /tmp/out$$*&lt;br /&gt;
)&amp;quot; 2&amp;gt;&amp;quot;${cachePath}&amp;quot;.err |\&lt;br /&gt;
       gzip &amp;gt;&amp;quot;${cachePath}&amp;quot;.gz&lt;br /&gt;
     count=$(cat &amp;quot;${cacheFile}&amp;quot;-count)&lt;br /&gt;
     echo $(($count + 1)) &amp;gt;&amp;quot;${cacheFile}&amp;quot;-count)&amp;amp;&lt;br /&gt;
  fi&lt;br /&gt;
&lt;br /&gt;
  while [[ &amp;quot;$(cat &amp;quot;${cacheFile}&amp;quot;-count)&amp;quot; -le 0 ]] ;do&lt;br /&gt;
    sleep 0.1&lt;br /&gt;
  done&lt;br /&gt;
&lt;br /&gt;
done |tee /dev/null&lt;br /&gt;
&lt;br /&gt;
# display result&lt;br /&gt;
for hostName in $hostList ;do&lt;br /&gt;
  cachePath=&amp;quot;${baseDir}&amp;quot;/log/old/${hostName}-&amp;quot;${nameBase}&amp;quot;-$(date '+%Y%m%d')&lt;br /&gt;
  &lt;br /&gt;
  if [[ ! -z &amp;quot;$(find &amp;quot;${cachePath}&amp;quot;.gz )&amp;quot; ]] ;then&lt;br /&gt;
    if [ -z &amp;quot;$(zcat &amp;quot;${cachePath}&amp;quot;.gz )&amp;quot; ] ;then&lt;br /&gt;
      rm -f &amp;quot;${cachePath}&amp;quot;.gz&lt;br /&gt;
    else&lt;br /&gt;
      echo &amp;quot;== ${hostName} ==&amp;quot;&lt;br /&gt;
      zcat &amp;quot;${cachePath}&amp;quot;.gz&lt;br /&gt;
    fi&lt;br /&gt;
  fi&lt;br /&gt;
&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
# display errors&lt;br /&gt;
for hostName in $hostList ;do&lt;br /&gt;
  cachePath=&amp;quot;${baseDir}&amp;quot;/log/old/${hostName}-&amp;quot;${nameBase}&amp;quot;-$(date '+%Y%m%d')&lt;br /&gt;
&lt;br /&gt;
  if [ ! -z &amp;quot;$(find &amp;quot;${cachePath}&amp;quot;.err 2&amp;gt;/dev/null )&amp;quot; ] ;then&lt;br /&gt;
    if [ -z &amp;quot;$(cat &amp;quot;${cachePath}&amp;quot;.err )&amp;quot; ] ;then&lt;br /&gt;
      rm -f &amp;quot;${cachePath}&amp;quot;.err&lt;br /&gt;
    else&lt;br /&gt;
      #cat &amp;quot;${cachePath}&amp;quot;.err |cut -c 1-128 |sed 's#^#\\033[0;31m[W]'&amp;quot;${NC}&amp;quot;'['${hostName}']:#' &amp;gt;&amp;amp;2&lt;br /&gt;
      v1=$(cat &amp;quot;${cachePath}&amp;quot;.err |awk '!seen[$0]++' |cut -c 1-128 |sed 's#^#\\033[0;31m[W]\\033[0m['${hostName}']:#')&lt;br /&gt;
&amp;gt;&amp;amp;2   echo -e &amp;quot;$v1&amp;quot; &lt;br /&gt;
    fi&lt;br /&gt;
  fi&lt;br /&gt;
&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
# clean cache&lt;br /&gt;
rm -rf /tmp/&amp;quot;$(basename $0)&amp;quot;$$* 2&amp;gt;/dev/null&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tcepo</name></author>
	</entry>
</feed>