<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://knowledge.pinon-hebert.fr/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Scripts_utiles_pour_Linux</id>
	<title>Scripts utiles pour Linux - Historique des versions</title>
	<link rel="self" type="application/atom+xml" href="https://knowledge.pinon-hebert.fr/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Scripts_utiles_pour_Linux"/>
	<link rel="alternate" type="text/html" href="https://knowledge.pinon-hebert.fr/mediawiki/index.php?title=Scripts_utiles_pour_Linux&amp;action=history"/>
	<updated>2026-05-20T08:18:52Z</updated>
	<subtitle>Historique des versions pour cette page sur le wiki</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://knowledge.pinon-hebert.fr/mediawiki/index.php?title=Scripts_utiles_pour_Linux&amp;diff=921&amp;oldid=prev</id>
		<title>Jpinon le 26 février 2025 à 18:01</title>
		<link rel="alternate" type="text/html" href="https://knowledge.pinon-hebert.fr/mediawiki/index.php?title=Scripts_utiles_pour_Linux&amp;diff=921&amp;oldid=prev"/>
		<updated>2025-02-26T18:01:06Z</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;fr&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version du 26 février 2025 à 18:01&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-l97&quot;&gt;Ligne 97 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 97 :&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;    7100 Feb 25&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;    7100 Feb 25&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;   11402 Feb 26&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;   11402 Feb 26&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;lt;/syntaxhighlight&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Oui &lt;/del&gt;il est urgent d&#039;installer [[fail2ban]]!&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;lt;/syntaxhighlight&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;On remarque que, le dimanche, les pirates se reposent mais que pour la saint valentin ils mettent les bouchées doubles et que, oui, &lt;/ins&gt;il est urgent d&#039;installer [[fail2ban]]!&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key knowledge:diff:1.41:old-920:rev-921:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Jpinon</name></author>
	</entry>
	<entry>
		<id>https://knowledge.pinon-hebert.fr/mediawiki/index.php?title=Scripts_utiles_pour_Linux&amp;diff=920&amp;oldid=prev</id>
		<title>Jpinon : Page créée avec « Il y a des commandes qui manquent sous linux ou des scripts utiles que l&#039;on devrait avoir sous la main.  == Un cat agnostique == La commande &lt;code&gt;cat&lt;/code&gt; permet (entre autre) de voir le contenu d&#039;un fichier alors que &lt;code&gt;zcat&lt;/code&gt; fait la même chose avec un fichier compressé.   Quand on tente de consulter les logs dans /var/log on voit que le système est intelligent, il tronçonne les fichiers pour que ceux-ci ne soient pas de taille démesurée mais a... »</title>
		<link rel="alternate" type="text/html" href="https://knowledge.pinon-hebert.fr/mediawiki/index.php?title=Scripts_utiles_pour_Linux&amp;diff=920&amp;oldid=prev"/>
		<updated>2025-02-26T17:51:03Z</updated>

		<summary type="html">&lt;p&gt;Page créée avec « Il y a des commandes qui manquent sous linux ou des scripts utiles que l&amp;#039;on devrait avoir sous la main.  == Un cat agnostique == La commande &amp;lt;code&amp;gt;cat&amp;lt;/code&amp;gt; permet (entre autre) de voir le contenu d&amp;#039;un fichier alors que &amp;lt;code&amp;gt;zcat&amp;lt;/code&amp;gt; fait la même chose avec un fichier compressé.   Quand on tente de consulter les logs dans /var/log on voit que le système est intelligent, il tronçonne les fichiers pour que ceux-ci ne soient pas de taille démesurée mais a... »&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Il y a des commandes qui manquent sous linux ou des scripts utiles que l&amp;#039;on devrait avoir sous la main.&lt;br /&gt;
