<?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>Richzendy.org &#187; Scripting</title>
	<atom:link href="http://richzendy.org/tag/scripting/feed" rel="self" type="application/rss+xml" />
	<link>http://richzendy.org</link>
	<description>The Experience</description>
	<lastBuildDate>Thu, 26 Apr 2012 02:47:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>WebService SOAP para enviar correo con php</title>
		<link>http://richzendy.org/2011/03/02/webservice-soap-para-enviar-correo-con-php.html</link>
		<comments>http://richzendy.org/2011/03/02/webservice-soap-para-enviar-correo-con-php.html#comments</comments>
		<pubDate>Thu, 03 Mar 2011 01:31:50 +0000</pubDate>
		<dc:creator>Richzendy</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Gnu y Linux]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Scripting]]></category>

		<guid isPermaLink="false">http://richzendy.org/?p=1318</guid>
		<description><![CDATA[Hace poco me encontré con una aplicación java que usa un WebService SOAP para enviar correos de notificaciones, así que configure un servidor de correo local ( sin ssl, sin TLS, sin seguridad ) para hacer pruebas pero luego de intentar mucho nunca funciono, así que para descartar el WebService propio de la aplicación, me hice uno [...]
Articulos Relacionados:<ol>
<li><a href='http://richzendy.org/2008/06/18/scp-a-multiples-maquinas-de-forma-automtica-con-password.html' rel='bookmark' title='scp a múltiples máquinas de forma automática con password'>scp a múltiples máquinas de forma automática con password</a> <small>Ayer tenía la tarea de hacer una modificación en un...</small></li>
<li><a href='http://richzendy.org/2009/07/09/barra-de-progreso-en-tus-scripts-bash.html' rel='bookmark' title='Barra de progreso en tus scripts BASH'>Barra de progreso en tus scripts BASH</a> <small>En estos días he estado realizando un script interactivo en...</small></li>
<li><a href='http://richzendy.org/2009/01/22/condicionales-en-bash.html' rel='bookmark' title='Condicionales en BASH'>Condicionales en BASH</a> <small>Hace unos días me encontraba haciendo unos scripts en BASH...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Hace poco me encontré con una aplicación java que usa un WebService <a title="SOAP en  Wikipedia" href="http://es.wikipedia.org/wiki/Simple_Object_Access_Protocol" target="_blank">SOAP</a> para enviar correos de notificaciones, así que configure un servidor de correo local ( sin ssl, sin TLS, sin seguridad ) para hacer pruebas pero luego de intentar mucho nunca funciono, así que para descartar el WebService propio de la aplicación, me hice uno en tiempo récord en php para probar, ya que desde el servidor usando el comando mail, se podían enviar correos sin ningún tipo de problemas, acá les dejo el código y de antemano les digo que el mismo es solo una prueba de concepto, no es algo para colocar en producción, así que si requiere algo parecido adapte a sus necesidades y mejorelo ( sobre todo del punto de vista de validaciones y seguridad ).</p>
<p>El código del servidor SOAP es el siguiente:</p>
<p><script type="text/javascript" src="http://embed.snipt.org/wnlkj"></script><noscript>if(embedStylesPrinted != true) {document.write('<link type="text/css" rel="stylesheet" href="http://snipt.org/snipt/extend/embed/snipt_js.css">');}var embedStylesPrinted = true;var content = 'Snipt Not Found.';document.write(content);<br>[code snippet: <a href="http://snipt.org/wnlkj">http://snipt.org/wnlkj</a>]</noscript></p>
<p> El código fuente del servicio SOAP grabelo en un archivo con el nombre sendEmail.php y ubiquelo apropiadamente en su webserver, el código fuente del cliente es: </p>
<p><script type="text/javascript" src="http://embed.snipt.org/wnlkl"></script><noscript>if(embedStylesPrinted != true) {document.write('<link type="text/css" rel="stylesheet" href="http://snipt.org/snipt/extend/embed/snipt_js.css">');}var embedStylesPrinted = true;var content = 'Snipt Not Found.';document.write(content);<br>[code snippet: <a href="http://snipt.org/wnlkl">http://snipt.org/wnlkl</a>]</noscript></p>
<p>Guarde el código del cliente en un archivo llamado cliente.php, tome en cuenta la url del wsdl donde está alojado el servicio SOAP (  <strong>http://localhost/sendEmail.php?wsdl</strong> ) y editela a según su conveniencia, también edite la dirección <strong>jhon@doe.com</strong> y cambie  la dirección a la cual quiere que enviar correo, para probar , acceda mediante su navegador al archivo cliente y observe la funcionalidad, si usa firefox, puede ver un bonito wsdl en http://localhost/sendEmail.php?wsdl y si no obtiene el resultado esperado no dude en revisar los archivos de logs /var/log/maillog y /var/log/httpd/error.log ( en sistemas fedora o redhat y derivados )</p>
<p><strong>Referencias:</strong></p>
<ul>
<li><a href="http://www.webcheatsheet.com/PHP/send_email_text_html_attachment.php" target="_blank">http://www.webcheatsheet.com/PHP/send_email_text_html_attachment.php</a></li>
<li><a href="http://www.php.net/manual/en/class.soapserver.php" target="_blank">http://www.php.net/manual/en/class.soapserver.php</a></li>
</ul>
<p><strong> Requerimiento, instalar la librería: yum install php-pear-soap</strong></p>
<p>Articulos Relacionados:<ol>
<li><a href='http://richzendy.org/2008/06/18/scp-a-multiples-maquinas-de-forma-automtica-con-password.html' rel='bookmark' title='scp a múltiples máquinas de forma automática con password'>scp a múltiples máquinas de forma automática con password</a> <small>Ayer tenía la tarea de hacer una modificación en un...</small></li>
<li><a href='http://richzendy.org/2009/07/09/barra-de-progreso-en-tus-scripts-bash.html' rel='bookmark' title='Barra de progreso en tus scripts BASH'>Barra de progreso en tus scripts BASH</a> <small>En estos días he estado realizando un script interactivo en...</small></li>
<li><a href='http://richzendy.org/2009/01/22/condicionales-en-bash.html' rel='bookmark' title='Condicionales en BASH'>Condicionales en BASH</a> <small>Hace unos días me encontraba haciendo unos scripts en BASH...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://richzendy.org/2011/03/02/webservice-soap-para-enviar-correo-con-php.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exportar archivo o script a html en vim</title>
		<link>http://richzendy.org/2009/12/24/exportar-archivo-o-script-a-html-en-vi.html</link>
		<comments>http://richzendy.org/2009/12/24/exportar-archivo-o-script-a-html-en-vi.html#comments</comments>
		<pubDate>Thu, 24 Dec 2009 23:37:56 +0000</pubDate>
		<dc:creator>Richzendy</dc:creator>
				<category><![CDATA[Fedora]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Gnu y Linux]]></category>
		<category><![CDATA[Scripting]]></category>
		<category><![CDATA[Utilidades]]></category>

		<guid isPermaLink="false">http://richzendy.org/?p=827</guid>
		<description><![CDATA[Eventualmente quien a usado vim en algún momento a necesitado exportar un script con su sintaxis coloreada a html, para realizar está acción se requiere tener instalado el paquete vim-enhanced ( en fedora ) , abres tu archivo usando vim y en el modo comando ejecutas: :TOhtml Guardas y sales y tendrás en el mismo [...]
Articulos Relacionados:<ol>
<li><a href='http://richzendy.org/2009/02/26/problemas-con-acentos-en-sql.html' rel='bookmark' title='Problemas con acentos en SQL'>Problemas con acentos en SQL</a> <small>Al intentar migrar este blog desde Jaws a WordPress el...</small></li>
<li><a href='http://richzendy.org/2007/07/20/extensin-de-firefox-de-google-para-guardar-tu-sesin-de-firefox.html' rel='bookmark' title='Extensión de google para guardar tu sesión de FireFox'>Extensión de google para guardar tu sesión de FireFox</a> <small>Leyendo el blog del Russo me conseguí que la gente...</small></li>
<li><a href='http://richzendy.org/2008/06/18/scp-a-multiples-maquinas-de-forma-automtica-con-password.html' rel='bookmark' title='scp a múltiples máquinas de forma automática con password'>scp a múltiples máquinas de forma automática con password</a> <small>Ayer tenía la tarea de hacer una modificación en un...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Eventualmente quien a usado vim en algún momento a necesitado exportar un script con su sintaxis coloreada a html, para realizar está acción se requiere tener instalado el paquete vim-enhanced ( en fedora ) , abres tu archivo usando vim y en el modo comando ejecutas:</p>
<blockquote><p>:TOhtml</p></blockquote>
<p>Guardas y sales y tendrás en el mismo path de tu archivo uno llamado igual pero que se le a agregado la extensión .html al final</p>
<p style="text-align: center;"><a class="tt-flickr tt-flickr-Medium" title="Exportar a html en vim" href="http://richzendy.org/Galeria/photo/4212173282/exportar-a-html-en-vim.html"><img class="aligncenter" style="border: 2px solid black;" src="http://farm3.static.flickr.com/2796/4212173282_e32200b5cf.jpg" alt="Exportar a html en vim" width="500" height="292" /></a></p>
<p>Articulos Relacionados:<ol>
<li><a href='http://richzendy.org/2009/02/26/problemas-con-acentos-en-sql.html' rel='bookmark' title='Problemas con acentos en SQL'>Problemas con acentos en SQL</a> <small>Al intentar migrar este blog desde Jaws a WordPress el...</small></li>
<li><a href='http://richzendy.org/2007/07/20/extensin-de-firefox-de-google-para-guardar-tu-sesin-de-firefox.html' rel='bookmark' title='Extensión de google para guardar tu sesión de FireFox'>Extensión de google para guardar tu sesión de FireFox</a> <small>Leyendo el blog del Russo me conseguí que la gente...</small></li>
<li><a href='http://richzendy.org/2008/06/18/scp-a-multiples-maquinas-de-forma-automtica-con-password.html' rel='bookmark' title='scp a múltiples máquinas de forma automática con password'>scp a múltiples máquinas de forma automática con password</a> <small>Ayer tenía la tarea de hacer una modificación en un...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://richzendy.org/2009/12/24/exportar-archivo-o-script-a-html-en-vi.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Barra de progreso en tus scripts BASH</title>
		<link>http://richzendy.org/2009/07/09/barra-de-progreso-en-tus-scripts-bash.html</link>
		<comments>http://richzendy.org/2009/07/09/barra-de-progreso-en-tus-scripts-bash.html#comments</comments>
		<pubDate>Thu, 09 Jul 2009 12:14:05 +0000</pubDate>
		<dc:creator>Richzendy</dc:creator>
				<category><![CDATA[Fedora]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Gnu y Linux]]></category>
		<category><![CDATA[Scripting]]></category>
		<category><![CDATA[BASH]]></category>
		<category><![CDATA[GNU]]></category>

		<guid isPermaLink="false">http://richzendy.org/?p=475</guid>
		<description><![CDATA[En estos días he estado realizando un script interactivo en BASH y decidí darle una buena presentación gráfica en el terminal usando dialog como generador de interfases , una de las dudas que me surgió es como colocar una barra de progreso en uno de los pasos que se tarda un poco de tiempo a [...]
Articulos Relacionados:<ol>
<li><a href='http://richzendy.org/2009/01/22/condicionales-en-bash.html' rel='bookmark' title='Condicionales en BASH'>Condicionales en BASH</a> <small>Hace unos días me encontraba haciendo unos scripts en BASH...</small></li>
<li><a href='http://richzendy.org/2008/03/14/eliminar-beep-en-gnome-terminal-de-fedora.html' rel='bookmark' title='Eliminar beep en gnome-terminal de Fedora'>Eliminar beep en gnome-terminal de Fedora</a> <small>El molesto beep/sonido/pitido que suena cuando hay algún error de...</small></li>
<li><a href='http://richzendy.org/2009/07/31/fijar-wallpaper-en-gnome.html' rel='bookmark' title='Fijar Wallpaper en Gnome'>Fijar Wallpaper en Gnome</a> <small>Una de las cosas que siempre andan buscando aquellas personas...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>En estos días he estado realizando un script interactivo en BASH y decidí darle una buena presentación gráfica en el terminal usando <a title="Como usar dialog" href="http://www.linuxjournal.com/article/2460" target="_blank">dialog</a> como generador de interfases , una de las dudas que me surgió es como colocar una barra de progreso en uno de los pasos que se tarda un poco de tiempo a manera de tener una presentación un poco más agradable al usuario.</p>
<p>Desgraciadamente la documentación de dialog no explora muy bien esta parte, así que me dedique a investigar y esto fue lo que obtuve:</p>
<p>Antes de continuar debes tener dialog instalado:</p>
<blockquote><p>yum install dialog</p></blockquote>
<p>Y ahora mediante el siguiente comando podemos probar más o menos el uso de la barra de progreso</p>
<blockquote><p>find /etc/ -name *.conf 2&gt;&amp;1  | awk &#8216;{ print (Total+=1)/3.7,&#8221;=&gt;&#8221;,$0}&#8217; | dialog &#8211;gauge &#8220;Espere un momento&#8230;&#8221; 7 70</p></blockquote>
<p>En donde el valor 3.7 es un factor que tiene que ser calculado mediante ensayo y error dependiendo del tiempo que se considere que va a tomar el comando find en ejecutarse, en este caso y para mi computador el valor 3.7 fúe el adecuado, como se ve no es un método muy adecuado para tener una barra de progreso debido a que no sabemos en realidad cuanto puede tardar nuestra acción en el computador de cada quien.</p>
<p>Otra caso de uso, puede ser el del siguiente script, el cual va a ir sumando 1% por cada segundo en la barra de progreso:</p>
<blockquote><p>#!/bin/bash</p>
<p>i=0<br />
while [ $i -le 100 ]<br />
do<br />
echo $i | dialog &#8211;gauge &#8220;Progreso&#8230;&#8221; 7 30<br />
i=`expr $i + 1`<br />
sleep 1<br />
done</p></blockquote>
<p>Usando modificaciones al script pasado puede darse una mejor manera de usar la barra de progreso en dialog, ya que por ejemplo y solo de manera academica ( no creo que sea un caso muy útil de uso ),  la variable $i podría ser el porcentaje de memoria RAM o CPU usado ( previamente calculado con otra operación ).</p>
<p>Otra manera que consegui de hacer una barra de progreso, pero sin usar dialog, más al estilo de la que se muestra cuando se usa el comando wget, se puede conseguir en:</p>
<p style="text-align: center;"><a href="http://www.theiling.de/projects/bar.html" target="_self">http://www.theiling.de/projects/bar.html</a></p>
<p style="text-align: left;">La barra de progreso se ve más o menos así:</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-477" title="Barra de progreso" src="http://richzendy.org/wp-content/uploads/2009/07/bar-cat-n.gif" alt="Barra de progreso" width="504" height="24" /></p>
<p style="text-align: center;">
<p style="text-align: left;">Para conseguir más información de su uso o descargar el código, visita el enlace anterior.</p>
<p>Articulos Relacionados:<ol>
<li><a href='http://richzendy.org/2009/01/22/condicionales-en-bash.html' rel='bookmark' title='Condicionales en BASH'>Condicionales en BASH</a> <small>Hace unos días me encontraba haciendo unos scripts en BASH...</small></li>
<li><a href='http://richzendy.org/2008/03/14/eliminar-beep-en-gnome-terminal-de-fedora.html' rel='bookmark' title='Eliminar beep en gnome-terminal de Fedora'>Eliminar beep en gnome-terminal de Fedora</a> <small>El molesto beep/sonido/pitido que suena cuando hay algún error de...</small></li>
<li><a href='http://richzendy.org/2009/07/31/fijar-wallpaper-en-gnome.html' rel='bookmark' title='Fijar Wallpaper en Gnome'>Fijar Wallpaper en Gnome</a> <small>Una de las cosas que siempre andan buscando aquellas personas...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://richzendy.org/2009/07/09/barra-de-progreso-en-tus-scripts-bash.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Condicionales en BASH</title>
		<link>http://richzendy.org/2009/01/22/condicionales-en-bash.html</link>
		<comments>http://richzendy.org/2009/01/22/condicionales-en-bash.html#comments</comments>
		<pubDate>Thu, 22 Jan 2009 10:33:46 +0000</pubDate>
		<dc:creator>Richzendy</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Gnu y Linux]]></category>
		<category><![CDATA[Scripting]]></category>
		<category><![CDATA[BASH]]></category>

		<guid isPermaLink="false">http://richzendy.org/2009/01/22/condicionales-en-bash.html</guid>
		<description><![CDATA[Hace unos días me encontraba haciendo unos scripts en BASH y necesitaba realizar algunas comprobaciones con un simple if, sin embargo tuve un lapsus mental y se me olvido como revisar la página del manual en donde explican exactamente lo que es cada condicional y tuve que resolver googleando. Hoy me acorde de repente la [...]
Articulos Relacionados:<ol>
<li><a href='http://richzendy.org/2009/07/09/barra-de-progreso-en-tus-scripts-bash.html' rel='bookmark' title='Barra de progreso en tus scripts BASH'>Barra de progreso en tus scripts BASH</a> <small>En estos días he estado realizando un script interactivo en...</small></li>
<li><a href='http://richzendy.org/2008/08/05/actualizacin-automtica-de-blacklist-en-dansguardian.html' rel='bookmark' title='Actualización automática de Blacklist en Dansguardian'>Actualización automática de Blacklist en Dansguardian</a> <small>Junto a un compañero de trabajo hemos realizado un cochino...</small></li>
<li><a href='http://richzendy.org/2008/06/18/scp-a-multiples-maquinas-de-forma-automtica-con-password.html' rel='bookmark' title='scp a múltiples máquinas de forma automática con password'>scp a múltiples máquinas de forma automática con password</a> <small>Ayer tenía la tarea de hacer una modificación en un...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Hace unos días me encontraba haciendo unos scripts en BASH y necesitaba realizar algunas comprobaciones con un simple if, sin embargo tuve un lapsus mental y se me olvido como revisar la página del manual en donde explican exactamente lo que es cada condicional y tuve que resolver googleando.</p>
<p>Hoy me acorde de repente la cuestión y para al menos no tener que googlear de nuevo y saber donde la puedo encontrar de nuevo fácilmente en caso de otro olvido, la coloco acá:</p>
<p style="text-align: center;"><strong>man test</strong></p>
<p>En realidad test es un comando para comparar archivos sin embargo sus condicionales son exactamente iguales a los usados en programación de BASH script ( o tal vez internamente el interprete usa test para hacer las comprobaciones ), así que sirve, además de que están bien explicados <img src='http://richzendy.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley' /> </p>
<p>Articulos Relacionados:<ol>
<li><a href='http://richzendy.org/2009/07/09/barra-de-progreso-en-tus-scripts-bash.html' rel='bookmark' title='Barra de progreso en tus scripts BASH'>Barra de progreso en tus scripts BASH</a> <small>En estos días he estado realizando un script interactivo en...</small></li>
<li><a href='http://richzendy.org/2008/08/05/actualizacin-automtica-de-blacklist-en-dansguardian.html' rel='bookmark' title='Actualización automática de Blacklist en Dansguardian'>Actualización automática de Blacklist en Dansguardian</a> <small>Junto a un compañero de trabajo hemos realizado un cochino...</small></li>
<li><a href='http://richzendy.org/2008/06/18/scp-a-multiples-maquinas-de-forma-automtica-con-password.html' rel='bookmark' title='scp a múltiples máquinas de forma automática con password'>scp a múltiples máquinas de forma automática con password</a> <small>Ayer tenía la tarea de hacer una modificación en un...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://richzendy.org/2009/01/22/condicionales-en-bash.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Actualización automática de Blacklist en Dansguardian</title>
		<link>http://richzendy.org/2008/08/05/actualizacin-automtica-de-blacklist-en-dansguardian.html</link>
		<comments>http://richzendy.org/2008/08/05/actualizacin-automtica-de-blacklist-en-dansguardian.html#comments</comments>
		<pubDate>Tue, 05 Aug 2008 12:14:27 +0000</pubDate>
		<dc:creator>Richzendy</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Gnu y Linux]]></category>
		<category><![CDATA[Scripting]]></category>
		<category><![CDATA[BASH]]></category>

		<guid isPermaLink="false">http://richzendy.org/2008/08/05/actualizacin-automtica-de-blacklist-en-dansguardian.html</guid>
		<description><![CDATA[Junto a un compañero de trabajo hemos realizado un cochino script en Bash que permite mantener actualizadas de forma automática tus archivos de blacklist ( listas negras ). Cualquier comentario o recomendación usa el sistema de comentarios del blog, por favor. El Script pueden verlo en formato html en: http://www.richzendy.org/scripts/update_blacklist.sh.html Articulos Relacionados: scp a múltiples [...]
Articulos Relacionados:<ol>
<li><a href='http://richzendy.org/2008/06/18/scp-a-multiples-maquinas-de-forma-automtica-con-password.html' rel='bookmark' title='scp a múltiples máquinas de forma automática con password'>scp a múltiples máquinas de forma automática con password</a> <small>Ayer tenía la tarea de hacer una modificación en un...</small></li>
<li><a href='http://richzendy.org/2006/09/23/muinexchat01release.html' rel='bookmark' title='Muine XChat Announcer 0.1 release'>Muine XChat Announcer 0.1 release</a> <small>Ahora estoy usando un reproductor de música muy cool para...</small></li>
<li><a href='http://richzendy.org/2009/07/09/barra-de-progreso-en-tus-scripts-bash.html' rel='bookmark' title='Barra de progreso en tus scripts BASH'>Barra de progreso en tus scripts BASH</a> <small>En estos días he estado realizando un script interactivo en...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Junto a un compañero de trabajo hemos realizado un cochino <a href="http://es.wikipedia.org/wiki/Script" target="_blank">script</a> en <a href="http://es.wikipedia.org/wiki/Bash" target="_blank">Bash</a> que permite mantener actualizadas de forma automática tus archivos de blacklist ( listas negras ).</p>
<p>Cualquier comentario o recomendación usa el sistema de comentarios del blog, por favor.</p>
<p>El Script pueden verlo en formato html en:</p>
<p align="center">
<p align="center"><a href="http://www.richzendy.org/scripts/update_blacklist.sh.html ">http://www.richzendy.org/scripts/update_blacklist.sh.html </a></p>
<p>Articulos Relacionados:<ol>
<li><a href='http://richzendy.org/2008/06/18/scp-a-multiples-maquinas-de-forma-automtica-con-password.html' rel='bookmark' title='scp a múltiples máquinas de forma automática con password'>scp a múltiples máquinas de forma automática con password</a> <small>Ayer tenía la tarea de hacer una modificación en un...</small></li>
<li><a href='http://richzendy.org/2006/09/23/muinexchat01release.html' rel='bookmark' title='Muine XChat Announcer 0.1 release'>Muine XChat Announcer 0.1 release</a> <small>Ahora estoy usando un reproductor de música muy cool para...</small></li>
<li><a href='http://richzendy.org/2009/07/09/barra-de-progreso-en-tus-scripts-bash.html' rel='bookmark' title='Barra de progreso en tus scripts BASH'>Barra de progreso en tus scripts BASH</a> <small>En estos días he estado realizando un script interactivo en...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://richzendy.org/2008/08/05/actualizacin-automtica-de-blacklist-en-dansguardian.html/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>scp a múltiples máquinas de forma automática con password</title>
		<link>http://richzendy.org/2008/06/18/scp-a-multiples-maquinas-de-forma-automtica-con-password.html</link>
		<comments>http://richzendy.org/2008/06/18/scp-a-multiples-maquinas-de-forma-automtica-con-password.html#comments</comments>
		<pubDate>Wed, 18 Jun 2008 09:33:41 +0000</pubDate>
		<dc:creator>Richzendy</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Gnu y Linux]]></category>
		<category><![CDATA[GNU]]></category>
		<category><![CDATA[Scripting]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[Utilidades]]></category>

		<guid isPermaLink="false">http://richzendy.org/2008/06/18/scp-a-multiples-maquinas-de-forma-automtica-con-password.html</guid>
		<description><![CDATA[Ayer tenía la tarea de hacer una modificación en un archivo de configuración ( con privilegios de root ) en una serie de máquinas clientes con GNU/Linux, al preguntar a un grupo de amigos me dieron las siguientes soluciones: 1. Usar claves compartidas de ssh Ajá, esto seria válido si ya tuviera las llaves compartidas,  [...]
Articulos Relacionados:<ol>
<li><a href='http://richzendy.org/2008/08/05/actualizacin-automtica-de-blacklist-en-dansguardian.html' rel='bookmark' title='Actualización automática de Blacklist en Dansguardian'>Actualización automática de Blacklist en Dansguardian</a> <small>Junto a un compañero de trabajo hemos realizado un cochino...</small></li>
<li><a href='http://richzendy.org/2010/04/05/playonlinux-wine-de-forma-facil.html' rel='bookmark' title='PlayOnLinux &#8211; wine de forma fácil'>PlayOnLinux &#8211; wine de forma fácil</a> <small>Esta semana necesitaba instalar &#8220;Internet Explorer 7&#8243; para probar un...</small></li>
<li><a href='http://richzendy.org/2009/06/17/clona-tu-disco-duro-con-clonezilla.html' rel='bookmark' title='Clona tu disco duro con Clonezilla'>Clona tu disco duro con Clonezilla</a> <small>Clonezilla es una herramienta Software Libre que consiste en un...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Ayer tenía la tarea de hacer una modificación en un archivo de configuración ( con privilegios de root ) en una serie de máquinas clientes con GNU/Linux, al preguntar a un grupo de amigos me dieron las siguientes soluciones:</p>
<p>1. Usar claves compartidas de ssh</p>
<p>Ajá, esto seria válido si ya tuviera las llaves compartidas,  en este caso como no las tengo, tendría que entrar a cada máquina y hacer la configuración, lo cual no es una opción no viable ya que eso es justo lo que quiero evitar.</p>
<p>2. Usar la opción sudo -S de la siguiente manera: echo &#8220;password&#8221; | sudo -S</p>
<p>Tengo un script que puede ejecutarse automáticamente en cada máquina, pero este se ejecuta con privilegios de usuario, dicho script puede ser modificado y cargado masivamente en cada máquina de la red vía rsync, el detalle con esta solución es que en la distribución cliente los usuarios no están por defecto en el grupo que pueden hacer sudo, por lo cual tendría que configurar /etc/sudoers máquina a máquina para poder implementar esta opción, con lo cual esto ya no es viable.</p>
<hr size="2" />Viendo ya que la solución debería investigarla por mis medios, pensé en usar la librería:</p>
<p><a title="ssh via perl" href="http://search.cpan.org/~bnegrao/Net-SSH-Expect-1.09/lib/Net/SSH/Expect.pod" target="_blank">http://search.cpan.org/~bnegrao/Net-SSH-Expect-1.09/lib/Net/SSH/Expect.pod</a></p>
<p>Que ya he usado con anterioridad  para otras cosas y hacerme un scriptcito en perl, pero de verdad me daba fastidio y pereza instalarla vía CPAN, investigando un poco más di con la solución mas perezosa usando el programa <a title="expect página oficial" href="http://expect.nist.gov/" target="_blank">expect</a>, acá hay un ejemplo de como ( el cual use ):</p>
<p><a title="expect ejemplo" href="http://modp.com/wiki/sshpasswords" target="_blank" class="broken_link"> http://modp.com/wiki/sshpasswords</a></p>
<p>Expect no se usa necesariamente para hacer login remoto ssh o scp, realmente es un programa hecho en tcl que permite controlar programas en consola o linea de comandos ( CLI ) que tienen una interfase interactiva, por ejemplo esos programas que te preguntan opciones y opciones para poder realizar alguna función y requieren una intervención vía teclado para contestarlas, bueno expect bien configurado puede ser usado para responder todas esas preguntas de forma automática.</p>
<p>Sin más preámbulo acá está el cochino script que realice, cabe destacar que no tenía idea de cuantas máquinas cliente existían en la red ( aunque más o menos calculo que podrían ser unas 100 al menos ) ni de sus direcciones ip ( el cliente tiene eso registrado, pero me dio fastidio pedírselo):</p>
<blockquote><p>#!/bin/bash<br />
for n in {1..9} ; do<br />
for i in {100..140} ; do</p>
<p>expect -c &#8220;set timeout 10; eval spawn scp /tmp/rc.local root@192.168.$n.$i:/etc/ ; expect &#8216;yes: $&#8217;; send yes\n ; \ expect &#8216;password: $&#8217;; send algunpassword\n ; expect &#8216;$ $&#8217;&#8221;</p>
<p>done<br />
done</p></blockquote>
<p>La linea realmente importante es la que empieza con el comando &#8220;expect&#8221; precisamente y vamos a explicar sus opciones:</p>
<p><strong>set timeout 10</strong> : Esta opción permite configurar 10 segundos de timeout en caso de no conseguir una respuesta.</p>
<p>e<strong>val spawn scp /tmp/rc.local root@192.168.$n.$i:/etc/</strong> :</p>
<p>Esta opción es la que ejecuta realmente el scp, al final los últimos 2 octetos de la dirección ip, son variables, provistas por los for de arriba.</p>
<p><strong>expect &#8216;yes: $&#8217;; send yes\n</strong> : Esas 2 opciones pueden ser consideradas una sola, y es que como en muchas de esas máquinas clientes nunca se ha conectado vía ssh, entonces se debe aceptar primero la clave RSA del ssh, entonces  &#8220;expect &#8216;yes: $&#8221; espera que se presente una linea que diga &#8220;yes:&#8221; y &#8220;send yes\n&#8221;  envía como respuesta yes y aplica un enter luego ( \n).</p>
<p><strong>expect &#8216;password: $&#8217;; send algunpassword\n</strong> : Como en la anterior, esto puede ser considerado una sola instrucción y es muy similar a la anterior, se espera la cadena &#8220;password:&#8221; y cuando se reciba, se contesta con  &#8220;send algunpassword\n&#8221; enviando la password de la sesión e iniciando la transferencia.</p>
<p><strong>expect &#8216;$ $&#8217;</strong> : ya al final coloque esta opción la cual simplemente espera que se entregue un prompt para salir, realmente no se si era necesaria pero sin embargo la coloque por si acaso <img src='http://richzendy.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley' /> </p>
<p>Espero que le llegue a servir a alguno, como me sirvio a mi, en menos de 20 minutos ya tenía todos las máquinas cliente plenamente configuradas <img src='http://richzendy.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley' /> , tal vez hayan otras opciones incluso más elaboradas, pero me pareció buena esta debido a su sencillez, solo basta con instalar el paquete expect, el cual está en los repositorios de la mayoría de las distribuciones de GNU/Linux.</p>
<p>Por cuestiones de seguridad no me preocupe mucho, debido que todas esas máquinas están en una red local sin acceso a internet y los clientes son prácticamente terminales tontos en donde el usuario tiene perfiles de desktop muy bien delimitados y no tienen acceso a tty, además ya scp cifra la comunicación en la transferencia, incluso en la sesión de login.</p>
<p>Articulos Relacionados:<ol>
<li><a href='http://richzendy.org/2008/08/05/actualizacin-automtica-de-blacklist-en-dansguardian.html' rel='bookmark' title='Actualización automática de Blacklist en Dansguardian'>Actualización automática de Blacklist en Dansguardian</a> <small>Junto a un compañero de trabajo hemos realizado un cochino...</small></li>
<li><a href='http://richzendy.org/2010/04/05/playonlinux-wine-de-forma-facil.html' rel='bookmark' title='PlayOnLinux &#8211; wine de forma fácil'>PlayOnLinux &#8211; wine de forma fácil</a> <small>Esta semana necesitaba instalar &#8220;Internet Explorer 7&#8243; para probar un...</small></li>
<li><a href='http://richzendy.org/2009/06/17/clona-tu-disco-duro-con-clonezilla.html' rel='bookmark' title='Clona tu disco duro con Clonezilla'>Clona tu disco duro con Clonezilla</a> <small>Clonezilla es una herramienta Software Libre que consiste en un...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://richzendy.org/2008/06/18/scp-a-multiples-maquinas-de-forma-automtica-con-password.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>PassReminder</title>
		<link>http://richzendy.org/2007/10/10/passreminder.html</link>
		<comments>http://richzendy.org/2007/10/10/passreminder.html#comments</comments>
		<pubDate>Wed, 10 Oct 2007 21:27:29 +0000</pubDate>
		<dc:creator>Richzendy</dc:creator>
				<category><![CDATA[Fedora]]></category>
		<category><![CDATA[Gnu y Linux]]></category>
		<category><![CDATA[Scripting]]></category>
		<category><![CDATA[GNU]]></category>

		<guid isPermaLink="false">http://richzendy.org/2007/10/10/passreminder.html</guid>
		<description><![CDATA[He desarrollado PassReminder, que es un sencillo script que ayuda en funciones administrativas en organizaciones que usan autenticación mediante algún servidor LDAP como  Fedora Directory Server u otro servidor LDAP ( a pesar de que se probo solo con FDS, tal vez funcione como está o con pocas modificaciones en openldap ), ya que permitirá [...]
Articulos Relacionados:<ol>
<li><a href='http://richzendy.org/2009/07/09/barra-de-progreso-en-tus-scripts-bash.html' rel='bookmark' title='Barra de progreso en tus scripts BASH'>Barra de progreso en tus scripts BASH</a> <small>En estos días he estado realizando un script interactivo en...</small></li>
<li><a href='http://richzendy.org/2008/08/05/actualizacin-automtica-de-blacklist-en-dansguardian.html' rel='bookmark' title='Actualización automática de Blacklist en Dansguardian'>Actualización automática de Blacklist en Dansguardian</a> <small>Junto a un compañero de trabajo hemos realizado un cochino...</small></li>
<li><a href='http://richzendy.org/2010/04/05/playonlinux-wine-de-forma-facil.html' rel='bookmark' title='PlayOnLinux &#8211; wine de forma fácil'>PlayOnLinux &#8211; wine de forma fácil</a> <small>Esta semana necesitaba instalar &#8220;Internet Explorer 7&#8243; para probar un...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>He desarrollado PassReminder, que es un sencillo script que ayuda en funciones administrativas en organizaciones que usan autenticación mediante algún servidor LDAP como  <a href="http://www.proyectofedora.org/wiki/Fedora_Directory_Server">Fedora Directory Server</a> u otro servidor LDAP ( a pesar de que se probo solo con FDS, tal vez funcione como está o con pocas modificaciones en openldap ), ya que permitirá poder enviarle un correo electrónico a cada usuario del directorio al cual tenga a punto de expirar su cuenta, recordando que debe cambiar su contraseña.</p>
<p>Si desea saber más al respecto, descargar el script, saber como instalarlo puede ver el siguiente link:</p>
<p align="center">
<p align="center"><a title="PassReminder" href="http://www.proyectofedora.org/wiki/Fedora_Directory_Server_PassReminder" target="_blank">http://www.proyectofedora.org/wiki/index.php/Fedora_Directory_Server_PassReminder<br />
</a></p>
<p>Si tiene algún tipo de pregunta al respecto, por favor hagamelo saber.</p>
<p>Articulos Relacionados:<ol>
<li><a href='http://richzendy.org/2009/07/09/barra-de-progreso-en-tus-scripts-bash.html' rel='bookmark' title='Barra de progreso en tus scripts BASH'>Barra de progreso en tus scripts BASH</a> <small>En estos días he estado realizando un script interactivo en...</small></li>
<li><a href='http://richzendy.org/2008/08/05/actualizacin-automtica-de-blacklist-en-dansguardian.html' rel='bookmark' title='Actualización automática de Blacklist en Dansguardian'>Actualización automática de Blacklist en Dansguardian</a> <small>Junto a un compañero de trabajo hemos realizado un cochino...</small></li>
<li><a href='http://richzendy.org/2010/04/05/playonlinux-wine-de-forma-facil.html' rel='bookmark' title='PlayOnLinux &#8211; wine de forma fácil'>PlayOnLinux &#8211; wine de forma fácil</a> <small>Esta semana necesitaba instalar &#8220;Internet Explorer 7&#8243; para probar un...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://richzendy.org/2007/10/10/passreminder.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Muine XChat Announcer 0.1 release</title>
		<link>http://richzendy.org/2006/09/23/muinexchat01release.html</link>
		<comments>http://richzendy.org/2006/09/23/muinexchat01release.html#comments</comments>
		<pubDate>Sat, 23 Sep 2006 19:48:37 +0000</pubDate>
		<dc:creator>Richzendy</dc:creator>
				<category><![CDATA[Gnu y Linux]]></category>
		<category><![CDATA[Scripting]]></category>
		<category><![CDATA[xchat]]></category>

		<guid isPermaLink="false">http://richzendy.org/2006/09/23/muinexchat01release.html</guid>
		<description><![CDATA[Ahora estoy usando un reproductor de música muy cool para gnome hecho en mono, se llama muine, es como la versión light de amarok, me mantiene actualizado mi audioscrobler ( hoy en día  last.fm ) via un plugin y me permite ver las letras de las canciones vía otro, lo que mas me agrada es [...]
Articulos Relacionados:<ol>
<li><a href='http://richzendy.org/2009/07/09/barra-de-progreso-en-tus-scripts-bash.html' rel='bookmark' title='Barra de progreso en tus scripts BASH'>Barra de progreso en tus scripts BASH</a> <small>En estos días he estado realizando un script interactivo en...</small></li>
<li><a href='http://richzendy.org/2007/10/10/passreminder.html' rel='bookmark' title='PassReminder'>PassReminder</a> <small>He desarrollado PassReminder, que es un sencillo script que ayuda...</small></li>
<li><a href='http://richzendy.org/2008/08/05/actualizacin-automtica-de-blacklist-en-dansguardian.html' rel='bookmark' title='Actualización automática de Blacklist en Dansguardian'>Actualización automática de Blacklist en Dansguardian</a> <small>Junto a un compañero de trabajo hemos realizado un cochino...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Ahora estoy usando un reproductor de música muy cool para gnome hecho en <a title="Proyecto mono" href="http://es.wikipedia.org/wiki/Proyecto_Mono" target="_blank">mono</a>, se llama <a title="Muine Player" href="http://muine-player.org/wiki/Main_Page" target="_blank">muine</a>, es como la versión light de <a title="amarok player" href="http://es.wikipedia.org/wiki/AmaroK" target="_blank">amarok</a>, me mantiene actualizado mi <a title="adioscrobler" href="http://www.last.fm/user/Richzendy" target="_blank">audioscrobler</a> ( hoy en día  <a title="last-fm" href="http://www.last.fm/" target="_blank">last.fm</a> ) via un plugin y me permite ver las letras de las canciones vía otro, lo que mas me agrada es que me mantiene organizada mi lista reproducción en forma de albums  y me muestra las caratulas de los mismos ( creo que se las baja de algún sitio ) o por orden alfabético de canciones, también me agrada que se pueda iconificar completamente ( lo trae por defecto ) y que hay un applet para la barra de gnome que ofrece control de el desde allí <img src='http://richzendy.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley' /> .</p>
<p>Bueno el detalle es que me fui inmediatamente a buscar un <a title="scripts xchat" href="http://xchat.org/scripts/" target="_blank">plugin</a> para <a title="xchat" href="http://www.xchat.org/" target="_blank">xchat</a> de el y encontré uno pero era muy feo ( creo que no me funciono ) así que decidí hacerme uno, pueden ver el script en formato html en el siguiente link:</p>
<p><a title="muine xchat script" href="http://richzendy.org/scripts/xchat_muine.html" target="_blank">http://richzendy.org/scripts/xchat_muine.html</a></p>
<div style="text-align: center;"><a class="tt-flickr tt-flickr-Medium" title="Muine Xchat Script" href="http://richzendy.org/Galeria/photo/4212142094/muine-xchat-script.html"><img class="aligncenter" style="border: 2px solid black;" src="http://farm3.static.flickr.com/2553/4212142094_0c87a29c0d.jpg" alt="Muine Xchat Script" width="500" height="375" /></a></div>
<p style="text-align: left;">El que lo use, por favor, envíeme sus comentarios, bugs o sugerencias, en los comentarios de este post, o a mi e-mail ( sabrán donde encontrarlo ), realmente les recomiendo este player, es muy liviano y fácil de usar ,el que use Fedora Core, pregunte por los repositorios de donde lo descargue vía yum <img src='http://richzendy.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley' /> .</p>
<p style="text-align: left;">Ver vídeo del script en acción:</p>
<p style="text-align: center;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/MrvIeMioV3g&amp;hl=es_ES&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/MrvIeMioV3g&amp;hl=es_ES&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>Articulos Relacionados:<ol>
<li><a href='http://richzendy.org/2009/07/09/barra-de-progreso-en-tus-scripts-bash.html' rel='bookmark' title='Barra de progreso en tus scripts BASH'>Barra de progreso en tus scripts BASH</a> <small>En estos días he estado realizando un script interactivo en...</small></li>
<li><a href='http://richzendy.org/2007/10/10/passreminder.html' rel='bookmark' title='PassReminder'>PassReminder</a> <small>He desarrollado PassReminder, que es un sencillo script que ayuda...</small></li>
<li><a href='http://richzendy.org/2008/08/05/actualizacin-automtica-de-blacklist-en-dansguardian.html' rel='bookmark' title='Actualización automática de Blacklist en Dansguardian'>Actualización automática de Blacklist en Dansguardian</a> <small>Junto a un compañero de trabajo hemos realizado un cochino...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://richzendy.org/2006/09/23/muinexchat01release.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

