{"id":64,"date":"2009-05-05T14:23:16","date_gmt":"2009-05-05T12:23:16","guid":{"rendered":"http:\/\/guimi.net\/blogs\/hiparco\/?p=64"},"modified":"2009-06-22T13:40:06","modified_gmt":"2009-06-22T11:40:06","slug":"instalar-un-sai-ups-en-gnulinux","status":"publish","type":"post","link":"http:\/\/guimi.net\/blogs\/hiparco\/instalar-un-sai-ups-en-gnulinux\/","title":{"rendered":"Instalar un SAI (UPS) en GNU\/Linux"},"content":{"rendered":"<p>Instalaremos como ejemplo un SAI Yukai PowerMust 600 con conexi&oacute;n al puerto serie y conexi&oacute;n USB.<br \/>\n&nbsp;<\/p>\n<p>Instalamos el sistema nut (<i>Network UPS Tools<\/i>):<br \/>\n<font class=\"comando\"># aptitude install nut<br \/><\/font><br \/>\n&nbsp;<br \/>\nSi instalamos el SAI en un puerto USB, adem&aacute;s:<br \/>\n<font class=\"comando\"># aptitude install nut-usb<br \/><\/font><br \/>\nSi instalamos el SAI en un puerto serie autorizamos al usuario nut el acceso al mismo:<br \/>\n<font class=\"comando\"># adduser nut dialout<br \/><\/font><br \/>\n&nbsp;<br \/>\nConfiguramos el demonio nut:<br \/>\n<font class=\"comando\"># vi \/etc\/default\/nut<br \/><\/font><\/p>\n<pre class=\"codigo\">\r\n<font class=\"comentario\"># start upsd<\/font>\r\nSTART_UPSD=yes\r\n\r\n<font class=\"comentario\"># set upsd specific options. use \"man upsd\" for more info<\/font>\r\nUPSD_OPTIONS=\"\"\r\n\r\n<font class=\"comentario\"># start upsmon<\/font>\r\nSTART_UPSMON=yes\r\n\r\n<font class=\"comentario\"># set upsmon specific options. use \"man upsmon\" for more info<\/font>\r\nUPSMON_OPTIONS=\"\"\r\n<\/pre>\n<p><\/p>\n<p>Consultamos el controlador que necesitamos para nuestro SAI en la web de <a href=\"http:\/\/eu1.networkupstools.org\/compat\/stable.html\" class=\"externo\">Network UPS Tools<\/a>. Para el SAI del ejemplo necesitamos el controlador &#8220;megatec&#8221;.<br \/>\n&nbsp;<br \/>\nIndicamos al sistema la existencia de nuestro SAI:<br \/>\n<font class=\"comando\"># vi \/etc\/nut\/ups.conf<br \/><\/font><\/p>\n<pre class=\"codigo\">\r\n[yukai]\r\n\tdriver = megatec\r\n\t<font class=\"comentario\"># si usamos puerto serie\r\n\t# port = \/dev\/ttyS0<\/font>\r\n\t<font class=\"comentario\"># si usamos puerto USB\r\n\t# port = auto<\/font>\r\n\tport = xxxxxx\r\n\tdesc = \"Yukai PowerMust 600\"\r\n<\/pre>\n<p>\nIndicamos al demonio los permisos sobre el SAI (permiso local):<br \/>\n<font class=\"comando\"># vi \/etc\/nut\/upsd.conf<br \/><\/font><\/p>\n<pre class=\"codigo\">\r\nACL all 0.0.0.0\/0\r\nACL localhost 127.0.0.1\/32\r\n\r\nACCEPT localhost\r\nREJECT all\r\n<\/pre>\n<p>\nCreamos un usuario para gestionar el SAI:<br \/>\n<font class=\"comando\"># vi \/etc\/nut\/upsd.users<br \/><\/font><\/p>\n<pre class=\"codigo\">\r\n[yukai_admin]\r\npassword = mi_clave\r\nallowfrom = localhost\r\nactions = SET\r\ninstcmds = ALL\r\n<\/pre>\n<p><\/p>\n<p>Y por &uacute;ltimo configuramos el monitor:<br \/>\n<font class=\"comando\"># vi \/etc\/nut\/upsmon.conf<br \/><\/font><\/p>\n<pre class=\"codigo\">\r\nMONITOR yukai@localhost 1 yukai_admin mi_clave master\r\nRUN_AS_USER nut\r\nMINSUPPLIES 1\r\nSHUTDOWNCMD \"\/sbin\/shutdown -h +0\"\r\nPOLLFREQ 5\r\nPOLLFREQALERT 5\r\nHOSTSYNC 15\r\nDEADTIME 15\r\nPOWERDOWNFLAG \/etc\/killpower\r\n\r\nNOTIFYMSG ONLINE \"UPS: Normal state\"\r\nNOTIFYMSG ONBATT \"UPS: On battery\"\r\nNOTIFYMSG LOWBATT \"UPS: Battery low\"\r\nNOTIFYMSG FSD \"UPS: Starting shutdown\"\r\nNOTIFYMSG COMMOK \"UPS: Communication restored\"\r\nNOTIFYMSG COMMBAD \"UPS: Communication lose\"\r\nNOTIFYMSG SHUTDOWN \"UPS: Shutting down\"\r\nNOTIFYMSG REPLBATT \"UPS: Replace battery\"\r\n\r\nNOTIFYFLAG ONLINE SYSLOG\r\nNOTIFYFLAG ONBATT SYSLOG+WALL\r\nNOTIFYFLAG LOWBATT SYSLOG+WALL\r\nNOTIFYFLAG FSD SYSLOG+WALL\r\nNOTIFYFLAG COMMOK SYSLOG\r\nNOTIFYFLAG COMMBAD SYSLOG\r\nNOTIFYFLAG SHUTDOWN SYSLOG\r\nNOTIFYFLAG REPLBATT SYSLOG\r\n\r\nRBWARNTIME 43200\r\nNOCOMMWARNTIME 300\r\nFINALDELAY 0\r\n<\/pre>\n<p>\nModificamos los permisos de los ficheros:<\/p>\n<ul>\n<li><font class=\"comando\"># chown root:nut \/etc\/nut\/*<br \/><\/font>\n<li><font class=\"comando\"># chmod o-r \/etc\/nut\/*<br \/><\/font>\n<\/ul>\n<p>\nReiniciamos el servicio:<br \/>\n<font class=\"comando\"># \/etc\/init.d\/nut restart<br \/><\/font><br \/>\nY verificamos que todo funciona correctamente:<br \/>\n<font class=\"comando\"># upsmon status<br \/><\/font><\/p>\n<pre class=\"codigo\">\r\nNetwork UPS Tools upsmon 2.2.2\r\nUPS: yukai@localhost (master) (power value 1)\r\nUsing power down flag file \/etc\/killpower\r\n<\/pre>\n<p>&nbsp;<br \/>\nVerificamos los procesos en marcha:<br \/>\n<font class=\"comando\"># ps aux | grep ups<br \/><\/font><\/p>\n<pre class=\"codigo\">\r\nnut       8513  0.0  0.0   2012   512 ?        Ss   12:01   0:00 \/sbin\/upsd\r\nroot      8515  0.0  0.0   2020   652 ?        Ss   12:01   0:00 \/sbin\/upsmon\r\nnut       8516  0.0  0.0   2020   688 ?        S    12:01   0:00 \/sbin\/upsmon\r\n<\/pre>\n<p><font class=\"comando\"># ps aux | grep nut<br \/><\/font><\/p>\n<pre class=\"codigo\">\r\nnut       8511  0.0  0.0   2012   576 ?        Ss   12:01   0:00 \/lib\/nut\/megatec -a yukai\r\nnut       8513  0.0  0.0   2012   512 ?        Ss   12:01   0:00 \/sbin\/upsd\r\nnut       8516  0.0  0.0   2020   688 ?        S    12:01   0:00 \/sbin\/upsmon\r\n<\/pre>\n<p>\nY verificamos que todo funciona correctamente:<br \/>\n<font class=\"comando\">$ upsc yukai@localhost<br \/><\/font><\/p>\n<pre class=\"codigo\">\r\nbattery.charge: 97.5\r\nbattery.voltage: 13.60\r\nbattery.voltage.nominal: 12.0\r\ndriver.name: megatec\r\ndriver.parameter.pollinterval: 2\r\ndriver.parameter.port: \/dev\/ttyS0\r\ndriver.version: 2.2.2\r\ndriver.version.internal: 1.5.14\r\ninput.frequency: 49.9\r\ninput.frequency.nominal: 50.0\r\ninput.voltage: 209.5\r\ninput.voltage.fault: 209.5\r\ninput.voltage.maximum: 215.2\r\ninput.voltage.minimum: 208.6\r\ninput.voltage.nominal: 220.0\r\noutput.voltage: 209.5\r\nups.beeper.status: enabled\r\nups.delay.shutdown: 0\r\nups.delay.start: 2\r\nups.load: 27.0\r\nups.mfr: unknown\r\nups.model: unknown\r\nups.serial: unknown\r\nups.status: OL\r\nups.temperature: 25.0\r\nups.type: standby\r\n<\/pre>\n<p>\nPodemos mostrar solo parte de la informaci&oacute;n:<br \/>\n<font class=\"comando\">$ upsc yukai@localhost ups.status<br \/><\/font><\/p>\n<pre class=\"codigo\">OL\r\n<\/pre>\n<p>OL indica <i>&#8220;On Line power&#8221;<\/i>. Podr&iacute;a indicar por ejemplo OB (<i>&#8220;On Battery&#8221;<\/i>) o LB (<i>&#8220;Low Battery&#8221;<\/i>).<\/p>\n<p><font class=\"comando\">$ upsc yukai@localhost battery.charge<br \/><\/font><\/p>\n<pre class=\"codigo\">97.5\r\n<\/pre>\n<p>\n&nbsp;<br \/>\nEn escritorios gr&aacute;ficos es &uacute;til -y muy sencilla- la herramienta &#8220;knutclient&#8221; que permite monitorizar el SAI:<br \/>\n<img decoding=\"async\" src=\"\/imgs\/tec-docs\/sai_linux\/knutclient_01.png\" alt=\"knutclient\"><br \/>\n<img decoding=\"async\" src=\"\/imgs\/tec-docs\/sai_linux\/knutclient_02.png\" alt=\"knutclient\"><br \/>\n&nbsp;<\/p>\n<h2>Referencia<\/h2>\n<ul>\n<li>Documentaci&oacute;n de <a href=\"http:\/\/www.networkupstools.org\/doc\/2.2.0\/\" class=\"externo\">Network UPS Tools<\/a>\n<\/ul>\n<p>\n<span class=\"keywords\"><b>instalar un sai (ups) en Linux, configurar sai en Linux, instalar UPS en GNU\/Linux<\/b><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>SAI, UPS, GNU\/Linux, Instalaci\u00f3n de un SAI (UPS) en GNU\/Linux<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,16],"tags":[],"class_list":["post-64","post","type-post","status-publish","format-standard","hentry","category-gnulinux","category-hardware"],"_links":{"self":[{"href":"http:\/\/guimi.net\/blogs\/hiparco\/wp-json\/wp\/v2\/posts\/64","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/guimi.net\/blogs\/hiparco\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/guimi.net\/blogs\/hiparco\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/guimi.net\/blogs\/hiparco\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/guimi.net\/blogs\/hiparco\/wp-json\/wp\/v2\/comments?post=64"}],"version-history":[{"count":13,"href":"http:\/\/guimi.net\/blogs\/hiparco\/wp-json\/wp\/v2\/posts\/64\/revisions"}],"predecessor-version":[{"id":218,"href":"http:\/\/guimi.net\/blogs\/hiparco\/wp-json\/wp\/v2\/posts\/64\/revisions\/218"}],"wp:attachment":[{"href":"http:\/\/guimi.net\/blogs\/hiparco\/wp-json\/wp\/v2\/media?parent=64"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/guimi.net\/blogs\/hiparco\/wp-json\/wp\/v2\/categories?post=64"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/guimi.net\/blogs\/hiparco\/wp-json\/wp\/v2\/tags?post=64"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}