&lt;br /&gt;
== Un cat agnostique ==&lt;br /&gt;
La commande &amp;lt;code&amp;gt;cat&amp;lt;/code&amp;gt; permet (entre autre) de voir le contenu d&amp;#039;un fichier alors que &amp;lt;code&amp;gt;zcat&amp;lt;/code&amp;gt; fait la même chose avec un fichier compressé. &lt;br /&gt;
&lt;br /&gt;
Quand on tente de consulter les logs dans /var/log on voit que le système est intelligent, il tronçonne les fichiers pour que ceux-ci ne soient pas de taille démesurée mais aussi les compresse (&amp;lt;code&amp;gt;gzip&amp;lt;/code&amp;gt;) quand ils sont un peu vieux.&lt;br /&gt;
&lt;br /&gt;
Exemple pour le fichier d&amp;#039;audit des connexions:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ls -1t /var/log/auth.log*&lt;br /&gt;
/var/log/auth.log&lt;br /&gt;
/var/log/auth.log.1&lt;br /&gt;
/var/log/auth.log.2.gz&lt;br /&gt;
/var/log/auth.log.3.gz&lt;br /&gt;
/var/log/auth.log.4.gz&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Le premier est le fichier actif /var/log/auth.log. Le second le fichier des évènements d&amp;#039;audit un peu plus anciens. Qand aux 3 autres ce sont des logs plus anciennes qui on étés &amp;quot;zippées&amp;quot;. En général on s&amp;#039;occupe du fichier en cours, voire du précédent. L&amp;#039;usage des autres est plus rare.&lt;br /&gt;
&lt;br /&gt;
Cependant si on désire faire des recherches plus approfondie on aimerait pouvoir traiter l&amp;#039;ensembles des fichiers dans la même commande du style : azcat fichier qui ferait un cat si le fichier est un fichier texte et zcat si il est compressé.&lt;br /&gt;
&lt;br /&gt;
On pourrait se fier à l&amp;#039;extension du fichier mais... on n&amp;#039;est pas sous Windows on est sur un &amp;quot;vrai&amp;quot; OS. La commande &amp;lt;code&amp;gt;file&amp;lt;/code&amp;gt; est là pour nous aider.&lt;br /&gt;
&lt;br /&gt;
Le code de azcal est le suivant:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
if [ $# -ne 1 ];&lt;br /&gt;
    then &amp;gt;&amp;amp;2 echo &amp;quot;illegal number of parameters&amp;quot;; exit&lt;br /&gt;
fi&lt;br /&gt;
export FORMAT=`file -b $1 | cut -d &amp;quot; &amp;quot; -f 1`&lt;br /&gt;
case $FORMAT in&lt;br /&gt;
        ASCII)&lt;br /&gt;
                cat $1&lt;br /&gt;
                ;;&lt;br /&gt;
        gzip)&lt;br /&gt;
                zcat $1&lt;br /&gt;
                ;;&lt;br /&gt;
        *)&lt;br /&gt;
                &amp;gt;&amp;amp;2 echo &amp;quot;Error: Not supported format $FORMAT&amp;quot;&lt;br /&gt;
                ;;&lt;br /&gt;
