{"id":846,"date":"2018-09-18T13:28:28","date_gmt":"2018-09-18T16:28:28","guid":{"rendered":"http:\/\/www.tech-nico.com\/blog\/?p=846"},"modified":"2018-09-18T13:40:22","modified_gmt":"2018-09-18T16:40:22","slug":"scripts-mikrotik-2-esenciales-para-un-sys-admin-ether-state-and-speedtest","status":"publish","type":"post","link":"http:\/\/www.tech-nico.com\/blog\/scripts-mikrotik-2-esenciales-para-un-sys-admin-ether-state-and-speedtest\/","title":{"rendered":"Scripts Mikrotik | 2 esenciales para un sys admin: Ether state and Speedtest"},"content":{"rendered":"<h2><strong>2 Scripts que yo denomino \u00abCriminales\u00bb<\/strong><\/h2>\n<p>Hola amigos,\u00a0 disculpen la ausencia, estamos con muchas implementaciones, pero no queria dejar pasar esta oportunidad de dejarles 2 script que trabajan de la mano y para mi gusto son increibles.<\/p>\n<h2>Script 1: Chequear el estado de un puerto ethernet<\/h2>\n<p>Este script esta pendiente del estado de un puerto de red que le configuremos. Es decir que esta atento a si el estado del puerto esa con link o sin link. Cuando el puerto hace link chequea que tenga salida a internet haciendo un ping a www.tech-nico.com.<br \/>\nSi tiene salida a internet, entonces ahi entra en juego el script nro 2.<\/p>\n<p>[PHP]<br \/>\n# Nicolas: Tech-nico.com\/blog<br \/>\n# CHEQUEAMOS ESTADO DE ETHERNET<br \/>\n:global etherNET;<br \/>\n:set  $etherNET value=\u00bbether1&#8243;;<br \/>\n:global \u00abether-state\u00bb;<br \/>\n:global \u00abether-laststate\u00bb;<br \/>\n\/interface ethernet monitor $etherNET once do={:set \u00abether-state\u00bb $status};<br \/>\n:if ($\u00bbether-state\u00bb != $\u00bbether-laststate\u00bb) do={<br \/>\n  :log info (\u00abInterface $etherNET &#8211; link status cambio a: \u00bb . $\u00bbether-state\u00bb);<br \/>\n  :set \u00abether-laststate\u00bb $\u00bbether-state\u00bb;<br \/>\n    :do {<br \/>\n          :put [:resolve www.tech-nico.com];<br \/>\n          :if ($\u00bbether-state\u00bb=\u00bblink-ok\u00bb) do { :log warning (\u00abHACER TEST!!\u00bb); \/system script run speedtest; }<br \/>\n     } on-error={ :put \u00abresolver failed\u00bb};<br \/>\n}<br \/>\n[\/PHP]<\/p>\n<h2>Script 2: Hacer un test de velocidad descargando un archivo<\/h2>\n<p>En principio enciende la pantalla LCD del equipo (tenemos que usar alg\u00fan equipo como un RB-2011) para mostrar la velocidad de download reflejada en la pantalla. F\u00edjense que tienen que editar la url donde dice archivo_pesado.tif y setear el servidor y nombre de archivo que ustedes tengan, y usen como prueba. Se recomienda alg\u00fan video AVI pesado, (algo que pueda almacenar nuestro RB).<\/p>\n<p>[PHP]<br \/>\n{<br \/>\n# Nicolas: Tech-nico.com\/blog<br \/>\n# HACEMOS UN SPEEDTEST<br \/>\n\/lcd backlight state=on;<br \/>\nlocal startTime [\/system clock get time];<br \/>\n:global myurl \u00abhttp:\/\/www.tech-nico.com\/archivo_pesado.tif\u00bb;<br \/>\n\/tool fetch url=$myurl  mode=http;<br \/>\nlocal endTime [\/system clock get time];<br \/>\n# subtract startTime from endTime to get time elapsed<br \/>\nlocal finalTime ( $endTime &#8211; $startTime );<br \/>\n# convert hours to seconds, add to sum<br \/>\n:local sum ( $sum + ( [ :pick $finalTime 0 2 ] * 60 * 60 ));<br \/>\n# convert minutes to seconds, add to sum<br \/>\n:set sum ( $sum + ( [ :pick $finalTime 3 5 ] * 60 ));<br \/>\n# add seconds to sum<br \/>\n:set sum ( $sum + [ :pick $finalTime 6 8 ] );<br \/>\n:local sise [[\/file get [\/file find name=archivo_pesado.tif] size] \/1024];<br \/>\n:local sdonspped ((($sise \/ $sum ) * 8 ) \/1024);<br \/>\n:local ddow ((($sdonspped *1000) \/8) \/ 1024);<br \/>\n:global speedtest $sdonspped;<br \/>\n:log warning  (\u00abMy connection Speed \u00ab.[:pick $sdonspped 0 1] .\u00bb.\u00bb. [:pick $sdonspped 1 3] . \u00bb Mbps\u00bb );<br \/>\n:log error (\u00abMy Speed Download  = \u00ab. $ddow .\u00bb Kbps\u00bb);<br \/>\n}<br \/>\n[\/PHP]<\/p>\n<h3>Casos de uso<\/h3>\n<p>La idea de estos 2 script es la siguiente:\u00a0 Crear una herramienta para mostrarle al cliente \u00absin encender ninguna computadora\u00bb, cual es el rendimiento de su conexion a internet. Por eso es un requisito fundamental usarlo con modelos de hardward que tengan pantalla LCD.\u00a0Tambien porque en el mercado no existe ningun tester o appliance que haga algo tan basico como un testspeed y lo entregue de manera elegante en una pantallita LCD, Sin paracticamente configurar nada. Loco no?<\/p>\n<h3>Funcionamiento<\/h3>\n<p>En mi caso tengo configurado un usuario PPPoE en el ether1. El mismo puerto esta seteado en el Script 1 para chequear el estado de red. Una vez que es detectado el estado del ethernet como UP, hacemos un ping, y si el PPPoE client alcanzo a conectar, el ping a tech-nico.com nos va a dar OK, con lo cual finalmente se va a ejecutar el download.<\/p>\n<p>Pd: Aclaro que la foto fue \u00abgestionada\u00bb con google. Aclaro por si aparece el due\u00f10.\u00a0 \ud83d\ude00<\/p>\n<p>____________________<br \/>\nPrimero en <a href=\"http:\/\/tech-nico.com\/blog\">tech-nico.com\/blog<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>2 Scripts que yo denomino \u00abCriminales\u00bb Hola amigos,\u00a0 disculpen la ausencia, estamos con muchas implementaciones, pero no queria dejar pasar esta oportunidad de dejarles 2 script que trabajan de la mano y para mi gusto son increibles. Script 1: Chequear &hellip; <a href=\"http:\/\/www.tech-nico.com\/blog\/scripts-mikrotik-2-esenciales-para-un-sys-admin-ether-state-and-speedtest\/\">Sigue leyendo <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":3,"featured_media":848,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[73],"tags":[48],"class_list":["post-846","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-scripts","tag-mikrotik"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/www.tech-nico.com\/blog\/wp-content\/uploads\/2018\/09\/mikrotik-touchscreen.jpg?fit=960%2C540","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/phA9Q-dE","jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":484,"url":"http:\/\/www.tech-nico.com\/blog\/api-mikrotik-activar-o-desactivar-un-puerto-ethernet\/","url_meta":{"origin":846,"position":0},"title":"API MIKROTIK &#8211; Activar o desactivar un puerto ethernet","author":"soporte","date":"octubre 11, 2013","format":false,"excerpt":"A pedido del lector Vitor Monteiro, vamos a presentar un peque\u00f1o y facil ejemplo para habilitar o deshabilitar un puerto ethernet con cierto nombre. \u00bfComo funciona? Lo que vamos a hacer es definir una variable llamada $name que va a contener el nombre de la interfaz que queremos activar o\u2026","rel":"","context":"En \u00abPHP\u00bb","block_context":{"text":"PHP","link":"http:\/\/www.tech-nico.com\/blog\/category\/programacion\/php\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.tech-nico.com\/blog\/wp-content\/uploads\/2015\/05\/logo_tech_nico.com_.jpg?fit=1200%2C1018&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.tech-nico.com\/blog\/wp-content\/uploads\/2015\/05\/logo_tech_nico.com_.jpg?fit=1200%2C1018&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.tech-nico.com\/blog\/wp-content\/uploads\/2015\/05\/logo_tech_nico.com_.jpg?fit=1200%2C1018&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.tech-nico.com\/blog\/wp-content\/uploads\/2015\/05\/logo_tech_nico.com_.jpg?fit=1200%2C1018&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.tech-nico.com\/blog\/wp-content\/uploads\/2015\/05\/logo_tech_nico.com_.jpg?fit=1200%2C1018&resize=1050%2C600 3x"},"classes":[]},{"id":497,"url":"http:\/\/www.tech-nico.com\/blog\/api-mikrotik-con-php-indice-general\/","url_meta":{"origin":846,"position":1},"title":"API MIKROTIK &#8211; (con php) &#8211; Indice general","author":"soporte","date":"octubre 19, 2013","format":false,"excerpt":"Hola a Todos! Los post me han quedado un poco desconectados, asi que arme un indice que voy a ir actualizando a medida que agregue info. 1) Introduccion: que puedo hacer con este API? 2) Primer Script: Crear nuestro primer ejemplo para acceder a tu RouterOS y testear el acceso.\u2026","rel":"","context":"En \u00abgeneral\u00bb","block_context":{"text":"general","link":"http:\/\/www.tech-nico.com\/blog\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.tech-nico.com\/blog\/wp-content\/uploads\/2015\/05\/logo_tech_nico.com_.jpg?fit=1200%2C1018&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.tech-nico.com\/blog\/wp-content\/uploads\/2015\/05\/logo_tech_nico.com_.jpg?fit=1200%2C1018&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.tech-nico.com\/blog\/wp-content\/uploads\/2015\/05\/logo_tech_nico.com_.jpg?fit=1200%2C1018&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.tech-nico.com\/blog\/wp-content\/uploads\/2015\/05\/logo_tech_nico.com_.jpg?fit=1200%2C1018&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.tech-nico.com\/blog\/wp-content\/uploads\/2015\/05\/logo_tech_nico.com_.jpg?fit=1200%2C1018&resize=1050%2C600 3x"},"classes":[]},{"id":493,"url":"http:\/\/www.tech-nico.com\/blog\/mikrotik-script-ejecutar-un-script-si-aparece-cierta-palabra-o-frase-en-el-log\/","url_meta":{"origin":846,"position":2},"title":"Mikrotik Script: ejecutar un script si aparece cierta palabra o frase en el Log.","author":"soporte","date":"octubre 12, 2013","format":false,"excerpt":"En el foro de Mikrotik\u00a0un participante ha posteado algo interesante!! Creo que el titulo esta bastante claro, es un script que detecta cierto contenido en el log, y luego ejecuta \"otro script\". Script: ver el post completo en el foro de Mikrotik Primero en tech-nico.com","rel":"","context":"En \u00abProgramaci\u00f3n\u00bb","block_context":{"text":"Programaci\u00f3n","link":"http:\/\/www.tech-nico.com\/blog\/category\/programacion\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.tech-nico.com\/blog\/wp-content\/uploads\/2015\/05\/logo_tech_nico.com_.jpg?fit=1200%2C1018&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.tech-nico.com\/blog\/wp-content\/uploads\/2015\/05\/logo_tech_nico.com_.jpg?fit=1200%2C1018&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.tech-nico.com\/blog\/wp-content\/uploads\/2015\/05\/logo_tech_nico.com_.jpg?fit=1200%2C1018&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.tech-nico.com\/blog\/wp-content\/uploads\/2015\/05\/logo_tech_nico.com_.jpg?fit=1200%2C1018&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.tech-nico.com\/blog\/wp-content\/uploads\/2015\/05\/logo_tech_nico.com_.jpg?fit=1200%2C1018&resize=1050%2C600 3x"},"classes":[]},{"id":613,"url":"http:\/\/www.tech-nico.com\/blog\/script-mikrotik-mandar-backup-por-ftp\/","url_meta":{"origin":846,"position":3},"title":"Script Mikrotik, mandar backup por FTP","author":"soporte","date":"junio 2, 2015","format":false,"excerpt":"Un usuario del foro oficial de mikrotik\u00a0publico un peque\u00f1o script\u00a0para enviar un backup de\u00a0nuestro RouterOS por FTP. Muy bueno para automatizar nuestros routers y enviar todos los backups a una caja NAS. _________ publicado en tech-nico.com","rel":"","context":"En \u00abProgramaci\u00f3n\u00bb","block_context":{"text":"Programaci\u00f3n","link":"http:\/\/www.tech-nico.com\/blog\/category\/programacion\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.tech-nico.com\/blog\/wp-content\/uploads\/2015\/05\/logo_tech_nico.com_.jpg?fit=1200%2C1018&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.tech-nico.com\/blog\/wp-content\/uploads\/2015\/05\/logo_tech_nico.com_.jpg?fit=1200%2C1018&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.tech-nico.com\/blog\/wp-content\/uploads\/2015\/05\/logo_tech_nico.com_.jpg?fit=1200%2C1018&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.tech-nico.com\/blog\/wp-content\/uploads\/2015\/05\/logo_tech_nico.com_.jpg?fit=1200%2C1018&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.tech-nico.com\/blog\/wp-content\/uploads\/2015\/05\/logo_tech_nico.com_.jpg?fit=1200%2C1018&resize=1050%2C600 3x"},"classes":[]},{"id":693,"url":"http:\/\/www.tech-nico.com\/blog\/mikrotik-tip-ojo-con-los-backups-y-las-mac-address\/","url_meta":{"origin":846,"position":4},"title":"Mikrotik [tip] Ojo con los Backups y las mac-address!","author":"soporte","date":"agosto 2, 2016","format":false,"excerpt":"No es nada bueno, pero tiene soluci\u00f3n: Si por alguna raz\u00f3n estas configurando tus equipos routerboard, puede que en alg\u00fan punto necesites acelerar el proceso de configuraci\u00f3n y decidas crear\u00a0un backup de uno de los equipos para luego restaurarlo en el resto de los los routerboard que vayas utilizando.\u00a0El problema\u2026","rel":"","context":"En \u00abtrucos\u00bb","block_context":{"text":"trucos","link":"http:\/\/www.tech-nico.com\/blog\/category\/trucos\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.tech-nico.com\/blog\/wp-content\/uploads\/2016\/08\/20160721_205032-e1470143709369.jpg?fit=1200%2C1021&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.tech-nico.com\/blog\/wp-content\/uploads\/2016\/08\/20160721_205032-e1470143709369.jpg?fit=1200%2C1021&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.tech-nico.com\/blog\/wp-content\/uploads\/2016\/08\/20160721_205032-e1470143709369.jpg?fit=1200%2C1021&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.tech-nico.com\/blog\/wp-content\/uploads\/2016\/08\/20160721_205032-e1470143709369.jpg?fit=1200%2C1021&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.tech-nico.com\/blog\/wp-content\/uploads\/2016\/08\/20160721_205032-e1470143709369.jpg?fit=1200%2C1021&resize=1050%2C600 3x"},"classes":[]},{"id":670,"url":"http:\/\/www.tech-nico.com\/blog\/script-mikrotik-para-hacer-parpadear-un-led-del-router\/","url_meta":{"origin":846,"position":5},"title":"Script Mikrotik para hacer parpadear un led del router.","author":"soporte","date":"febrero 28, 2016","format":false,"excerpt":"Vos dir\u00e1s.. y para que lo quiero?. Tal como dice\u00a0el creador del script (foro Mikrotik) podr\u00eda servir para se\u00f1alar\u00a0remotamente (al tecnico in-situ)\u00a0cual es el\u00a0equipo que tiene que supervisar.\u00a0Lo acabo de\u00a0probar\u00a0y me anduvo bien.\u00a0Es una pabada, pero a mi me encant\u00f3. :) Importar por consola https:\/\/www.youtube.com\/watch?v=ZrId0YXRBA8&feature=youtu.be","rel":"","context":"En \u00abProgramaci\u00f3n\u00bb","block_context":{"text":"Programaci\u00f3n","link":"http:\/\/www.tech-nico.com\/blog\/category\/programacion\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.tech-nico.com\/blog\/wp-content\/uploads\/2015\/05\/logo_tech_nico.com_.jpg?fit=1200%2C1018&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.tech-nico.com\/blog\/wp-content\/uploads\/2015\/05\/logo_tech_nico.com_.jpg?fit=1200%2C1018&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.tech-nico.com\/blog\/wp-content\/uploads\/2015\/05\/logo_tech_nico.com_.jpg?fit=1200%2C1018&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.tech-nico.com\/blog\/wp-content\/uploads\/2015\/05\/logo_tech_nico.com_.jpg?fit=1200%2C1018&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.tech-nico.com\/blog\/wp-content\/uploads\/2015\/05\/logo_tech_nico.com_.jpg?fit=1200%2C1018&resize=1050%2C600 3x"},"classes":[]}],"_links":{"self":[{"href":"http:\/\/www.tech-nico.com\/blog\/wp-json\/wp\/v2\/posts\/846","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.tech-nico.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.tech-nico.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.tech-nico.com\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"http:\/\/www.tech-nico.com\/blog\/wp-json\/wp\/v2\/comments?post=846"}],"version-history":[{"count":3,"href":"http:\/\/www.tech-nico.com\/blog\/wp-json\/wp\/v2\/posts\/846\/revisions"}],"predecessor-version":[{"id":850,"href":"http:\/\/www.tech-nico.com\/blog\/wp-json\/wp\/v2\/posts\/846\/revisions\/850"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/www.tech-nico.com\/blog\/wp-json\/wp\/v2\/media\/848"}],"wp:attachment":[{"href":"http:\/\/www.tech-nico.com\/blog\/wp-json\/wp\/v2\/media?parent=846"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.tech-nico.com\/blog\/wp-json\/wp\/v2\/categories?post=846"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.tech-nico.com\/blog\/wp-json\/wp\/v2\/tags?post=846"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}