<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>notification Archives - Mon linux</title>
	<atom:link href="https://www.monlinux.net/tag/notification/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.monlinux.net/tag/notification/</link>
	<description>by Belgotux</description>
	<lastBuildDate>Fri, 31 Mar 2023 09:06:22 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.5</generator>

<image>
	<url>https://www.monlinux.net/wp-content/uploads/cropped-mon-linux-logo-grey-512-32x32.png</url>
	<title>notification Archives - Mon linux</title>
	<link>https://www.monlinux.net/tag/notification/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>NUT &#8211; notifications push Telegram Pushbullet Pushover pour UPS</title>
		<link>https://www.monlinux.net/2023/02/nut-notifications-push-telegram-pushbullet-pushover-pour-ups/</link>
					<comments>https://www.monlinux.net/2023/02/nut-notifications-push-telegram-pushbullet-pushover-pour-ups/#respond</comments>
		
		<dc:creator><![CDATA[belgotux]]></dc:creator>
		<pubDate>Sat, 04 Feb 2023 21:07:00 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[notification]]></category>
		<category><![CDATA[nut]]></category>
		<category><![CDATA[telegram]]></category>
		<category><![CDATA[ups]]></category>
		<guid isPermaLink="false">https://www.monlinux.net/?p=1763</guid>

					<description><![CDATA[<p>J&#8217;ai d&#233;j&#224; &#233;crit un premier article sur la configuration de NUT pour &#233;teindre proprement ses serveur en 2015. Il a &#233;t&#233; revu plusieurs fois mais cela restait concentr&#233; autour de La configuration de NUT en lui-m&#234;me. Tout reste encore valable... <a class="more-link" href="https://www.monlinux.net/2023/02/nut-notifications-push-telegram-pushbullet-pushover-pour-ups/">Continue Reading &#8594;</a></p>
<p>L’article <a href="https://www.monlinux.net/2023/02/nut-notifications-push-telegram-pushbullet-pushover-pour-ups/">NUT &#8211; notifications push Telegram Pushbullet Pushover pour UPS</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>J&rsquo;ai déjà écrit un premier article sur la configuration de NUT pour éteindre proprement ses serveur en 2015. Il a été revu plusieurs fois mais cela restait concentré autour de La configuration de NUT en lui-même. Tout reste encore valable dans <a href="https://www.monlinux.net/2018/03/nut-ups-notifications-mails-et-arret/">l&rsquo;article originel sur NUT pour parler à son UPS</a>.</p>



<p>J&rsquo;y avais introduit un script simple de notification mail et SMS avec la commande NOTIFYCMD. A l&rsquo;époque, je n&rsquo;hébergeais pas encore sur github mes projets. J&rsquo;avais mis le script en 2018 sur github, à l&rsquo;occasion de la prise en charge de pushbullet et plus uniquement les mails et SMS.</p>



<p>Récemment j&rsquo;ai revu le script, car il n&rsquo;était pas très flexible. J&rsquo;en ai profité pour y intégrer un PR de pushover de longue date, mais surtout <strong>Telegram qui est absolument recommandé</strong> pour des échanges chiffrés correctes, même si je n&rsquo;avais pas d&rsquo;infos sensibles sur des notifications UPS <img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<p>Fin d&rsquo;année passée, ma volonté était de passer toutes mes notifications en Telegram, que ce soit pour octoprint, mes vps, mes serveurs à la maison, Jeedom. J&rsquo;ai notamment fait <a href="https://www.monlinux.net/2022/12/notification-bot-telegram-sous-linux-debian/">un script générique qui peut être utilisé pour envoyer des notifications Telegram à la fin d&rsquo;une commande, avec un pipe, dans un script</a>, etc en décembre.</p>



<p>La partie boot a été revue afin de ne plus avoir de dépendance avec un script de notification. Ce sont les mêmes fonctions, mais internalisées. J&rsquo;ai partagé le logrotate également.</p>



<h2 class="wp-block-heading">Installation manuelle du script de notification depuis github</h2>



<p>Une fois la configuration de NUT suivis sur l&rsquo;article précédent, voici la marche à suivre pour installer le script avec un copier coller. Vous aurez besoin de git : </p>



<ul class="wp-block-list">
<li>Copier <a href="https://github.com/belgotux/nutNotify.git" target="_blank" rel="noreferrer noopener">le projet git nutNotify</a></li>



<li>Copier le fichier <code>nutNotify.conf.txt</code> vers <code>/usr/local/etc/nutNotify.conf</code> afin de l&rsquo;éditer avec vos besoins. Pour Telegram les deux variables telegramAccessToken et telegramChatID suffisent. Pour <a href="https://www.monlinux.net/2022/12/notification-bot-telegram-sous-linux-debian/">obtenir vos identifiants il faut créer un bot Telegram</a>.</li>



<li>Copier <code>nutNotifyFct.sh nutNotifyBoot.sh nutNotify.sh nutShutdown.sh</code> vers <code>/usr/local/bin</code></li>



<li>Copier <code>systemd-notify</code> vers <code>/lib/systemd/system/nut-notify-boot.service</code></li>



<li>systemctl reload daemon et enable <code>nut-notify-boot</code></li>



<li>Créer le répertoire de log <code>/var/log/nutNotify</code> avec les droits de l&rsquo;utilisateur nut</li>



<li>Copier le fichier de logrotate dans <code>/etc/logrotate.d</code></li>
</ul>



<pre class="wp-block-code"><code lang="bash" class="language-bash">git clone https://github.com/belgotux/nutNotify.git
cd nutNotify
cp nutNotify.conf.txt /usr/local/etc/nutNotify.conf
vim /usr/local/etc/nutNotify.conf
cp nutNotifyFct.sh nutNotifyBoot.sh nutNotify.sh nutShutdown.sh /usr/local/bin
cp systemd-notify /lib/systemd/system/nut-notify-boot.service
systemctl daemon-reload
systemctl enable nut-notify-boot.service
mkdir /var/log/nutNotify
chown nut:nut /var/log/nutNotify
cp nutNotify.logrotate /etc/logrotate.d
</code></pre>



<h2 class="wp-block-heading">Configuration de NUT et du script de notification push depuis Ansible Galaxy</h2>



<p>J&rsquo;ai également créé un <a href="https://github.com/belgotux/ansible-role-nut-client" target="_blank" rel="noreferrer noopener">repo github pour le projet Ansible nut client</a> qui a 2 fonctions : </p>



<ul class="wp-block-list">
<li>Configurer le service nut facilement : autant sur le nut server relié à l&rsquo;UPS, que les clients réseaux nut</li>



<li>Configurer le script de notification Push pour Telegram, Pushbullet, Pushover, mal ou sms</li>
</ul>



<p>Vous pouvez définir différents types de notifications en fonction de l&rsquo;évènement. J&rsquo;enverrai une notification Telegram pour un problème secteur et lorsque les serveurs s&rsquo;éteindront en fin de batterie par exemple. Mais je ne voudrais peut-être pas que tous mes serveurs me disent qu&rsquo;ils sont sur batterie UPS lors d&rsquo;une coupure, un seul me suffira&#8230; D&rsquo;où l&rsquo;utilité des variables Ansible : des notifications minimales pour le groupe de serveurs et des notifications pour tous les events pour le serveur relié à l&rsquo;UPS.</p>



<p>Le role nut-client est disponible sur <a href="https://galaxy.ansible.com/belgotux/nut_client" target="_blank" rel="noreferrer noopener">Ansible Galaxy</a>. Pour le prendre : </p>



<pre class="wp-block-code"><code lang="bash" class="language-bash">ansible-galaxy install belgotux.nut_client</code></pre>



<p>La configuration est bien fournie dans le README en Anglais, mais je mets ici les points essentiels avec un exemple : </p>



<ul class="wp-block-list">
<li><code>notifynut_method</code> peut être [mail|pushbullet|telegram|pushover|sms] (default mail)</li>



<li><code>notifynut_mailto</code> adresse mail de destinataire (default root)</li>



<li><code>nut_mode</code> peut être [netclient|netserver] : netserver est à mettre uniquement sur le serveur ayant l&rsquo;UPS en USB ou utilisé en réseau (default netclient)</li>



<li><code>nut_ups_name</code> le nom donné à l&rsquo;ups</li>



<li><code>nut_ups_ip</code> l&rsquo;IP de l&rsquo;UPS</li>



<li><code>nut_ups_port</code> port du service nut (default 3493)</li>



<li><code>nut_user</code> utilisateur nut pour monitorer l&rsquo;UPS</li>



<li><code>nut_password</code> le mot de passe pour monitorer l&rsquo;UPS</li>
</ul>



<p>Selon la notification utilisée, les variables sont aussi à compléter. Dans le cas de Telegram : </p>



<ul class="wp-block-list">
<li><code>notifynut_telegram_accessToken</code>&nbsp;Telegram token</li>



<li><code>notifynut_telegram_chatID</code>&nbsp;Telegram chat ID</li>
</ul>



<h3 class="wp-block-heading">Utiliser efficacement les variables Ansible</h3>



<p>Et c&rsquo;est suffisant pour un simple serveur. Mais pour ne pas recevoir 5 notifications si vous avez 5 serveurs qui passent sous batteries&#8230; Je vous conseille dans le groupe de serveur de mettre ces variables. Vous serez averti en cas de problème de communication avec le serveur NUT et quand le serveur est de nouveau en ligne après une coupure de courant : </p>



<pre class="wp-block-code"><code lang="yaml" class="language-yaml">notifynut_method: none
notifynut_method_comm: telegram
notifynut_method_serveronline: (telegram mail)</code></pre>



<p>Et dans le<code> hosts_vars</code> du serveur NUT ceci, afin que le service soit en écoute et d&rsquo;avoir toutes les notifications par telegram uniquement. (sauf serveronline vu qu&rsquo;on l&rsquo;a défini dans notre groupe à telegram+mail comme les autres serveurs). </p>



<pre class="wp-block-code"><code lang="yaml" class="language-yaml">nut_mode: netserver
notifynut_method: telegram</code></pre>
<p>L’article <a href="https://www.monlinux.net/2023/02/nut-notifications-push-telegram-pushbullet-pushover-pour-ups/">NUT &#8211; notifications push Telegram Pushbullet Pushover pour UPS</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.monlinux.net/2023/02/nut-notifications-push-telegram-pushbullet-pushover-pour-ups/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Role Ansible notification push Linux Debian</title>
		<link>https://www.monlinux.net/2022/12/role-ansible-notification-push-linux-debian/</link>
					<comments>https://www.monlinux.net/2022/12/role-ansible-notification-push-linux-debian/#respond</comments>
		
		<dc:creator><![CDATA[belgotux]]></dc:creator>
		<pubDate>Fri, 30 Dec 2022 19:59:52 +0000</pubDate>
				<category><![CDATA[ansible]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[notification]]></category>
		<category><![CDATA[telegram]]></category>
		<guid isPermaLink="false">https://www.monlinux.net/?p=1666</guid>

					<description><![CDATA[<p>Ce r&#244;le Ansible permet d&#8217;installer une ou plusieurs m&#233;thodes de notification push sous Debian ou Ubuntu. Cela fait suite &#224; mon article sur les notifications via Telegram et ce r&#244;le permet d&#8217;installer Telegram ou Pushbullet. Ce r&#244;le est disponible dans... <a class="more-link" href="https://www.monlinux.net/2022/12/role-ansible-notification-push-linux-debian/">Continue Reading &#8594;</a></p>
<p>L’article <a href="https://www.monlinux.net/2022/12/role-ansible-notification-push-linux-debian/">Role Ansible notification push Linux Debian</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Ce rôle Ansible permet d&rsquo;installer une ou plusieurs méthodes de notification push sous Debian ou Ubuntu. Cela fait suite à mon article sur <a href="https://www.monlinux.net/2022/12/notification-bot-telegram-sous-linux-debian/">les notifications via Telegram</a> et ce rôle permet d&rsquo;installer Telegram ou Pushbullet.</p>



<p>Ce rôle est disponible dans l&rsquo;<a href="https://galaxy.ansible.com/belgotux/notification_push" target="_blank" rel="noreferrer noopener">Ansible Galaxy</a>. Pour l&rsquo;installer rien de plus simple : </p>



<pre class="wp-block-code"><code lang="bash" class="language-bash">ansible-galaxy install belgotux.notification_push</code></pre>



<p>Je vous mets également <a href="https://github.com/belgotux/ansible-role-notification-push" target="_blank" rel="noreferrer noopener">le lien du projet de notification avec Ansible sur github</a>.</p>



<p>Il ne requiert aucune dépendance, il va chercher la dernière version du script via github pour les 2 scripts actuellement supportés : Pushbullet et Telegram. Dans le cas de ce dernier, une tâche Ansible va directement chercher le chat ID, nécessaire en plus du token.</p>



<p>Au préalable, il faut avoir <a href="https://www.monlinux.net/2018/03/notification-push-linux-debian-simple-mail/">créé un compte pour Pushbullet en suivant les étages</a>. Et un <a href="https://www.monlinux.net/2022/12/notification-bot-telegram-sous-linux-debian/">bot pour Telegram en plus en suivant l&rsquo;article que j&rsquo;ai écrit sur les notifications Telegram pour Debian</a>. </p>



<h2 class="wp-block-heading">Exemple Playbook</h2>



<p>Notification pushbullet :</p>



<pre class="wp-block-code"><code lang="yaml" class="language-yaml">- hosts: servers
  roles:
      - { role: notification-push vars: notification_pushbullet_access_token: 'o.XXXXXXXXXXXXXXXXXXXXX' }
</code></pre>



<p>Notification Telegram :</p>



<pre class="wp-block-code"><code lang="yaml" class="language-yaml">- hosts: servers
  roles:
      - { role: notification-push vars: notification_telegram_access_token: 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' }
</code></pre>



<h2 class="wp-block-heading"><a href="https://github.com/belgotux/ansible-role-notification-push#license"></a>Utiliser un bot API local pour Telegram</h2>



<p>Il est tout à fait possible de pousser l&rsquo;utilisation en auto-hébergement via l&rsquo;utilisation de son propre service d&rsquo;API bot Telegram. <a href="https://core.telegram.org/bots/api#using-a-local-bot-api-server" target="_blank" rel="noreferrer noopener">L&rsquo;article officiel sur le site de Telegram en décrit les capacités</a>. Le rôle est fait pour pouvoir changer l&rsquo;adresse par défaut de l&rsquo;API <code>https://api.telegram.org</code>.</p>



<pre class="wp-block-code"><code lang="yaml" class="language-yaml">- hosts: servers
  roles:
      - role: notification-push
        vars:
          notification_telegram_access_token: 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
          notification_telegram_provider_api: 'https://your_custom_api'
</code></pre>
<p>L’article <a href="https://www.monlinux.net/2022/12/role-ansible-notification-push-linux-debian/">Role Ansible notification push Linux Debian</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.monlinux.net/2022/12/role-ansible-notification-push-linux-debian/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Notification Bot Telegram sous Linux Debian</title>
		<link>https://www.monlinux.net/2022/12/notification-bot-telegram-sous-linux-debian/</link>
					<comments>https://www.monlinux.net/2022/12/notification-bot-telegram-sous-linux-debian/#respond</comments>
		
		<dc:creator><![CDATA[belgotux]]></dc:creator>
		<pubDate>Sun, 18 Dec 2022 17:38:26 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[notification]]></category>
		<guid isPermaLink="false">https://www.monlinux.net/?p=1658</guid>

					<description><![CDATA[<p>Plus pratique que d&#8217;utiliser la commande mailx qui n&#8217;est pas forc&#233;ment une information en temps r&#233;elle, la notification par Telegram est une bonne alternative. L&#8217;API de Telegram permet bien plus de choses que l&#8217;API de Pushbullet que j&#8217;utilisais pr&#233;c&#233;demment. Vous... <a class="more-link" href="https://www.monlinux.net/2022/12/notification-bot-telegram-sous-linux-debian/">Continue Reading &#8594;</a></p>
<p>L’article <a href="https://www.monlinux.net/2022/12/notification-bot-telegram-sous-linux-debian/">Notification Bot Telegram sous Linux Debian</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Plus pratique que d&rsquo;utiliser la commande <code>mailx</code> qui n&rsquo;est pas forcément une information en temps réelle, la notification par Telegram est une bonne alternative. L&rsquo;<a href="https://core.telegram.org/bots/tutorial" target="_blank" rel="noreferrer noopener">API de Telegram</a> permet bien plus de choses que l&rsquo;<a href="https://www.monlinux.net/2018/03/notification-push-linux-debian-simple-mail/">API de Pushbullet que j&rsquo;utilisais précédemment</a>. Vous pouvez notamment séparer les canaux de communication, faire un chat de groupe etc.</p>



<p>Mais le plus gros avantage étant que <strong>le canal est sécurisé car chiffré et vous n&rsquo;avez pas de tiers qui peut tout lire comme avec pushbullet</strong>. </p>



<p>Dans le cas de cette notification, mon besoin est simple, distinguer les serveurs à la maison, de ceux en VPS via différent chatBot. Pour plus de visibilité sur les types d&rsquo;alerte, <a href="https://apps.timwhitlock.info/emoji/tables/unicode" target="_blank" rel="noreferrer noopener nofollow">les emoji</a> sont bien utiles et complètement gérés par Telegram et par ce script.</p>



<p>Je vous partage donc le lien du <a href="https://github.com/belgotux/telegram-notification-linux" target="_blank" rel="noreferrer noopener">projet github du script Telegram qui peut envoyer des notifications autant sous Debian que Ubuntu</a>. Il peut sans doute tourner sous d&rsquo;autres distributions, mais je n&rsquo;ai pas testé.</p>



<h2 class="wp-block-heading">Créer un compte Telegram</h2>



<p>Rien de plus simple, vous installez Telegram sur votre <a href="https://play.google.com/store/apps/details?id=org.telegram.messenger" target="_blank" rel="noreferrer noopener nofollow">Android</a> ou autre smartphone. Il est nécessaire que votre compte soit vérifié par un numéro de téléphone. SI vous n&rsquo;avez pas de smartphone, il est encore possible d&rsquo;utiliser <a href="https://www.bluestacks.software/bluestacks-download/" target="_blank" rel="noreferrer noopener nofollow">bluestacks</a> pour émuler facilement un Android.</p>



<p>Une fois le compte créé, vous pouvez très bien installer le client sur votre <a href="https://telegram.org/dl/desktop/linux" target="_blank" rel="noreferrer noopener nofollow">Linux </a>ou votre <a href="https://telegram.org/dl/desktop/win64" target="_blank" rel="noreferrer noopener nofollow">Windows</a> pour recevoir les notifications. Il y a même un client CLI de disponible via le paquet <code>telegram-cli</code>.</p>



<h3 class="wp-block-heading">Ajouter le contact @BotFather</h3>



<p>Pour créer un bot il faut ajouter le contact @BotFather.</p>



<p>Vous faites la commande <code>/start</code>.</p>



<figure class="wp-block-image size-full is-style-default"><img fetchpriority="high" decoding="async" width="659" height="246" src="https://www.monlinux.net/wp-content/uploads/image-12.png" alt="/start @BotFather" class="wp-image-1661" srcset="https://www.monlinux.net/wp-content/uploads/image-12.png 659w, https://www.monlinux.net/wp-content/uploads/image-12-300x112.png 300w, https://www.monlinux.net/wp-content/uploads/image-12-600x224.png 600w" sizes="(max-width: 659px) 100vw, 659px" /></figure>



<p>Vous demandez un nouveau bot via <code>/newbots</code> et suivez les instructions : </p>



<ul class="wp-block-list">
<li>Vous lui donnez un nom utile</li>



<li>Vous créez un utilisateur qui doit être unique, le mieux étant de préfixer vos bots par votre pseudo ou un mot pas trop commun pour être certains d&rsquo;avoir ce pseudo unique.</li>



<li>Vous récupérez le token pour joindre l&rsquo;API et vous le gardez secret.</li>
</ul>



<figure class="wp-block-image size-full"><img decoding="async" width="652" height="701" src="https://www.monlinux.net/wp-content/uploads/image-13.png" alt="/newbot ajout d'un nouveau bot avec nom et username pour récupérer la clé API" class="wp-image-1662" srcset="https://www.monlinux.net/wp-content/uploads/image-13.png 652w, https://www.monlinux.net/wp-content/uploads/image-13-279x300.png 279w, https://www.monlinux.net/wp-content/uploads/image-13-600x645.png 600w" sizes="(max-width: 652px) 100vw, 652px" /></figure>



<h3 class="wp-block-heading">Récupérer l&rsquo;IP de chat</h3>



<p>Sur votre compte Telegram, vous ajoutez votre nouveau bot comme contact et vous faites un <code>/start</code>. C&rsquo;est important pour avoir un contenu et pouvoir récupérer l&rsquo;ID du chat.</p>



<p>Avec votre navigateur ou curl, aller à l&rsquo;adresse : <code>https://api.telegram.org/bot&lt;YourBOTToken&gt;/getUpdates</code></p>



<p>Vous aurez un message du genre en json, ce qui nous intéresse est le <code>chat: {"id":XXXXXXX</code> :</p>



<pre class="wp-block-code"><code class="">{"ok":true,"result":[{"update_id":551184892,
"message":{"message_id":2,"from":{"id":1648779299,"is_bot":false,"first_name":"xxxx","language_code":"fr"},"chat":{"id":XXXXXXXXX,"first_name":"xxxx","type":"private"},"date":1670947477,"text":"/start","entities":[{"offset":0,"length":6,"type":"bot_command"}]}}]}%</code></pre>



<h2 class="wp-block-heading">Récupérer le script telegram-notification-linux</h2>



<ul class="wp-block-list">
<li>Vous récupérez le projet git</li>



<li>Vous copiez <code>telegram-notification.sh</code> dans <code>/usr/local/bin/</code> et appliquez un <code>chmod +x</code></li>



<li>Vous copiez <code>telegram-notification.conf.example</code> dans <code>/usr/local/etc/telegram-notification.conf</code></li>



<li>Vous modifiez <code>telegram-notification.conf</code> pour y ajouter votre accessToken et votre chatID</li>
</ul>



<pre class="wp-block-code"><code class="">git clone https://github.com/belgotux/telegram-notification-linux.git
cd telegram-notification-linux/
cp telegram-notification.sh /usr/local/bin/
chmod +x /usr/local/bin/telegram-notification.sh
vim telegram-notification.conf</code></pre>



<h3 class="wp-block-heading">Utilisation du script de notification Telegram</h3>



<p>Voici différents cas d&rsquo;utilisation et le résultat: </p>



<pre class="wp-block-code"><code class="">telegram-notification.sh -m "Space disc critic" -t "test" -c
telegram-notification.sh -m "Space disc high" -t "test" -w 
telegram-notification.sh -m "service blabla need attention" -w
telegram-notification.sh -m "simple report"
telegram-notification.sh -m "simple report with title" -t "my title \xF0\x9F\x90\xA2" </code></pre>



<figure class="wp-block-image size-full"><img decoding="async" width="407" height="259" src="https://www.monlinux.net/wp-content/uploads/notification-telegram-linux-Debian.png" alt="notification telegram envoyée par serveur Debian" class="wp-image-1660" srcset="https://www.monlinux.net/wp-content/uploads/notification-telegram-linux-Debian.png 407w, https://www.monlinux.net/wp-content/uploads/notification-telegram-linux-Debian-300x191.png 300w" sizes="(max-width: 407px) 100vw, 407px" /></figure>
<p>L’article <a href="https://www.monlinux.net/2022/12/notification-bot-telegram-sous-linux-debian/">Notification Bot Telegram sous Linux Debian</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.monlinux.net/2022/12/notification-bot-telegram-sous-linux-debian/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>NUT &#8211; parler à son UPS &#8211; notifications mails/push et arrêt propre du système</title>
		<link>https://www.monlinux.net/2018/03/nut-ups-notifications-mails-et-arret/</link>
					<comments>https://www.monlinux.net/2018/03/nut-ups-notifications-mails-et-arret/#comments</comments>
		
		<dc:creator><![CDATA[belgotux]]></dc:creator>
		<pubDate>Thu, 01 Mar 2018 20:25:12 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[notification]]></category>
		<category><![CDATA[nut]]></category>
		<category><![CDATA[ups]]></category>
		<guid isPermaLink="false">http://www.monlinux.net/?p=527</guid>

					<description><![CDATA[<p>Afin d&#8217;&#233;viter de corrompre son syst&#232;me de fichiers et &#233;viter des pannes hardware en cas de coupure de courant, l&#8217;UPS est essentiel. M&#234;me pour un petit serveur ou un PC. Il y en a d&#233;j&#224; &#224; partir de 80/90&#8364;. Dans... <a class="more-link" href="https://www.monlinux.net/2018/03/nut-ups-notifications-mails-et-arret/">Continue Reading &#8594;</a></p>
<p>L’article <a href="https://www.monlinux.net/2018/03/nut-ups-notifications-mails-et-arret/">NUT &#8211; parler à son UPS &#8211; notifications mails/push et arrêt propre du système</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Afin d&rsquo;éviter de corrompre son système de fichiers et éviter des pannes hardware en cas de coupure de courant, l&rsquo;UPS est essentiel. Même pour un petit serveur ou un PC. Il y en a déjà à partir de 80/90€. Dans mon cas, j&rsquo;ai un EATON protection station 650. Voici comment configurer NUT pour un UPS USB sous Debian Wheezy.</p>
<p>Mise à jour décembre 2017 : A partir de Debian 9 des modifications sont à faire</p>
<p>Mise à jour mars 2018 : script de notification modifié afin d&rsquo;avoir des notification push sur son smartphone via pushBullet <img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p><strong>Mise à jour février 2023</strong> : <a href="https://www.monlinux.net/2023/02/nut-notifications-push-telegram-pushbullet-pushover-pour-ups/">script de notification totalement revu pour les dépendances, ajout de notification Telegram et Pushover, ainsi qu&rsquo;un rôle Ansible</a> dont j&rsquo;explique les détails dans l&rsquo;article dédié. La partie installation de cet article reste toujours valable <img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p><span id="more-527"></span></p>
<h2>Installation de nut</h2>
<p>Cette installation est pour un <strong>serveur ayant l&rsquo;UPS branché directement en USB ou en SNMP</strong>. Si vous avez 2 serveurs alimentés par l&rsquo;UPS, <strong>j&rsquo;explique également comment configurer un serveur nut slave</strong>. Dans ce cas, le serveur slave interroge le serveur NUT du serveur master (qui a l&rsquo;UPS branché en USB).</p>
<p>Installation des outils :</p>
<pre class="lang:sh decode:true ">apt-get install nut</pre>
<p>Pour utiliser un UPS disposant d&rsquo;une carte réseau avec SNMP configuré :</p>
<pre class="lang:sh decode:true">apt-get install nut-snmp</pre>
<p>Chercher le bon driver :</p>
<pre class="lang:sh decode:true ">less /usr/share/nut/driver.list</pre>
<p>Configurer ups.conf pour un UPS relié en USB :</p>
<pre class="lang:sh decode:true">[home-nas-ups]
driver = usbhid-ups
port = auto
desc = "EATON Protection Station 650"</pre>
<p>Configurer ups.conf pour un gros UPS qui dispose d&rsquo;une carte réseau en SNMP :</p>
<pre class="lang:sh decode:true ">[ups-bat2]
driver = snmp-ups
port = 10.1.2.3
community = monitor
#       mibs=appc
snmp_version=v2c
pollfreq=30
desc = "AEG Protect D. 3000"</pre>
<p>Configurer upsd.conf pour un serveur en standalone :</p>
<pre class="lang:sh decode:true ">LISTEN 127.0.0.1 3493</pre>
<p>Configurer upsd.conf sur le master si on a plusieurs serveurs alimenté par l&rsquo;UPS :</p>
<pre class="lang:sh decode:true">LISTEN 0.0.0.0 3493</pre>
<p>Configurer upsd.users :</p>
<pre class="lang:sh decode:true ">[admin]
password = *********
actions = SET
instcmds = ALL

[nutsoft]
password = *****
actions = FSD
upsmon master</pre>
<p>Si vous avez 2 serveurs qui sont sur le même UPS, voici la configuration d&rsquo;un accès pour le serveur slave <strong>à configurer dans le fichier upsd.users du master nut</strong> :</p>
<pre class="lang:sh decode:true">[nutslave]
password = **********
upsmon slave
</pre>
<h2>Script de notification d&rsquo;évènement NUT par mail / SMS / push</h2>
<p>J&rsquo;ai créé un <a href="https://github.com/belgotux/nutNotify" target="_blank" rel="noopener">script de notification NUT sur Github</a> afin d&rsquo;être alerté d&rsquo;un évènement sur l&rsquo;UPS par mail ou sms. Depuis mars 2018, par <strong>notification push sur son smartphone</strong>! Depuis le début d&rsquo;année 2023, un <a href="https://www.monlinux.net/2023/02/nut-notifications-push-telegram-pushbullet-pushover-pour-ups/">article complet sur une mise à jour majeure du script est disponible avec de nouvelles notifications Push comme Telegram</a>.</p>
<p>Il faut créer un compte sur le <a href="https://www.pushbullet.com">site de pushBullet</a> et installer l&rsquo;<a href="https://play.google.com/store/apps/details?id=com.pushbullet.android&amp;hl=fr">application Android</a>. Elle existe aussi pour windows phone ou iPhone. Une fois loggé avec votre compte Google, allez dans <strong>Settings &gt; Account &gt; « Create Access Token ».</strong> Copiez le code apparu pour le mettre dans le fichier de configuration dans la variable « accessToken ».</p>
<p>Les notifications sont variables :</p>
<ul>
<li>On peut très bien être averti uniquement par mail d&rsquo;un soucis de déconnexion usb à l&rsquo;UPS</li>
<li>Etre averti au passage sous batterie par mail, sms et push.</li>
<li>Etc</li>
</ul>
<p>Le script envoi un mail à « alert ». On crée donc un alias dans /etc/aliases :</p>
<pre class="lang:sh decode:true ">alert: &#109;onm&#97;i&#108;&#64;my&#100;&#111;main.t&#108;d</pre>
<p>Et on applique la configuration avec la commande :</p>
<pre class="lang:sh decode:true ">newaliases</pre>
<h3>Intégration du script de notification</h3>
<p>Pour intégrer le script de notification dans la configurer de NUT, il faut <strong>modifier le fichier upsmon.conf du master</strong> :</p>
<pre class="lang:sh decode:true">RUN_AS_USER nut
MONITOR home-nas-ups@localhost:3493 1 nutsoft ***** master
NOTIFYCMD /usr/local/bin/nutNotify.sh
#multiple instances running simultaneously

NOTIFYMSG ONLINE "ONLINE %s"
NOTIFYMSG ONBATT "ONBATT %s"
NOTIFYMSG LOWBATT "LOWBATT %s"
NOTIFYMSG FSD "FSD %s"
NOTIFYMSG COMMBAD "COMMBAD %s"
NOTIFYMSG COMMOK "COMMOK %s"
NOTIFYMSG SHUTDOWN "SHUTDOWN %s"
NOTIFYMSG REPLBATT "REPLBATT %s"
NOTIFYMSG NOCOMM "NOCOMM %s"

NOTIFYFLAG ONLINE SYSLOG+EXEC
NOTIFYFLAG ONBATT SYSLOG+EXEC
NOTIFYFLAG LOWBATT SYSLOG+WALL+EXEC
NOTIFYFLAG FSD SYSLOG+WALL+EXEC
NOTIFYFLAG COMMBAD SYSLOG+EXEC
NOTIFYFLAG COMMOK SYSLOG+EXEC
NOTIFYFLAG SHUTDOWN SYSLOG+WALL+EXEC
NOTIFYFLAG REPLBATT SYSLOG+EXEC
NOTIFYFLAG NOCOMM SYSLOG+EXEC

#NOTIFYMSG type message

POWERDOWNFLAG /var/lib/nutsoft/killpower
#POWERDOWNFLAG /var/tmp/killpower
#Dans la doc :
#POWERDOWNFLAG /etc/killpower
SHUTDOWNCMD "/sbin/shutdown -h +0"

FINALDELAY 2
MINSUPPLIES 1
RBWARNTIME 604800
NOCOMMWARNTIME 21600

POLLFREQ 15
POLLFREQALERT 30
HOSTSYNC 15
DEADTIME 45</pre>
<p>Voici une configuration pour un serveur slave de upsmon.conf</p>
<pre class="lang:sh decode:true">RUN_AS_USER nutsoft
MONITOR ups-bat2@localhost 1 nutsoft ***** master
NOTIFYCMD /usr/local/bin/nutNotify.sh
#multiple instances running simultaneously

NOTIFYMSG ONLINE "ONLINE %s"
NOTIFYMSG ONBATT "ONBATT %s"
NOTIFYMSG LOWBATT "LOWBATT %s"
NOTIFYMSG FSD "FSD %s"
NOTIFYMSG COMMBAD "COMMBAD %s"
NOTIFYMSG COMMOK "COMMOK %s"
NOTIFYMSG SHUTDOWN "SHUTDOWN %s"
NOTIFYMSG REPLBATT "REPLBATT %s"
NOTIFYMSG NOCOMM "NOCOMM %s"

NOTIFYFLAG ONLINE SYSLOG+EXEC
NOTIFYFLAG ONBATT SYSLOG+EXEC
NOTIFYFLAG LOWBATT SYSLOG+WALL+EXEC
NOTIFYFLAG FSD SYSLOG+WALL+EXEC
NOTIFYFLAG COMMBAD SYSLOG+EXEC
NOTIFYFLAG COMMOK SYSLOG+EXEC
NOTIFYFLAG SHUTDOWN SYSLOG+WALL+EXEC
NOTIFYFLAG REPLBATT SYSLOG+EXEC
NOTIFYFLAG NOCOMM SYSLOG+EXEC

#NOTIFYMSG type message

POWERDOWNFLAG /var/lib/nutsoft/killpower
SHUTDOWNCMD "/sbin/shutdown -h +0"

FINALDELAY 2
MINSUPPLIES 1
RBWARNTIME 604800
NOCOMMWARNTIME 21600

POLLFREQ 30
POLLFREQALERT 60
HOSTSYNC 15
DEADTIME 15</pre>
<p>Configurer nut.conf pour un seul serveur sur l&rsquo;UPS :</p>
<pre class="lang:sh decode:true ">MODE=standalone
UPSD_OPTIONS="-u root"    #car upsdrvctl a besoin d'être spécifié en root</pre>
<p>En cas de serveur master et slave, éditer le fichier nut.conf sur le master :</p>
<pre class="lang:sh decode:true">MODE=netserver
UPSD_OPTIONS="-u root"</pre>
<p>Opérations pour l&rsquo;utilisateur spécifique :</p>
<ul>
<li>créer fichier de log et modif user :</li>
</ul>
<pre class="lang:sh decode:true">touch /var/log/nutNotify.log &amp;&amp; chown nut:nut /var/log/nutNotify.log</pre>
<h2>UPS de test</h2>
<p>Pour tester les scripts, implémentation et autre, on peut utiliser un driver de test : dummy-ups</p>
<p>Voici l&rsquo;exemple qui permet de tester son script de notification par exemple :</p>
<pre class="lang:sh decode:true ">[dummy]
driver = dummy-ups
port = evolution500.dev
desc = "dummy-ups in dummy mode"

[repeater]
driver = dummy-ups
port = ups@hostname
desc = "dummy-ups in repeater mode"</pre>
<p><strong>Explications :</strong></p>
<p>Il faut bien comprendre que upsmon va exécuter le script notify avec l&rsquo;argument adéquoit : passage sous batterie, restauration du secteur, batterie faible ou signal d&rsquo;arrêt des serveurs</p>
<p>Lorsque le signale LOWBATT est reçu, le SHUTDOWNCMD est exécuté après le FINALDELAY. Par défaut le script init halt appelle le script « ups-monitor shutdown » qui appelle réellement le script d&rsquo;init « nut shutdown ». Celui-ci vérifie que le fichier POWERDOWNFLAG existe et contient the « magic string » de nut (cela peut poser problème lors de test, faire attention). Ensuite, le script demande au gestionnaire de driver (upsdrvctl) d&rsquo;envoyer le signal de shutdown à l&rsquo;UPS avec un delay de 20 secondes par exemple (dépend des UPS).</p>
<p>Si besoin, modifier la ligne 165 « if $upsmon -K &gt;/dev/null 2&gt;&amp;1 ; then » par « if [ 1 ] ; then », si l&rsquo;on veut pouvoir créer ce flag soit même</p>
<p>Attention que le fichier POWERDOWNFLAG doit se trouver sur la partition racine p.e. car il est exécuté en dernier dans les scripts rc.0. Le mettre dans /tmp quand on a un tmpfs ne fonctionnera pas.</p>
<p>Pour plus d&rsquo;informations, <a href="https://networkupstools.org/docs/user-manual.chunked/ar01s06.html#UPS_shutdown" target="_blank" rel="noopener">rendez-vous sur le site officiel de Nut</a>.</p>
<h2>Problèmes possibles</h2>
<h3>Cas 1 &#8211; mauvaise syntaxe</h3>
<pre class="lang:sh decode:true ">#upsmon
Network UPS Tools upsmon 2.4.3
Unable to use old-style MONITOR line without a username</pre>
<p>Problème de ligne dans le fichier de configuration upsmon.conf attention au power value 1!!!</p>
<h3>Cas 2 &#8211; driver ne démarre pas</h3>
<pre class="lang:sh decode:true ">Can't connect to UPS [home-nas-ups] (usbhid-ups-home-nas-ups): No such file or directory</pre>
<p>Vérifier que le driver est bien chargé (besoin de lancer en root&#8230;) :</p>
<pre class="lang:sh decode:true">#upsdrvctl start
Network UPS Tools - UPS driver controller 2.4.3
Network UPS Tools - Generic HID driver 0.34 (2.4.3)
USB communication driver 0.31
Can't claim USB device [0463:ffff]: could not detach kernel driver from interface 0: Operation not permitted Driver failed to start (exit status=1)</pre>
<p>Tester en root :</p>
<pre class="lang:sh decode:true ">upsdrvctl -t -u root start</pre>
<p>Aide du driver de l&rsquo;UPS :</p>
<pre class="lang:sh decode:true ">/lib/nut/usbhid-ups -h</pre>
<p>Editer le fichier d&rsquo;init, chercher la ligne « ! $upsdrvctl start » et remplacer par « ! $upsdrvctl -u root start »</p>
<h3> Problème 3 &#8211; driver non démarré automatiquement sur Squeeze</h3>
<p>Si upsdrvctl ne se lance pas avec /etc/init.d/nut start sous <span style="text-decoration: underline;">Debian Squeeze</span>, alors il s&rsquo;agit peut-être d&rsquo;un problème de droits.</p>
<pre class="lang:sh decode:true "># /etc/init.d/nut stop
Stopping Network UPS Tools: (driver(s) failed) upsd upsmon.</pre>
<p>Essayer sans et avec les options root :</p>
<pre class="lang:sh decode:true "># /sbin/upsdrvctl start
Network UPS Tools - UPS driver controller 2.4.3
Network UPS Tools - Generic HID driver 0.37 (2.6.4)
USB communication driver 0.32
interrupt pipe disabled (add 'pollonly' flag to 'ups.conf' to get rid of this message)
Can't claim USB device [051d:0003]: could not detach kernel driver from interface 0: Operation not permitted
Driver failed to start (exit status=1)

# /sbin/upsdrvctl -u root start
Network UPS Tools - UPS driver controller 2.4.3
Network UPS Tools - Generic HID driver 0.37 (2.6.4)
USB communication driver 0.32
interrupt pipe disabled (add 'pollonly' flag to 'ups.conf' to get rid of this message)
Using subdriver: APC HID 0.95</pre>
<p>Il faut donc éditer le script d&rsquo;init, c&rsquo;est pas propre, mais pas le choix :</p>
<pre class="lang:sh decode:true "># diff /tmp/nut /etc/init.d/nut
84c84
&lt;           ! $upsdrvctl start &gt;/dev/null 2&gt;&amp;1  &amp;&amp;  \
---
&gt;           ! $upsdrvctl -u root start &gt;/dev/null 2&gt;&amp;1  &amp;&amp;  \</pre>
<p>Le driver est correctement chargé :</p>
<pre class="lang:sh decode:true "># /etc/init.d/nut start
Starting Network UPS Tools: driver(s) upsd upsmon.
</pre>
<h2>Nut-cgi</h2>
<p>installer le paquet :</p>
<pre class="lang:sh decode:true ">apt-get install nut-cgi</pre>
<p>Configurer le fichier hosts.conf :</p>
<pre class="lang:sh decode:true ">MONITOR home-nas-ups@localhost:3493 "EATON Protection Station 650"</pre>
<p>Configurer le fichier upsset.conf :</p>
<pre class="lang:sh decode:true ">I_HAVE_SECURED_MY_CGI_DIRECTORY</pre>
<p>Configuration pour Apache, éditer /etc/apache2/site-enable/000-default :</p>
<pre class="lang:sh decode:true">#ScriptAlias /nut/cgi-bin /usr/lib/cgi-bin/nut
ScriptAlias /cgi-bin/nut /usr/lib/cgi-bin/nut
&lt;Directory /usr/lib/cgi-bin/nut&gt;
AllowOverride AuthConfig
Options ExecCGI
Order allow,deny
Allow from all
&lt;/Directory&gt;

Alias /nut /usr/share/nut/www
&lt;Directory /usr/share/nut/www &gt;
Options None
AllowOverride None
Order allow,deny
allow from all
&lt;/Directory&gt;</pre>
<p>Configuration pour Lighttpd, éditer /etc/lighttpd/lighttpd.conf :</p>
<pre class="lang:sh decode:true ">alias.url = ( "/nut/cgi-bin" =&gt; "/usr/lib/cgi-bin/nut" )
alias.url += ( "/cgi-bin/nut" =&gt; "/usr/lib/cgi-bin/nut" )
alias.url += ( "/nut" =&gt; "/usr/share/nut/www" )</pre>
<h2>Commandes utiles</h2>
<ul>
<li>upscmd : interragir avec l&rsquo;UPS commande</li>
<li>désactiver temporairement le beeper : upscmd -u admin -p &lsquo;jeypErjEm!ogIm9&rsquo; ups-antenne beeper.mute</li>
<li>upsrw : set UPS variables</li>
<li>upsc : CLi pour monitorer l&rsquo;ups</li>
</ul>
<p>L’article <a href="https://www.monlinux.net/2018/03/nut-ups-notifications-mails-et-arret/">NUT &#8211; parler à son UPS &#8211; notifications mails/push et arrêt propre du système</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.monlinux.net/2018/03/nut-ups-notifications-mails-et-arret/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>Openvpn notify &#8211; notification email de connexion utilisateur</title>
		<link>https://www.monlinux.net/2015/03/openvpn-notify-email-connexion-utilisateur/</link>
					<comments>https://www.monlinux.net/2015/03/openvpn-notify-email-connexion-utilisateur/#comments</comments>
		
		<dc:creator><![CDATA[belgotux]]></dc:creator>
		<pubDate>Mon, 09 Mar 2015 20:56:49 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[notification]]></category>
		<category><![CDATA[openvpn]]></category>
		<category><![CDATA[script]]></category>
		<guid isPermaLink="false">http://www.monlinux.net/?p=821</guid>

					<description><![CDATA[<p>Lorsque l&#8217;on souhaite mettre &#224; disposition des employ&#233;s un VPN, il est important de savoir qui l&#8217;utilise. Il existe &#233;videment le log habituel, mais pas tr&#232;s pratique dans la majorit&#233; des cas. Pour savoir qui est connect&#233; en temps r&#233;el,... <a class="more-link" href="https://www.monlinux.net/2015/03/openvpn-notify-email-connexion-utilisateur/">Continue Reading &#8594;</a></p>
<p>L’article <a href="https://www.monlinux.net/2015/03/openvpn-notify-email-connexion-utilisateur/">Openvpn notify &#8211; notification email de connexion utilisateur</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Lorsque l&rsquo;on souhaite mettre à disposition des employés un VPN, il est important de savoir qui l&rsquo;utilise. Il existe évidement le log habituel, mais pas très pratique dans la majorité des cas.</p>
<p>Pour savoir qui est connecté en temps réel, on peut déjà utiliser cette option dans la configuration serveur l&rsquo;OpenVPN :</p>
<pre class="lang:sh decode:true ">status /var/log/openvpn-status.log</pre>
<p>Mais c&rsquo;est encore mieux d&rsquo;être averti par mail en live que quelqu&rsquo;un se connecte à notre VPN OpenVPN !</p>
<p>Il faut ajouter ces 3 lignes dans le fichier de configuration serveur OpenVPN :</p>
<pre class="lang:sh decode:true ">script-security 2
client-connect /usr/local/bin/openvpn-notify.sh
client-disconnect /usr/local/bin/openvpn-notify.sh</pre>
<p>Cela permet à OpenVPN de faire appel à ces scripts lors d&rsquo;une connexion ou déconnexion d&rsquo;un client. Dans mon cas, c&rsquo;est le même script, car des variables d&rsquo;environnement permettent d&rsquo;obtenir l&rsquo;action (connect ou disconnect) et de gérer l&rsquo;action désirée dans le script.</p>
<p>Les variables d&rsquo;environnement servent à passer les paramètres d&rsquo;OpenVPN dont on a besoin dans notre script. Il existe une liste liste impressionnante, voir le man d&rsquo;<a href="https://openvpn.net/index.php/open-source/documentation/manuals/65-openvpn-20x-manpage.html" target="_blank" rel="noopener">openvpn à la section Environmental Variables</a>.</p>
<p>Celles que j&rsquo;ai utilisées :</p>
<ul>
<li>$script_type : permet de récupérer l&rsquo;action client-connect ou client-disconnect</li>
<li>$config : permet de récupérer le chemin absolut de la configuration vpn (pratique si on dispose de plusieurs VPN afin de les distinguer)</li>
<li>$common_name : le nom du client openvpn afin de savoir qui s&rsquo;y connecte</li>
<li>$trusted_ip : l&rsquo;IP publique par laquelle le client se connecte au VPN</li>
<li>$ifconfig_remote : l&rsquo;IP interne du VPN obtenue par le client</li>
</ul>
<p>Je vous livre mon script « tout fait qui va bien » dans la suite de cet article, il est personnalisable et sous licence GPLv3.</p>
<p><span id="more-821"></span></p>
<p>Dans ce script les fonctions connect-action et disconnect-action sont personnalisables.</p>
<p>Dans mon cas je n&rsquo;utilise que la notification mail appelée dans une autre fonction. <a href="https://www.monlinux.net/wp-content/uploads/openvpn-notify.sh_.txt">openvpn-notify.sh</a>.</p>
<pre class="lang:sh decode:true">#!/bin/bash
# Auteur : Belgotux
# Site : www.monlinux.net
# Adresse : b&#101;lgotux&#64;m&#111;nl&#105;&#110;&#117;&#120;.&#110;&#101;&#116;
# Version : 1.0
# Date : 08-03-2015
# Licence : GPLv3
# Changelog : 
# Description : 
#   use openvpn local environment variable, see openvpn man
#   In your server config file :
#    client-connect /usr/local/bin/openvpn-notify.sh
#    client-disconnect /usr/local/bin/openvpn-notify.sh

MAILTO=root

function connect-action () {
    mail-notify
}

function disconnect-action () {
    mail-notify
}

function mail-notify () {
    (echo "
    action = $script_type
    VPN = $config
    Common name = $common_name
    Public IP address = $trusted_ip
    VPN get address = $ifconfig_remote"
    ) | mail -s "$script_type $(basename $config .conf) $common_name" $MAILTO
    return $?
}

case $script_type in

    client-connect)
        connect-action
    ;;

    client-disconnect)
        disconnect-action
    ;;

    *)
    exit 0
    ;;
esac


exit 0
</pre>
<p>On fait un reload d&rsquo;openvpn pour les options serveur rajoutées et voilà.</p>
<p>L’article <a href="https://www.monlinux.net/2015/03/openvpn-notify-email-connexion-utilisateur/">Openvpn notify &#8211; notification email de connexion utilisateur</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.monlinux.net/2015/03/openvpn-notify-email-connexion-utilisateur/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/

Mise en cache de page à l’aide de Disk: Enhanced 
Mise en cache de la base de données de 36/52 requêtes en 0.035 secondes utilisant Disk

Served from: www.monlinux.net @ 2026-04-07 14:07:00 by W3 Total Cache
-->