esac&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Lignes 2 à 4 on vérifie le nombre de paramètres (on n&amp;#039;en veut qu&amp;#039;un)&lt;br /&gt;
* Ligne 5 on demande à file quel est le format du fichier (on prends le premier mot car dans certains cas c&amp;#039;est très &amp;quot;bavard&amp;quot;). Essayez sur un fichier gzipp par exemple!&lt;br /&gt;
* ligne 6 on fait un switch sur le type de fichier&lt;br /&gt;
* lignes 7 à 9 on gère le cas où c&amp;#039;est un fichier ASCII&lt;br /&gt;
* lignes 10 à 12 le cas ou c&amp;#039;est un fichier gzip&lt;br /&gt;
* lignes 13 à 15 on imprime une erreur en cas de format non pris en charge.&lt;br /&gt;
&lt;br /&gt;
On pourra gérer d&amp;#039;autres formats quand ce sera nécessaire.&lt;br /&gt;
&lt;br /&gt;
Remarque : pour écrire simplement sur &amp;lt;code&amp;gt;stderr&amp;lt;/code&amp;gt; j&amp;#039;ai utilisé une syntaxe un peu exotique, faite précéder le &amp;lt;code&amp;gt;echo&amp;lt;/code&amp;gt; par &amp;lt;code&amp;gt;&amp;gt;&amp;amp;2&amp;lt;/code&amp;gt;. Parfois la syntaxe de bash est étrange.&lt;br /&gt;
&lt;br /&gt;
Le programme n&amp;#039;est pas aussi souple que cat ou zcat cat on ne peut donner qu&amp;#039;un seul argument.&lt;br /&gt;
&lt;br /&gt;
un &amp;lt;code&amp;gt;cat *&amp;lt;/code&amp;gt; est possible quand un &amp;lt;code&amp;gt;azcat *&amp;lt;/code&amp;gt; nous donnera une erreur pour peut que le &amp;lt;code&amp;gt;&amp;quot;*&amp;quot;&amp;lt;/code&amp;gt; renvoie a plusieurs fichiers.&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
azcat *&lt;br /&gt;
illegal number of parameters&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Un exemple d&amp;#039;utilisation est de rechercher le nombre de &amp;lt;code&amp;gt;&amp;quot;Failed passord&amp;quot;&amp;lt;/code&amp;gt; dans &amp;lt;code&amp;gt;/var/log/auth.log*&amp;lt;/code&amp;gt;.&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
for f in `ls -1tr /var/log/auth.log*`; do  ./azcat $f | grep &amp;quot;Failed password for&amp;quot; | sed &amp;quot;s/sshd.*from//&amp;quot; | awk &amp;#039;{print $1,$2}&amp;#039; | uniq -c; done&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Oui c&amp;#039;est déja une ligne de commande compliquée alors imaginez si il fallait faire la différence entre &amp;lt;code&amp;gt;cat&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;zcat&amp;lt;/code&amp;gt; dedans!&lt;br /&gt;
&lt;br /&gt;
Pour info ca donne une liste :&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
   3596 Jan 27&lt;br /&gt;
   6400 Jan 28&lt;br /&gt;
   7823 Jan 29&lt;br /&gt;
   9534 Jan 30&lt;br /&gt;
   8879 Jan 31&lt;br /&gt;
   8828 Feb 1&lt;br /&gt;
     44 Feb 2&lt;br /&gt;
   8253 Feb 2&lt;br /&gt;
   9456 Feb 3&lt;br /&gt;
   8923 Feb 4&lt;br /&gt;
   7477 Feb 5&lt;br /&gt;
  10970 Feb 6&lt;br /&gt;
  10274 Feb 7&lt;br /&gt;
   7904 Feb 8&lt;br /&gt;
     55 Feb 9&lt;br /&gt;
   9677 Feb 9&lt;br /&gt;
   8596 Feb 10&lt;br /&gt;
   7629 Feb 11&lt;br /&gt;
   7359 Feb 12&lt;br /&gt;
   8585 Feb 13&lt;br /&gt;
  17587 Feb 14&lt;br /&gt;
   8750 Feb 15&lt;br /&gt;
     24 Feb 16&lt;br /&gt;
   9241 Feb 16&lt;br /&gt;
   9410 Feb 17&lt;br /&gt;
  10094 Feb 18&lt;br /&gt;
   8293 Feb 19&lt;br /&gt;
   7819 Feb 20&lt;br /&gt;
   7474 Feb 21&lt;br /&gt;
   6606 Feb 22&lt;br /&gt;
     13 Feb 23&lt;br /&gt;
   8621 Feb 23&lt;br /&gt;
   8839 Feb 24&lt;br /&gt;
   7100 Feb 25&lt;br /&gt;
  11402 Feb 26&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Oui il est urgent d&amp;#039;installer [[fail2ban]]!&lt;/div&gt;</summary>
		<author><name>Jpinon</name></author>
	</entry>
</feed>