{"id":2949,"date":"2017-05-28T19:29:35","date_gmt":"2017-05-28T18:29:35","guid":{"rendered":"http:\/\/olivier.hoarau.org\/?p=2949"},"modified":"2023-10-22T07:38:19","modified_gmt":"2023-10-22T06:38:19","slug":"linux-et-onduleur","status":"publish","type":"post","link":"https:\/\/olivier.hoarau.org\/?p=2949","title":{"rendered":"Linux et onduleur"},"content":{"rendered":"\n<p>A la faveur d&rsquo;une coupure de courant je me suis rendu compte que les batteries de mon onduleur speex pp210 \u00e9taient nazes.<\/p>\n\n\n\n<center><br><a href=\"https:\/\/www.amazon.fr\/Sweex-PP210-Intelligent-Onduleur-1000\/dp\/B0039NGWDE\/ref=as_li_ss_il?ie=UTF8&amp;qid=1495987151&amp;sr=8-1&amp;keywords=sweex+pp210&amp;&amp;linkCode=li2&amp;tag=blog0d24-21&amp;linkId=e26d4bfd31a4e5adcbb7dd2c8696a46a\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"\/\/ws-eu.amazon-adsystem.com\/widgets\/q?_encoding=UTF8&amp;ASIN=B0039NGWDE&amp;Format=_SL160_&amp;ID=AsinImage&amp;MarketPlace=FR&amp;ServiceVersion=20070822&amp;WS=1&amp;tag=blog0d24-21\" border=\"0\"><\/a><img loading=\"lazy\" decoding=\"async\" class=\"znyegrssqousdhiegztu\" style=\"border: none !important; margin: 0px !important;\" src=\"https:\/\/ir-fr.amazon-adsystem.com\/e\/ir?t=blog0d24-21&amp;l=li2&amp;o=8&amp;a=B0039NGWDE\" alt=\"\" width=\"1\" height=\"1\" border=\"0\"><\/center>\n\n\n\n<p>du coup mon serveur <a href=\"http:\/\/olivier.hoarau.org\/?p=2195\">Poweredge T310 <\/a>est tomb\u00e9 brutalement, heureusement sans cons\u00e9quence facheuse. Ni une ni deux, j&rsquo;ai command\u00e9 deux batteries en remplacement et j&rsquo;ai configur\u00e9 <a href=\"http:\/\/networkupstools.org\/\">NUT<\/a> comprendre Network UPS Tools sur mon serveur. J&rsquo;ai d&rsquo;abord essay\u00e9 le package par d\u00e9faut de ma mageia mais rien ne marchait finalement j&rsquo;ai install\u00e9 les tarballs de NUT avec la version 2.7.4 que j&rsquo;ai compil\u00e9 avec les options suivantes:<\/p>\n\n\n<div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-bash code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-bash code-embed-code\">.\/configure --with-cgi --with-cgipath=\/usr\/local\/apache2\/cgi-bin --prefix=\/usr\/local --with-statepath=\/var\/state\/ups --with-user=ups --with-group=ups --with-pidpath=\/var\/run\/nut<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div>\n\n\n\n<p>voil\u00e0 ce que \u00e7a donne avant de lancer la compilation<\/p>\n\n\n<div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-markup code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-markup code-embed-code\">Configuration summary:<br\/>======================<br\/>build serial drivers: yes <br\/>build USB drivers: yes <br\/>build SNMP drivers: no <br\/>build neon based XML driver: no <br\/>enable Avahi support: no <br\/>build Powerman PDU client driver: no <br\/>build IPMI driver: no <br\/>build Mac OS X meta-driver: no <br\/>build i2c based drivers: no <br\/>enable SSL support: yes (OpenSSL)<br\/>enable libwrap (tcp-wrappers) support: yes <br\/>enable libltdl (Libtool dlopen abstraction) support: yes <br\/>build nut-scanner: yes<br\/>build CGI programs: yes <br\/>build and install documentation: no <br\/>build and install the development files: no<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div>\n\n\n\n<p>quant \u00e0 mon onduleur, quand je le branche sur son port USB,<\/p>\n\n\n\n<p><\/p>\n\n\n\n<!--more-->\n\n\n\n<p>voil\u00e0 ce que me remonte <strong>journalctl<\/strong><\/p>\n\n\n<div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-bash code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-bash code-embed-code\">mai 28 12:04:33 mana.kervao.fr kernel: usb 2-1.1: new low-speed USB device number 3 using ehci-pci<br\/>mai 28 12:04:33 mana.kervao.fr kernel: usb 2-1.1: New USB device found, idVendor=0665, idProduct=5161<br\/>mai 28 12:04:33 mana.kervao.fr kernel: usb 2-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3<br\/>mai 28 12:04:33 mana.kervao.fr kernel: usb 2-1.1: Product: USB to Serial<br\/>mai 28 12:04:33 mana.kervao.fr kernel: usb 2-1.1: Manufacturer: INNO TECH<br\/>mai 28 12:04:33 mana.kervao.fr kernel: usb 2-1.1: SerialNumber: 20100205<br\/>mai 28 12:04:33 mana.kervao.fr mtp-probe[5713]: checking bus 2, device 3: &quot;\/sys\/devices\/pci0000:00\/0000:00:1d.0\/usb2\/2-1\/2-1.1&quot;<br\/>mai 28 12:04:33 mana.kervao.fr mtp-probe[5713]: bus: 2, device: 3 was not an MTP device<br\/>mai 28 12:04:33 mana.kervao.fr kernel: hidraw: raw HID events driver (C) Jiri Kosina<br\/>mai 28 12:04:33 mana.kervao.fr kernel: usbcore: registered new interface driver usbhid<br\/>mai 28 12:04:33 mana.kervao.fr kernel: usbhid: USB HID core driver<br\/>mai 28 12:04:33 mana.kervao.fr kernel: hid-generic 0003:0665:5161.0001: hiddev0,hidraw0: USB HID v1.00 Device [INNO TECH USB to Serial] on usb-0000:00:1d.0-1.1\/input0<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div>\n\n\n\n<p><strong>lsusb<\/strong> donne<\/p>\n\n\n<div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-bash code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-bash code-embed-code\">Bus 002 Device 003: ID 0665:5161 Cypress Semiconductor USB to Serial<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div>\n\n\n\n<p>Le fichier sp\u00e9cial <strong>\/dev\/hidraw0<\/strong> est automatiquement cr\u00e9\u00e9. A ce stade l\u00e0 j&rsquo;ai cr\u00e9\u00e9 un utilisateur et un groupe <strong>ups<\/strong> et je fais de donner les bons droits au fichier sp\u00e9cial en cr\u00e9ant le fichier <strong>\/etc\/udev\/rules.d\/99_nut-serialups.rules<\/strong> qui va contenir<\/p>\n\n\n<div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-bash code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-bash code-embed-code\">KERNEL==&quot;hidraw0&quot;, GROUP=&quot;ups&quot;, MODE=&quot;0666&quot;<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div>\n\n\n\n<p>maintenant on va faire en sorte que les r\u00e9pertoires (\u00e0 cr\u00e9er \u00e9ventuellement) <strong>\/var\/run\/nut<\/strong>, <strong>\/var\/state\/ups<\/strong> et <strong>\/var\/state\/ups\/upssched <\/strong>appartiennent \u00e0 l&rsquo;utilisateur <strong>ups<\/strong> et au groupe <strong>ups<\/strong> (droits 755).<\/p>\n\n\n\n<p>On va maintenant cr\u00e9er les fichiers de configuration qu&rsquo;on retrouve sous<strong> \/usr\/local\/etc<\/strong>, on commence par <strong>ups.conf<\/strong><\/p>\n\n\n<div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-bash code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-bash code-embed-code\">[onduleur]<br\/> driver = blazer_usb<br\/> port = \/dev\/hidraw0<br\/> vendorid = 0665<br\/> productid = 5161<br\/> desc = &quot;Sweex PP210&quot;<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div>\n\n\n\n<p>A noter qu&rsquo;on trouvera <a href=\"http:\/\/networkupstools.org\/stable-hcl.html\">ici<\/a> la liste des onduleurs reconnus. On passe maintenant \u00e0 <strong>upsd.conf<\/strong><\/p>\n\n\n<div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-bash code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-bash code-embed-code\">MAXAGE 15<br\/>LISTEN 127.0.0.1 3493<br\/>MAXCONN 1024<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div>\n\n\n\n<p>ne pas oublier d&rsquo;ouvrir le port TCP 3493 sous <a href=\"http:\/\/www.funix.org\/fr\/linux\/index.php?ref=intrusions#Installer_un_firewall_avec_shorewall\">shorewall<\/a> (\u00e7a vous \u00e9vitera de perdre une heure comme moi \u00e0 ne pas comprendre pourquoi la connexion \u00e9tait refus\u00e9e). Et <strong>upsd.users<\/strong><\/p>\n\n\n<div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-bash code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-bash code-embed-code\">[admin]<br\/>    password = adminpass<br\/>    actions = SET<br\/>    instcmds = ALL<br\/><br\/>[upsmonitor]<br\/>    password  = userpass<br\/>    upsmon master<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div>\n\n\n\n<p>nut.conf<\/p>\n\n\n<div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-bash code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-bash code-embed-code\">MODE=standalone<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div>\n\n\n\n<p>et pour terminer <strong>upsmon.conf<\/strong><\/p>\n\n\n<div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-bash code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-bash code-embed-code\">RUN_AS_USER ups<br\/>MONITOR onduleur@localhost 1 upsmonitor userpass master <br\/>MINSUPPLIES 1<br\/>SHUTDOWNCMD &quot;\/sbin\/shutdown -h  0&quot;<br\/>POLLFREQ 5<br\/>POLLFREQALERT 5<br\/>HOSTSYNC 15<br\/>DEADTIME 15<br\/>POWERDOWNFLAG \/etc\/killpower<br\/>RBWARNTIME 43200<br\/>NOCOMMWARNTIME 300<br\/>FINALDELAY 5<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div>\n\n\n\n<p>pour le d\u00e9tail des param\u00e8tres je vous invite \u00e0 consulter la <a href=\"http:\/\/networkupstools.org\/documentation.html\">doc<\/a> (copieuse) de <strong>NUT<\/strong>, \u00e0 l&rsquo;occasion je ferai une page sur mon site <a href=\"http:\/\/www.funix.org\">FUNIX<\/a> pour synth\u00e9tiser tout \u00e7a.<\/p>\n\n\n\n<p>On peut maintenant si \u00e7a marche, on se connecte sur l&rsquo;onduleur en tant que root en tapant<\/p>\n\n\n\n<p><strong>blazer_usb -a onduleur -D -u root<\/strong><\/p>\n\n\n\n<p>et voil\u00e0 le r\u00e9sultat<\/p>\n\n\n<div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-bash code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-bash code-embed-code\">Network UPS Tools - Megatec\/Q1 protocol USB driver 0.12 (2.7.4)<br\/>   0.000000\tdebug level is &#039;1&#039;<br\/>   0.457449\tSupported UPS detected with mustek protocol<br\/>   0.649380\tVendor information read 1 failed<br\/>   0.713380\tVendor information read 2 failed<br\/>   0.777382\tVendor information read 3 failed<br\/>   0.777401\tVendor information unavailable<br\/>   0.777407\tNo values provided for battery high\/low voltages in ups.conf<br\/><br\/>   0.777426\tUsing &#039;guestimation&#039; (low: 20.800000, high: 26.000000)!<br\/>   0.777433\tBattery runtime will not be calculated (runtimecal not set)<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div>\n\n\n\n<p>on peut essayer de se connecter en tant qu&rsquo;utilisateur ups pour voir s&rsquo;il n&rsquo;y a pas de probl\u00e8me de droits en tapant<\/p>\n\n\n\n<p><strong>blazer_usb -a onduleur -D -u ups<\/strong><\/p>\n\n\n\n<p>une fois cette \u00e9tape franchie, j&rsquo;ai cr\u00e9\u00e9 les fichiers suivants sous <strong>\/usr\/lib\/systemd\/system<\/strong> histoire que les daemons soient lanc\u00e9s automatiquement au d\u00e9marrage et g\u00e9r\u00e9s par <strong>systemd<\/strong>. On commence par<strong> nut-driver.service<\/strong><\/p>\n\n\n<div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-bash code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-bash code-embed-code\">[Unit]<br\/>Description=Network UPS Tools - power device driver controller<br\/>After=local-fs.target network.target<br\/><br\/>[Service]<br\/>ExecStart=\/usr\/local\/sbin\/upsdrvctl start<br\/>ExecStop=\/usr\/local\/sbin\/upsdrvctl stop<br\/>Type=forking<br\/><br\/>[Install]<br\/>WantedBy=multi-user.target<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div>\n\n\n\n<p><strong>nut-monitor.service<\/strong><\/p>\n\n\n<div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-bash code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-bash code-embed-code\">[Unit]<br\/>Description=Network UPS Tools - power device monitor and shutdown controller<br\/>After=local-fs.target network.target nut-server.service<br\/><br\/>[Service]<br\/>ExecStart=\/usr\/local\/sbin\/upsmon<br\/>Type=forking<br\/><br\/>[Install]<br\/>WantedBy=multi-user.target<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div>\n\n\n\n<p>et enfin <strong>nut-server.service<\/strong><\/p>\n\n\n<div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-bash code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-bash code-embed-code\">[Unit]<br\/>Description=Network UPS Tools - power devices information server<br\/>After=local-fs.target network.target nut-driver.service<br\/>Requires=nut-driver.service<br\/>Before=nut-monitor.service<br\/><br\/>[Service]<br\/>ExecStart=\/usr\/local\/sbin\/upsd <br\/>Type=forking<br\/><br\/>[Install]<br\/>WantedBy=multi-user.target<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div>\n\n\n\n<p>on veillera \u00e0 activer ses nouveaux services en tapant<\/p>\n\n\n\n<p><strong>systemctl enable nut-driver<\/strong><br><strong>systemctl enable nut-monitor<\/strong><br><strong>systemctl enable nut-serveur<\/strong><\/p>\n\n\n\n<p>on y est presque ! On lance maintenant le premier daemon <strong>upsdrvctl<\/strong> qui contr\u00f4le l&rsquo;interfa\u00e7age physique avec l&rsquo;onduleur<\/p>\n\n\n\n<p><strong>systemctl enable nut-driver<\/strong><\/p>\n\n\n\n<p>et voil\u00e0 la trace que nous donne <strong>journalctl<\/strong><\/p>\n\n\n<div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-bash code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-bash code-embed-code\">mai 28 15:34:08 mana.kervao.fr upsdrvctl[5792]: Supported UPS detected with mustek protocol<br\/>mai 28 15:34:08 mana.kervao.fr upsdrvctl[5792]: Vendor information unavailable<br\/>mai 28 15:34:08 mana.kervao.fr upsdrvctl[5792]: No values provided for battery high\/low voltages in ups.conf<br\/>mai 28 15:34:08 mana.kervao.fr upsdrvctl[5792]: Using &#039;guestimation&#039; (low: 20.800000, high: 26.000000)!<br\/>mai 28 15:34:08 mana.kervao.fr upsdrvctl[5792]: Battery runtime will not be calculated (runtimecal not set)<br\/>mai 28 15:34:08 mana.kervao.fr blazer_usb[5799]: Startup successful<br\/>mai 28 15:34:08 mana.kervao.fr upsdrvctl[5792]: Network UPS Tools - UPS driver controller 2.7.4<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div>\n\n\n\n<p>on lance maintenant le deuxi\u00e8me daemon upds qui fait l&rsquo;interface entre le daemon <strong>upsdrvctl<\/strong> et les clients<\/p>\n\n\n\n<p><strong>systemctl enable nut-server<\/strong><\/p>\n\n\n\n<p>et voil\u00e0 la trace que nous donne <strong>journalctl<\/strong><\/p>\n\n\n<div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-bash code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-bash code-embed-code\">mai 28 17:04:02 mana.kervao.fr upsd[26712]: \/var\/state\/ups is world readable<br\/>mai 28 17:04:02 mana.kervao.fr upsd[26712]: Connected to UPS [onduleur]: blazer_usb-onduleur<br\/>mai 28 17:04:02 mana.kervao.fr upsd[26714]: Startup successful<br\/>mai 28 17:04:02 mana.kervao.fr upsd[26712]: listening on 127.0.0.1 port 3493<br\/>mai 28 17:04:02 mana.kervao.fr upsd[26712]: \/var\/state\/ups is world readable<br\/>mai 28 17:04:02 mana.kervao.fr upsd[26712]: Connected to UPS [onduleur]: blazer_usb-onduleur<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div>\n\n\n\n<p>il y a un petit mot bizarre car le r\u00e9pertoire<strong> \/var\/state\/ups<\/strong> n&rsquo;est pas \u00e0 777, on ignore donc. On lance maintenant <strong>nut-monitor<\/strong> qui permet d&rsquo;interroger <strong>upsd<\/strong> pour conna\u00eetre l&rsquo;\u00e9tat de l&rsquo;onduleur et surtout lancer les commandes sp\u00e9cifiques en fonction des \u00e9v\u00e8nements, en tapant<\/p>\n\n\n\n<p><strong>systemctl start nut-monitor<\/strong><\/p>\n\n\n\n<p>et voil\u00e0 la trace que nous donne <strong>journalctl<\/strong><\/p>\n\n\n<div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-bash code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-bash code-embed-code\">mai 28 17:22:56 mana.kervao.fr upsmon[27356]: UPS: onduleur@localhost (master) (power value 1)<br\/>mai 28 17:22:56 mana.kervao.fr upsmon[27358]: Startup successful<br\/>mai 28 17:22:56 mana.kervao.fr upsmon[27356]: Using power down flag file \/etc\/killpower<br\/>mai 28 17:22:56 mana.kervao.fr upsd[26714]: User upsmonitor@127.0.0.1 logged into UPS [onduleur]<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div>\n\n\n\n<p>pour voir si tout fonctionne je tape simplement <strong>upsc -L<\/strong> qui renvoie<\/p>\n\n\n<div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-bash code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-bash code-embed-code\">onduleur: Sweex PP210<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div>\n\n\n\n<p>maintenant on dispose d&rsquo;un outil accessible via un navigateur, pour cela il faut disposer d&rsquo;un serveur <a href=\"http:\/\/www.funix.org\/fr\/linux\/index.php?ref=apache2\">apache<\/a>. On commence donc par d\u00e9placer les fichiers html qui sont sous <strong>\/usr\/local\/html<\/strong> sous<strong> \/usr\/local\/apache2\/htdoc<\/strong> (ou n&rsquo;importe o\u00f9 accessible via <strong>apache<\/strong>). On enl\u00e8ve bien s\u00fbr le <strong>sample<\/strong> \u00e0 la fin du nom des fichiers. Le fichier <strong>\/usr\/local\/etc\/hosts.conf<\/strong> contiendra<\/p>\n\n\n<div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-bash code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-bash code-embed-code\">MONITOR onduleur@localhost &quot;mon onduleur&quot;<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div>\n\n\n\n<p>on modifie \u00e9galement le fichier <strong>\/usr\/local\/etc\/upsset.conf<\/strong> qui contiendra<\/p>\n\n\n<div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-bash code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-bash code-embed-code\">I_HAVE_SECURED_MY_CGI_DIRECTORY<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div>\n\n\n\n<p>on veillera \u00e0 cr\u00e9er un fichier<strong> .htaccess<\/strong> sous<strong> \/usr\/local\/apache2\/cgi-bin<\/strong> permettant seulement aux machines du r\u00e9seau local (192.168.0.X) de pouvoir acc\u00e9der aux scripts CGI de <strong>NUT<\/strong><\/p>\n\n\n<div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-bash code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-bash code-embed-code\">&lt;Files upsset.cgi&gt;<br\/>   deny from all<br\/>   allow from 192.168.0.1\/24<br\/>&lt;\/Files&gt;<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div>\n\n\n\n<p>dans le r\u00e9pertoire <strong>\/usr\/local\/apache2\/cgi-bin<\/strong> on trouve les scripts CGI <strong>upsimage.cgi<\/strong>, <strong>upsset.cgi<\/strong> et <strong>upsstats.cgi <\/strong>de de NUT. Et voil\u00e0 ce que \u00e7a donne en cliquant sur <strong>Statistics<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.funix.org\/fr\/linux\/images\/softs\/nut\/nut.jpg?w=474\" alt=\"\"\/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>et en cliquant sur \u00ab\u00a0mon onduleur\u00a0\u00bb<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.funix.org\/fr\/linux\/images\/softs\/nut\/nut2.jpg?w=474\" alt=\"\"\/><\/figure>\n\n\n\n<p>dans <strong>Settings<\/strong> on a acc\u00e8s \u00e0 certaines commandes (il faudra saisir pr\u00e9alablement le mot de passe admin d\u00e9fini sous <strong>upsd.users<\/strong>).<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.funix.org\/fr\/linux\/images\/softs\/nut\/nut3.jpg?w=474\" alt=\"\"\/><\/figure>\n\n\n\n<p>Maintenant y a plus qu&rsquo;\u00e0 tester ! Et c&rsquo;est l\u00e0 que j&rsquo;ai aper\u00e7u furtivement en d\u00e9branchant la prise de l&rsquo;onduleur le message suivant<\/p>\n\n\n<div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-bash code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-bash code-embed-code\">mai 28 17:37:06 mana.kervao.fr upsmon[27359]: UPS onduleur@localhost on battery<br\/>                                                                               <br\/>Diffusion de message de ups@mana.kervao.fr (somewhere) (Sun May 28 17:37:06 201<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div>\n\n\n\n<p>sauf que mon onduleur est tomb\u00e9 dans la foul\u00e9e ! Il faut que croire que je n&rsquo;avais pas qu&rsquo;un probl\u00e8me de batteries. Donc pour l&rsquo;instant je n&rsquo;ai pu valider totalement toute l&rsquo;installation de NUT, il y aura sans doute un deuxi\u00e8me \u00e9pisode apr\u00e8s avoir investi dans un nouvel onduleur.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A la faveur d&rsquo;une coupure de courant je me suis rendu compte que les batteries de mon onduleur speex pp210 \u00e9taient nazes. du coup mon serveur Poweredge T310 est tomb\u00e9 brutalement, heureusement sans cons\u00e9quence facheuse. Ni une ni deux, j&rsquo;ai command\u00e9 deux batteries en remplacement et j&rsquo;ai configur\u00e9 NUT comprendre Network UPS Tools sur mon &hellip; <a href=\"https:\/\/olivier.hoarau.org\/?p=2949\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">Linux et onduleur<\/span>  <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","_share_on_mastodon":"0"},"categories":[5,12,10],"tags":[],"class_list":["post-2949","post","type-post","status-publish","format-standard","hentry","category-logiciels-libres","category-vie-de-funix","category-vie-de-mes-sites"],"share_on_mastodon":{"url":"","error":""},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/peOjJ-Lz","jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=\/wp\/v2\/posts\/2949","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2949"}],"version-history":[{"count":3,"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=\/wp\/v2\/posts\/2949\/revisions"}],"predecessor-version":[{"id":6379,"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=\/wp\/v2\/posts\/2949\/revisions\/6379"}],"wp:attachment":[{"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2949"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2949"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2949"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}