<?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>orvtech: Linux, Android, BASH Scripts, y Fedora &#187; Scripts</title>
	<atom:link href="http://orvtech.com/tag/scripts/feed/" rel="self" type="application/rss+xml" />
	<link>http://orvtech.com</link>
	<description>Blog de referencia para apasionados del software libre, sistemas embebidos y todo lo que tenga que ver con shell scripting</description>
	<lastBuildDate>Sat, 28 Jan 2012 01:49:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Dejar procesos corriendo en el fondo aun cuando cerremos la sesión</title>
		<link>http://orvtech.com/howto/nphup-procesos-corriendo-aun-cuando-cerremos-sesion/</link>
		<comments>http://orvtech.com/howto/nphup-procesos-corriendo-aun-cuando-cerremos-sesion/#comments</comments>
		<pubDate>Fri, 02 Dec 2011 16:16:51 +0000</pubDate>
		<dc:creator>orvtech</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[BASH]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[OSX]]></category>
		<category><![CDATA[Proyecto Fedora]]></category>
		<category><![CDATA[Scripts]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://orvtech.com/?p=5660</guid>
		<description><![CDATA[El nohup evita que nuestros procesos respondan a una señal de 'HANG UP' del sistema operativo. Lo bueno de esto es que permite que los procesos sigan ejecutándose después de que cerremos la sesión.<p><a href="http://orvtech.com/howto/nphup-procesos-corriendo-aun-cuando-cerremos-sesion/">Dejar procesos corriendo en el fondo aun cuando cerremos la sesión</a> es un articulo de: <a href="http://orvtech.com" rel="friend">orvtech.com</a></p>
]]></description>
			<content:encoded><![CDATA[<p>Revisando mi lista de artículos me di cuenta que no tengo uno donde hable de como enviar tareas al fondo y que sigan ejecutándose sin importar si cerramos nuestra sesión.</p>
<p>Existen varias formas de hacerlo pero mi preferida es nohup. Lo uso mas que todo cuando por ejemplo me toca pasarle un mysqldump (de 30 GB) de una maquina a otra o restablecer ese mysqldump en la otra maquina.</p>
<div style="text-align:center;"><a href="http://orvtech.info/2011/12/nohup.gif"><img src="http://orvtech.info/2011/12/nohup.gif" alt="nohup gif animado, envia al background crawler.sh" title="nohup gif animado, envia al background crawler.sh" width="614" height="30" class="size-full wp-image-5675" /></a>&nbsp;</div>
<p>&nbsp;</p>
<p>El comando nohup le indica a un programa que ignore la señal de &#8216;<em title="SIGHUP">Hangup</em>&#8216; permitiéndole seguir corriendo después de que el usuario que lo inicio haya cerrado su sesión. Un ejemplo de nohup seria:<br />
<code>noup mysql -u torvalds -pPasswordAqui -bLinuxRocks &lt; ~/linuxroks.sql &amp;</code></p>
<p>Como ven estamos restableciendo un mysqldump de la base de datos LinuxRocks usando el usuario torvalds pero la clave aquí es que precedo el comando mysql con un <code>nohup</code> y terminamos el comando con un <code>&amp;</code> para enviarlo al fondo ahora podemos desconectarnos y el el mysqldump seguirá corriendo. </p>
<p>Cualquier salida de este proceso quedara guardado en el archivo <em>nohup.out</em> dentro del directorio en el que estemos ejecutando el nohup.</p>
<div id="crp_related"><br /><h4>Artículos relacionados:</h4><ul><li><a href="http://orvtech.com/howto/history-mas-que-historia/" rel="bookmark" class="crp_title">History, mas que historia:</a><span class="crp_excerpt"> Hay quienes dicen que si no conoces tu pasado estas destinado a repetirlo, pero si ...</span></li><li><a href="http://orvtech.com/howto/exportar-shell-scripts-html/" rel="bookmark" class="crp_title">Exportar shell scripts a HTML:</a><span class="crp_excerpt"> Exportar tu shell script a HTML, con sintaxis resaltada en colores es posible con la ...</span></li><li><a href="http://orvtech.com/howto/iniciar-modo-singleuse/" rel="bookmark" class="crp_title">Iniciando bajo single user mode, fpaste y pedir ayuda en #fedora-latam:</a><span class="crp_excerpt"> El modo de single user (usuario individual) un modo en el cual un sistema operativo ...</span></li></ul><br /></div><p><a href="http://orvtech.com/howto/nphup-procesos-corriendo-aun-cuando-cerremos-sesion/">Dejar procesos corriendo en el fondo aun cuando cerremos la sesión</a> es un articulo de: <a href="http://orvtech.com" rel="friend">orvtech.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://orvtech.com/howto/nphup-procesos-corriendo-aun-cuando-cerremos-sesion/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Cambiar la calidad de imágenes por lote usando BASH</title>
		<link>http://orvtech.com/general/cambiar-calidad-imagenes-usando-bash/</link>
		<comments>http://orvtech.com/general/cambiar-calidad-imagenes-usando-bash/#comments</comments>
		<pubDate>Wed, 21 Sep 2011 04:01:34 +0000</pubDate>
		<dc:creator>orvtech</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[BASH]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Proyecto Fedora]]></category>
		<category><![CDATA[Scripts]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://orvtech.com/?p=5400</guid>
		<description><![CDATA[Con este simple script de BASH en combinación con ImageMagick puedes reducir la calidad de tus archivos JPEG para ahorrar ancho de banda y espacio en disco<p><a href="http://orvtech.com/general/cambiar-calidad-imagenes-usando-bash/">Cambiar la calidad de imágenes por lote usando BASH</a> es un articulo de: <a href="http://orvtech.com" rel="friend">orvtech.com</a></p>
]]></description>
			<content:encoded><![CDATA[<p><div id="attachment_5399" class="wp-caption aligncenter" style="width: 605px"><img src="http://orvtech.info/2011/09/quality-reduced-head-bash.png" alt="Con BASH e ImageMagick puedes cambiar el peso de una imagen ajustando su calidad" title="Con BASH e ImageMagick puedes cambiar el peso de una imagen ajustando su calidad" width="595" height="100" class="size-full wp-image-5399" /><p class="wp-caption-text">Con BASH e ImageMagick puedes cambiar el peso de una imagen ajustando su calidad</p></div><br />
Reducir la calidad de un JPG en ocasiones permite que reduzcas su tamaño en bytes con un impacto visual muy bajo, las ventajas de hacer esto en un directorio como lo es el de uploads de WordPress es que reduces el espacio que estas usando en disco duro, el ancho de banda que consumes y tu pagina carga mas rápido.</p>
<p>La suite ImageMagick ofrece <em>identify</em> entre sus aplicaciones la que nos permite ver información acerca de  una imagen. En este caso lo usaremos para ver la calidad de un JPG  y también usaremos <em>convert</em> de la misma suite (ImageMagick) para ajustar la calidad de la imagen.</p>
<p>En caso de que necesiten instalar ImageMagick, solo deben abrir un terminal y ejecutar como root en su Fedora Linux:<br />
<code>yum install ImageMagick</code></p>
<p>Recuerda que no estas obligado a usar el terminal en Fedora para instalar aplicaciones, también puedes hacerlo usando la interfaz gráfica, solo sigue mi vídeo tutorial <a href="http://orvtech.com/howto/instalando-programas-fedora-15/" title="video tutorial que muestra lo fácil que es instalar imágenes o programas en Fedora 15">Instalando programas en Fedora Linux</a></p>
<p>Una vez que tengas instalado ImageMagick puedes ejecutar el siguiente script:<br />
<code>#!/bin/bash<br />
DIRECTORIOS="/var/www/htdocs/wordpress/wp-content/uploads/20*"<br />
NUEVA_CALIDAD="80"<br />
#<br />
for IMAGENES in `find $DIRECTORIOS -type f| grep -i jpg$ `;<br />
 do CALIDAD=`identify -format %Q $IMAGENES`;<br />
 if [ "$CALIDAD" -gt "$NUEVA_CALIDAD" ];<br />
  then<br />
  echo mejorando $IMAGENES con calidad $CALIDAD<br />
  convert -quality $NUEVA_CALIDAD $IMAGENES $IMAGENES<br />
 fi<br />
done</code></p>
<p>Como ven, en las primeras dos lineas se declara la ruta de donde están las imágenes y en el segundo se procesan. En mi caso me dispuse a ajustar la calidad de las imágenes de mi wordpress por lo que asignó a $DIRECTORIOS la ruta donde están guardadas las imágenes de los artículos. Noten que acepta wildcards.<br />
El proceso como tal usa la salida de <em>identify</em> para saber la calidad actual de la imagen, luego con un condicional evaluamos si la imagen en cuestión tiene una calidad superior al valor deseado ($NUEVA_CALIDAD) y de ser así le se la cambiamos asignándole el valor de $NUEVA_CALIDAD que para este ejemplo es 80.</p>
<p>&nbsp;</p>
<p></p>
<p>&nbsp;</p>
<h2>Eliminado meta-data y la codificación del JPEG para una imagen mas pequeña</h2>
<table bgcolor="#FFFFFF" border=0 style="text-align:center;" width="595" cellpadding="0" cellspacing="0" margin="0">
<tr width="595">
<td width="297"><img src="http://orvtech.info/2011/09/bahs-convert-hires.jpg" alt="Calidad al 100% con un tamaño o peso de 50K" title="Calidad al 100% con un tamaño o peso de 50K" width="280" height="215"  /></td>
<td width="297"><img src="http://orvtech.info/2011/09/bahs-convert-lores.jpg" alt="Calidad al 80% con un tamaño o peso de 6.7K" title="Calidad al 80% con un tamaño o peso de 6.7K" width="280" height="215" /></td>
</tr>
<tr>
</tr>
<tr width="595">
<td width="297">Calidad al 100% con un tamaño o peso de 50K</td>
<td width="297">Calidad al 80% con un tamaño o peso de 6.7K</td>
</tr>
</table>
<p>El producto se puede apreciar en estas dos imágenes, la de la izquierda es la original mientras que la de la derecha es la imagen procesada. Para llegar a esta diferencia de tamaño tuve que usar medidas drásticas. aparte de ajustar la calidad a un 80%, me dispuse a eliminar la data del <abbr ="Exchangeable image file format">EXIF</abbr> y cambie el subsampling pasandole a convert estos parámetros:<br />
<code>-quality 80 -strip -sampling-factor 4:1:1</code> </p>
<p>Si quieres aplicar estos cambios a un lote de imágenes puedes usar esta versión modificada del script anterior:<br />
<code>#!/bin/bash<br />
DIRECTORIOS="/var/www/htdocs/wordpress/wp-content/uploads/20*"<br />
NUEVA_CALIDAD="80"<br />
SAMPLING="4:1:1"<br />
#<br />
for IMAGENES in `find $DIRECTORIOS -type f| grep -i jpg$ `;<br />
 do CALIDAD=`identify -format %Q $IMAGENES`;<br />
 if [ "$CALIDAD" -gt "$NUEVA_CALIDAD" ];<br />
  then<br />
  echo mejorando $IMAGENES con calidad $CALIDAD<br />
  convert -quality $NUEVA_CALIDAD -strip -sampling-factor $SAMPLING $IMAGENES $IMAGENES<br />
 fi<br />
done</code></p>
<p>&nbsp;</p>
<p>Tengan en cuenta que jugar con el <em>sampling-factor</em> puede alterar la fidelidad de los colores de una imagen.<br />
Si te gusto este articulo, tal vez te interese: <a href="http://orvtech.com/howto/marcado-agua-con-bash/" title="watermark de fotos usando bash">Marcado de agua por lote usando BASH</a>.</p>
<p>&nbsp;</p>
<p></p>
<p>&nbsp;</p>
<div id="crp_related"><br /><h4>Artículos relacionados:</h4><ul><li><a href="http://orvtech.com/howto/marcado-agua-con-bash/" rel="bookmark" class="crp_title">Marcado de agua de imágenes con BASH:</a><span class="crp_excerpt"> 
La semana pasada durante el FUDCon tatica me pidió que le hiciera un script para ...</span></li><li><a href="http://orvtech.com/howto/thumbnails-cuadradas-en-plugin-galleries-sh-de-nanoblogger/" rel="bookmark" class="crp_title">Thumbnails cuadradas en plugin galleries.sh de NanoBlogger.:</a><span class="crp_excerpt"> 
Con leves modificaciones a el plugin galleries de NanoBlogger logre generar imágenes miniaturas cuadradas manteniendo ...</span></li><li><a href="http://orvtech.com/howto/encontrar-los-directorios-y-archivos-mas-grandes-en-una-carpeta/" rel="bookmark" class="crp_title">Encontrar los directorios y archivos mas grandes en una carpeta:</a><span class="crp_excerpt"> Usando `du` podemos encontrar los directorios y archivos mas grande dentro de un directorio. el ...</span></li></ul><br /></div><p><a href="http://orvtech.com/general/cambiar-calidad-imagenes-usando-bash/">Cambiar la calidad de imágenes por lote usando BASH</a> es un articulo de: <a href="http://orvtech.com" rel="friend">orvtech.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://orvtech.com/general/cambiar-calidad-imagenes-usando-bash/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Destruye de forma segura tus archivos privados</title>
		<link>http://orvtech.com/howto/destrui-forma-segura-archivos-privados/</link>
		<comments>http://orvtech.com/howto/destrui-forma-segura-archivos-privados/#comments</comments>
		<pubDate>Wed, 29 Jun 2011 13:30:13 +0000</pubDate>
		<dc:creator>orvtech</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[BASH]]></category>
		<category><![CDATA[Hacks]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Scripts]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://orvtech.com/?p=4979</guid>
		<description><![CDATA[Para asegurarse que los datos de la tarjeta de crédito que anotaron en el archivo XYZ, cartas de su amante con la que engañan a su pareja o el historial de su navegador web con todas esas visitas a sitios pornográficos no puedan ser recuperados deben usar algo mas complejo que un simple rm o vaciar la papelera. <p><a href="http://orvtech.com/howto/destrui-forma-segura-archivos-privados/">Destruye de forma segura tus archivos privados</a> es un articulo de: <a href="http://orvtech.com" rel="friend">orvtech.com</a></p>
]]></description>
			<content:encoded><![CDATA[<div style="text-align:center;"><img src="http://orvtech.info/2011/06/eliminar-head-1.jpg" alt="Eliminar archivos de forma que no puedan ser recuperados" title="Eliminar archivos con privacidad" width="614" height="240" /></div>
<p>Retomando el tema de eliminar archivos, hay muchos que piensan que simplemente formateando un archivo o eliminándolos con <em>rm</em> es suficiente para evitar que alguien los recupere, déjenme decirles que están muy equivocados. Para asegurarse que los datos de la tarjeta de crédito que anotaron en el archivo XYZ, cartas de su amante con la que engañan a su pareja o el historial de su navegador web con todas esas visitas a redtube y demás sitios pornográficos no puedan ser recuperados deben usar algo mas complejo.</p>
<p>El borrar un archivo con el comando <em>rm</em> lo único que hace es decirle al sistema operativo, que el espacio que ocupaba ese archivo ahora esta libre. Cualquier archivo puede ser recuperado de forma sencilla siempre y cuando los bloques que componen este archivo no sean re-usados. </p>
<p>Para evitar que sean recuperados debemos rescribir el espacio que estos archivos ocupan el el disco duro con data aleatoria, de manera que si algún programa forense encuentra este archivo, no pueda ser leído de forma clara. Quería dejarles dos métodos para eliminar archivos pero esta vez que no puedan ser recuperados por herramientas forenses. </p>
<p></p>
<p>&nbsp;</p>
<p><strong>Usando BASH</strong><br />
El primer método es basado en BASH, es un script que va a escribir bits aleatorios en el lugar que ocupa el archivo a eliminar en el disco duro. El script que se basa en el comando dd, es este:<br />
<code>#!/bin/bash<br />
for ((n=1;n&lt;10;n++))<br />
do dd if=/dev/urandom of=prueba.txt bs=15 count=1 conv=notrunc<br />
dd if=/dev/null of=prueba.txt bs=15 count=1 conv=notrunc<br />
done<br />
rm -f prueba.txt</code></p>
<p>Antes de que ejecuten este script, tome en cuenta que <em>prueba.txt</em> es el archivo que estoy eliminando y en <em>bs=15</em>, ese numero quince es el tamaño del archivo el cual obtuve con un simple ls, como lo pueden ver aquí:<br />
<code>orvtech@vps ~ $ ls -l test.dd<br />
-rw-r--r-- 1 orvtech orvtech 15 Jun 28 16:58 prueba.txt</code></p>
<p>El script escribe la salida de <em>/dev/urandom</em> a <em>prueba.txt</em> en una salida con un tamaño de bloque de 15 y lo hace una sola vez, no se va a detener en caso de truncamiento, la segunda instrucción <em>dd</em> escribe el archivo con ceros. Este proceso se repetirá 10 veces, valor que puede ser alterado por un numero mas alto si así lo queremos. Por ultimo el archivo es eliminado </p>
<p></p>
<p>&nbsp;</p>
<p><strong>Usando shred</strong><br />
El segundo método usa el comando shred que por defecto sobrescribe el archivo 25 veces con data aleatoria. Este valor puede ser remplazado por cualquier otro usando el parámetro <em>-n</em>, por ejemplo:<br />
<code>shred -n 5 prueba.txt</code></p>
<p>shred ademas nos permite entre otras cosas ver el progreso del procedimiento usando el parámetro <em>-v</em> y sobrescribir ceros al archivo a eliminar con el parámetro <em>-z</em>, cosa que es útil si no quieres que alguien que encuentre dicho archivo crea que es un archivo encriptado y levante sospechas.<br />
<code>shred -n 5 -z -v prueba.txt</code></p>
<p>Si quieres eliminar el archivo luego de este procedimiento, puedes usar el parámetro <em>&#8211;remove</em>.</p>
<div id="crp_related"><br /><h4>Artículos relacionados:</h4><ul><li><a href="http://orvtech.com/howto/recuperar-archivos-borrados/" rel="bookmark" class="crp_title">Recuperar archivos borrados:</a><span class="crp_excerpt"> A todos nos ha pasado, estamos trabajando, por error le damos en el teclado a ...</span></li><li><a href="http://orvtech.com/howto/history-mas-que-historia/" rel="bookmark" class="crp_title">History, mas que historia:</a><span class="crp_excerpt"> Hay quienes dicen que si no conoces tu pasado estas destinado a repetirlo, pero si ...</span></li><li><a href="http://orvtech.com/general/recuperar-archivos-borrados-usando-grep/" rel="bookmark" class="crp_title">Recuperar archivos borrados (la revancha):</a><span class="crp_excerpt"> Las redes sociales me han servido, entre otras cosas, para profundizar un poco más sobre ...</span></li></ul><br /></div><p><a href="http://orvtech.com/howto/destrui-forma-segura-archivos-privados/">Destruye de forma segura tus archivos privados</a> es un articulo de: <a href="http://orvtech.com" rel="friend">orvtech.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://orvtech.com/howto/destrui-forma-segura-archivos-privados/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Marcado de agua de imágenes con BASH</title>
		<link>http://orvtech.com/howto/marcado-agua-con-bash/</link>
		<comments>http://orvtech.com/howto/marcado-agua-con-bash/#comments</comments>
		<pubDate>Fri, 03 Jun 2011 22:48:40 +0000</pubDate>
		<dc:creator>orvtech</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[BASH]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Proyecto Fedora]]></category>
		<category><![CDATA[Scripts]]></category>

		<guid isPermaLink="false">http://orvtech.com/?p=4793</guid>
		<description><![CDATA[Script hecho en BASH que muestra como aplicar una marca de agua a un lote de imágenes usando composite de ImageMagick<p><a href="http://orvtech.com/howto/marcado-agua-con-bash/">Marcado de agua de imágenes con BASH</a> es un articulo de: <a href="http://orvtech.com" rel="friend">orvtech.com</a></p>
]]></description>
			<content:encoded><![CDATA[<div style="text-align:center;"><img src="http://orvtech.info/2011/06/marca_de_agua_top.jpg" alt="" title="marca_de_agua_top" width="614" height="50" /></div>
<p>La semana pasada durante el FUDCon <em title="Maria Leandro">tatica</em> me pidió que le hiciera un script para hacerle marca de agua a un lote de fotos. La marca de agua se usa mas que todo como para marcar fotos y evitar que sean usadas como parte de otros trabajos, que sean plagiadas o osadas a nivel comercial (gigantografiás, vallas publicitarias, revistas, etc). Ella me comentaba que no le importe que la gente use sus fotos siempre y cuando le avisen y esta es una forma de forzar a que si quieren la foto sin la marca de agua deban contactarla para que ella se las envié.<br />
<span id="more-4793"></span><br />
Durante uno de los hackfests que se llevo extendió a una de las villas intente hacerlo algo rápido, pero a las 2am se me era difícil lidiar con error que tenia de sintaxis así que lo complete hoy y quiero compartir el script con ustedes.<br />
<code>#!/bin.bash<br />
WATERMARK=watermark.png<br />
for imagenes in `ls $1 | grep -i -E 'jpg|jpeg|png|gif' | grep -v -E ^'watermark.png|wm_'`<br />
do echo "trabajando con imagenes de $1"<br />
composite -dissolve 20% -gravity southeast "$WATERMARK" "$imagenes" wm_"$imagenes"<br />
done</code></p>
<p>El script acepta como parámetro el directorio el cual contiene las imágenes y va a producir imágenes con el mismo nombre que las originales pero con el prefijo <tt>wm_</tt> y necesita un archivo, preferiblemente PNG con la imagen de agua que va a ser aplicada. El comando <tt title="parte de imagemagick">composite</tt> es parte de ImageMagick así que es Aquí les dejo una muestra de la misma foto, primera sin la marca de agua y la segunda con la marca de agua en la esquina inferior derecha.<br />
<div id="attachment_4796" class="wp-caption aligncenter" style="width: 605px"><img src="http://orvtech.info/2011/06/antes-despues-marca-de-agua.jpg" alt="" title="Antes y despues de la marca de agua en una foto donde aparece Jaroen y Neville" width="595" height="446" class="size-full wp-image-4796" /><p class="wp-caption-text">Antes y después de la marca de agua en una foto donde aparece Jeroen y Neville en el FUDcon celebrado la pasada semana en Panamá</p></div></p>
<p>&nbsp; </p>
<p></p>
<div id="crp_related"><br /><h4>Artículos relacionados:</h4><ul><li><a href="http://orvtech.com/general/cambiar-calidad-imagenes-usando-bash/" rel="bookmark" class="crp_title">Cambiar la calidad de imágenes por lote usando BASH:</a><span class="crp_excerpt"> [caption id="attachment_5399" align="aligncenter" width="595" caption="Con BASH e ImageMagick puedes cambiar el peso de una imagen ...</span></li><li><a href="http://orvtech.com/howto/livecast-script-transmision-vivo-fotos/" rel="bookmark" class="crp_title">Transmisión en vivo de imágenes:</a><span class="crp_excerpt"> Esta seria una versión simplificada, con menos puntos de posibles fallas y hasta cierto punto ...</span></li><li><a href="http://orvtech.com/general/resumen-fudcon-panama-2011/" rel="bookmark" class="crp_title">FUDCon Panamá 2011, en resumen:</a><span class="crp_excerpt"> 
La pasada semana se realizo en Panamá la conferencia de usuarios y programadores de Fedora ...</span></li></ul><br /></div><p><a href="http://orvtech.com/howto/marcado-agua-con-bash/">Marcado de agua de imágenes con BASH</a> es un articulo de: <a href="http://orvtech.com" rel="friend">orvtech.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://orvtech.com/howto/marcado-agua-con-bash/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Cuando se instalo un RPM?</title>
		<link>http://orvtech.com/howto/cuando-se-instalo-un-rpm/</link>
		<comments>http://orvtech.com/howto/cuando-se-instalo-un-rpm/#comments</comments>
		<pubDate>Tue, 10 May 2011 22:14:45 +0000</pubDate>
		<dc:creator>orvtech</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Proyecto Fedora]]></category>
		<category><![CDATA[Red Hat]]></category>
		<category><![CDATA[RPM]]></category>
		<category><![CDATA[Scripts]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://orvtech.com/?p=4593</guid>
		<description><![CDATA[Averigua cuando se instalo un paquete consultando la base de datos de RPM, crea un historial de paquetes instalados usando queryformat y querytags<p><a href="http://orvtech.com/howto/cuando-se-instalo-un-rpm/">Cuando se instalo un RPM?</a> es un articulo de: <a href="http://orvtech.com" rel="friend">orvtech.com</a></p>
]]></description>
			<content:encoded><![CDATA[<div style="text-align:center;"><img src="http://orvtech.info/2011/05/redhat_package_manager.jpg" alt="RPM - Red hat Package Manager" title="RPM - Red hat Package Manager" width="595" height="232" /></div>
<p>El día de hoy notamos que un grupo de servidores tenia carga mas alta de lo normal y estaba usando mas swap de lo normal. Revisando <abbr title="sistema de monitoreo">nagios</abbr><abbr> me doy cuenta que tenia ya días así, pero todos coincidían con una fecha, Mayo 8. Como es un grupo de servidores al que varios tenemos acceso quería revisar que paquetes se instalaron ese día o el día anterior. Aquí les dejo los dos métodos que utilice. </p>
<p>&nbsp;</p>
<p><strong>Como reviso cuando se instalo un <abbr title="Red hat Package Manager, manejador de paquetes usado por aLinux, ALT Linux, Ark Linux, Berry Linux, Caixa Mágica, cAos Linux, EnGarde Secure Linux, Fedora, Fox Linux, Mandriva, Mandriva Linux, openSUSE, PCLinuxOS, Pingo Linux, PLD Linux Distribution, QiLinux, Red Flag Linux, Red Hat Enterprise Linux, SAM Linux, Sharif Linux, SUSE, Tinfoil Hat Linux, Trustix, Turbolinux, Vine Linux, White Box Enterprise Linux, Yoper entre otras distribuciones">RPM</abbr> en el servidor?</strong><br />
La respuesta es simple, el siguiente comando muestra que día y a que horas fueron instalados todos los paquetes en el servidor.<br />
<code>rpm -qa --last</code></p>
<p>Si tienes la idea de como se llama el paquete puedes direccionar la salida de este comando hacia un grep que contenga este nombre, por ejemplo, el servidor web:<br />
<code>rpm -qa --last | grep -i  -E 'apache|httpd'</code><br />
Esto va a devolver, el día y la hora en que cualquier paquete que contenga apache o </abbr><abbr title="también conocido como apache 2.2.X">httpd</abbr> en su nombre (por ejemplo apache-1.3.7, httpd-2.2.1, etc..)</p>
<p>Si conoces el nombre exacto del paquete puedes modificar el comando y especificar el nombre del paquete, por ejemplo:<br />
<code>rpm -q --last wget</code><br />
Este comando va a dar una salida muy parecida a esto:<br />
<tt>wget-1.12-2.fc13                              Tue 01 Feb 2011 04:26:17 PM EST</tt></p>
<p></p>
<p>&nbsp;</p>
<p><strong>El segundo método con queryformat y querytags.</strong><br />
La segunda forma de hacerlo que incluso nos sirve para crear un historial de cuando se instalo cada paquete es usado. Lo primero es saber que etiquetas podemos usar con <em>queryformat</em>, para lo que ejecutamos:<br />
<code>rpm --querytags | grep -i install</code></p>
<p>La salida de este comando en mi caso es:<br />
<tt>INSTALLTIME<br />
INSTALLCOLOR<br />
INSTALLTID<br />
INSTALLPREFIX</tt></p>
<p>En nuestro caso usaremos la etiqueta <em>installtime</em> que sera la cantidad de segundos desde el  primero de Enero del año 1.970 hasta que se instalo el paquete.<br />
El comando queda así:<br />
<code>rpm -qa  --queryformat '%{installtime} (%{installtime:date}) %{name}\n' | sort -n </code></p>
<p>Noten que estamos usando <tt>"%{installtime:date}"</tt> para formatear installtime como fecha en vez de segundos. La salida de ese comando luce así:<br />
<tt>1304950733 (Mon 09 May 2011 10:18:53 AM EDT) google-chrome-stable<br />
1305060365 (Tue 10 May 2011 04:46:05 PM EDT) perf<br />
1305060368 (Tue 10 May 2011 04:46:08 PM EDT) orc<br />
1305060370 (Tue 10 May 2011 04:46:10 PM EDT) polkit<br />
1305060372 (Tue 10 May 2011 04:46:12 PM EDT) polkit-desktop-policy</tt></p>
<p>Como ven son tres columnas (Segundos desde Enero 1 del 1970 seguido de la fecha y luego el nombre del paquete) </p>
<p></p>
<p>&nbsp;</p>
<p></p>
<p>Estos dos métodos deberían de funcionar con aLinux, ALT Linux, Ark Linux, Berry Linux, Caixa Mágica, cAos Linux, EnGarde Secure Linux, Fedora, Fox Linux, Mandriva, Mandriva Linux, openSUSE, PCLinuxOS, Pingo Linux, PLD Linux Distribution, QiLinux, Red Flag Linux, Red Hat Enterprise Linux, SAM Linux, Sharif Linux, SUSE Linux, Tinfoil Hat Linux, Trustix, Turbolinux, Vine Linux, White Box Enterprise Linux, Yoper o cualquier distro que use RPM como manejador de paquetes aunque es muy posible que algunas tengan utilidades que permitan hacer estas búsquedas un poco mas fácil. </p>
<div id="crp_related"><br /><h4>Artículos relacionados:</h4><ul><li><a href="http://orvtech.com/howto/history-mas-que-historia/" rel="bookmark" class="crp_title">History, mas que historia:</a><span class="crp_excerpt"> Hay quienes dicen que si no conoces tu pasado estas destinado a repetirlo, pero si ...</span></li><li><a href="http://orvtech.com/general/reunion-south-date-lug-septiembre/" rel="bookmark" class="crp_title">Reunión de septiembre en el LUG de Miami:</a><span class="crp_excerpt"> El pasado diez de Septiembre asistí a la reunión mensual del grupo de usuarios de ...</span></li><li><a href="http://orvtech.com/general/las-cinco-publicaciones-mas-vistas-en-orvtech-com/" rel="bookmark" class="crp_title">Las cinco publicaciones mas vistas en orvtech.com del 2010:</a><span class="crp_excerpt"> Aquí les dejo los cinco posts mas visitados en mi blog durante el 2010. Las ...</span></li></ul><br /></div><p><a href="http://orvtech.com/howto/cuando-se-instalo-un-rpm/">Cuando se instalo un RPM?</a> es un articulo de: <a href="http://orvtech.com" rel="friend">orvtech.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://orvtech.com/howto/cuando-se-instalo-un-rpm/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Privacidad y Seguridad en history</title>
		<link>http://orvtech.com/howto/privacidad-y-seguridad-en-history/</link>
		<comments>http://orvtech.com/howto/privacidad-y-seguridad-en-history/#comments</comments>
		<pubDate>Thu, 28 Apr 2011 03:21:26 +0000</pubDate>
		<dc:creator>orvtech</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[BASH]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Scripts]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://orvtech.com/?p=4532</guid>
		<description><![CDATA[Supongamos que estas usando una maquina compartida en la que mucha gente tiene acceso, los administradores podrían simplemente hacer login como root y leer tu ~/.bash_history, incluso si tu maquina personal es comprometida tu historia esta a la vista del hacker que este realizando el ataque.<p><a href="http://orvtech.com/howto/privacidad-y-seguridad-en-history/">Privacidad y Seguridad en history</a> es un articulo de: <a href="http://orvtech.com" rel="friend">orvtech.com</a></p>
]]></description>
			<content:encoded><![CDATA[<div style="text-align:center;"><img src="http://orvtech.info/2011/04/privacy_history_head.jpg" alt="privacidad y seguridad en el historial de BASH" title="privacidad y seguridad en el historial de BASH" width="595" height="30" /></div>
<p>A pesar de que <a href=http://orvtech.com/howto/history-mas-que-historia/ title="el comando history es mas que un simple visor de historial en bash"><tt title="Comando que muestra tu historial en BASH">history</tt> es realmente útil y una gran ayuda en BASH</a>, es posible que en ocasiones no quieres que algunos comandos sean guardados en tu historial. Supongamos que estas usando una maquina compartida en la que mucha gente tiene acceso, los administradores podrían simplemente hacer login como root y leer tu <tt>~/.bash_history</tt> sin ninguna serie de hacks complicados&#8230; es así de simple, incluso si tu maquina personal es comprometida tu historia esta a la vista del hacker que este realizando el ataque. Por esta y muchas otras razones tal vez quieras mantener algo de control sobre tu historial y prevenir que algunos comandos sean guardados en tu historial.</p>
<p>Una forma simple de prevenir que algunos comandos sean listados por <tt title="Comando que muestra tu historial en BASH">history</tt> es usando <code>HISTCONTROL=ignorespace:ignoredups</code>. El parámetro <em>ignoredups</em> te permite ignorar duplicados. <em>ignorespace</em> específicamente te permite ignorar comandos que son precedidos por un espacio en blanco, perfecto para esos comandos que quieres mantener en secreto. Algunas distribuciones ya traen esto por defecto pero de igual forma lo puedes asignarlo tu en el archivo <em>.bashrc</em> dentro de tu home</p>
<p>Otro método es usar la variable de entorno <tt>HISTIGNORE</tt> para que BASH ignore algunos comandos o parámetros. Digamos que no quieres que queden registrados todos los comandos que contienen el nombre de un server privado, en ese caso podrías usar <code>HISTIGNORE="*mi_servidor_secreto*"</code> donde <em>mi_servidor_secreto</em> es el nombre o parte del nombre de este server.</p>
<p>Recuerda que esto no te asegura que tus comandos estarán 100% seguros, en una maquina compartida o una comprometida la gente podría ver que procesos están corriendo con <code>ps aux</code> o que hay en memoria para determinar que comandos están siendo ejecutados. Recuerda no hacer trabajos que usan información sensitiva en maquinas en las que no confías.</p>
<p></p>
<p>&nbsp;</p>
<p>Si te gusto este articulo, tal ves podría interesarte el siguiente articulo: <a href="http://orvtech.com/howto/history-mas-que-historia/">history, mas que historia</a>.</p>
<div id="crp_related"><br /><h4>Artículos relacionados:</h4><ul><li><a href="http://orvtech.com/howto/history-mas-que-historia/" rel="bookmark" class="crp_title">History, mas que historia:</a><span class="crp_excerpt"> Hay quienes dicen que si no conoces tu pasado estas destinado a repetirlo, pero si ...</span></li><li><a href="http://orvtech.com/howto/destrui-forma-segura-archivos-privados/" rel="bookmark" class="crp_title">Destruye de forma segura tus archivos privados:</a><span class="crp_excerpt"> 
Retomando el tema de eliminar archivos, hay muchos que piensan que simplemente formateando un archivo ...</span></li><li><a href="http://orvtech.com/howto/asignar-direccion-ip-fija-fedora-15/" rel="bookmark" class="crp_title">Asignar dirección IP fija en Fedora 15:</a><span class="crp_excerpt"> En ocasiones es necesario asignarse dirección IP fija dentro de una red, bien sea para ...</span></li></ul><br /></div><p><a href="http://orvtech.com/howto/privacidad-y-seguridad-en-history/">Privacidad y Seguridad en history</a> es un articulo de: <a href="http://orvtech.com" rel="friend">orvtech.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://orvtech.com/howto/privacidad-y-seguridad-en-history/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Transmisión en vivo de imágenes</title>
		<link>http://orvtech.com/howto/livecast-script-transmision-vivo-fotos/</link>
		<comments>http://orvtech.com/howto/livecast-script-transmision-vivo-fotos/#comments</comments>
		<pubDate>Sat, 26 Feb 2011 04:37:23 +0000</pubDate>
		<dc:creator>orvtech</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[BASH]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[livecast]]></category>
		<category><![CDATA[Scripts]]></category>

		<guid isPermaLink="false">http://orvtech.com/?p=4263</guid>
		<description><![CDATA[Con una demora de tres a cinco minutos este conjunto de scripts puede ser usado para cubrir eventos como el FLISOL, FUDcon, Google IO y convenciones en general en directo. Cualquier con un dispositivo capaz de tomar fotos y enviarlas por email puede ser usado y formar parte del sistema<p><a href="http://orvtech.com/howto/livecast-script-transmision-vivo-fotos/">Transmisión en vivo de imágenes</a> es un articulo de: <a href="http://orvtech.com" rel="friend">orvtech.com</a></p>
]]></description>
			<content:encoded><![CDATA[<p>Esta seria una versión simplificada, con menos puntos de posibles fallas y hasta cierto punto mas eficiente de un conjunto de scripts hechos en BASH para cubrir eventos en directo, Con una demora de entre 3 a 5 minutos es capaz de publicar en paginas web fotos tomadas por dispositivos capaces de tomar fotos y enviarlas vía email. El proceso es básicamente el siguiente: </p>
<div style="text-align:center;"><a href="http://orvtech.info/2011/02/flow.jpg" title="Cinco pasos simples de este sistema"><img src="http://orvtech.info/2011/02/flow.jpg" alt="Cinco pasos simples de este sistema" title="Cinco pasos" width="357" height="356" class="size-full wp-image-4265" /></a></div>
<ol>
<li> El grupo de usuarios que van a publicar fotos toman las fotos con sus dispositivos, en mi caso siempre he usado mi teléfono móvil.</li>
<li> Esta foto es enviada vía correo electrónico a Picasa.</li>
<li> Picasa procesa esta foto y genera las miniaturas de la foto automáticamente, ademas de hacerlas disponibles a través de su API. </li>
<li> Mi NSLU2 que aun esta corriendo Linux hace una petición HTTP a Picasa y procesa la respuesta generando un archivo con código javascript.</li>
<li> El código javascript pre-generado por mi NSLU2 puede ser insertado en cualquier pagina web, las fotos estarán alojadas en la infraestructura de Picasa, reduciendo así el impacto a nivel de ancho de banda en nuestros servidores.</li>
</ol>
<p>
&nbsp;</p>
<p><strong title="livecast-1.sh">El Script</strong><br />
Como ven aquí abajo el script esta dividido en tres segmentos, el primero es para la declaración y asignación de variables donde puedes especificar el numero de columnas a usar para mostrar el álbum. El usuario al cual le pertenece esa cuenta de Picasa web y el nombre del álbum que contiene esas fotos. El valor de <tt>TEMPORAL</tt> debe de ser un directorio donde se van a guardar los archivos temporales que el script use. </p>
<p>El segundo segmento es el encargado de adquirir la data necesaria de las fotos alojadas en Picasa y generar un archivo de texto temporal que luego va a ser procesado para generar el javascript. El tercer y ultimo segmento genera el javascript y manipula el archivo temporal para que se generen columnas de fotos de acuerdo a la variable <tt>columnas</tt>.<br />
<code>#!/bin/bash<br />
# livecast-1.sh<br />
# preguntas o contacto en http://orvtech.com<br />
# No te olvides de hacer poner un link a http://orvtech.com donde uses este script.<br />
#!/bin/bash<br />
columnas=3<br />
contador=0<br />
ultimas=6<br />
TEMPORAL="/tmp"<br />
USUARIO="tu_ID_de_Usuario_aqui"<br />
ALBUM="Nombre_de_Album_aqui"<br />
DESTINO="tu_path_de_destino_aqui.js"<br />
#<br />
curl -s https://picasaweb.google.com/data/feed/base/user/$USUARIO/album/$ALBUM |\<br />
sed -e 's/\"/\ /g' -e s/\'/\ /g | tr ' ' '\n' |grep  s144|\<br />
awk -v USUARIO=$USUARIO -v ALBUM=$ALBUM '{print "<a href=\"https://picasaweb.google.com/"USUARIO"/"ALBUM"\"><img src=\"" $1 "\" height=\"200px\" width=\"200px\"/></a>"}' > $TEMPORAL/livecast.txt<br />
#<br />
cat $TEMPORAL/livecast.txt|tail -n $ultimas |\<br />
while read line<br />
do contador=$(( $contador + 1 ))<br />
 if [ $contador -eq $columnas ];then<br />
 echo "${line}<br />" |tr '\n' ' ' | sed -e 's/  / /g'<br />
 contador=0<br />
 else<br />
 echo "${line}"| tr '\n' ' ' | sed -e 's/  / /g'<br />
 fi<br />
done |tr '\n' ' ' | sed -e 's/  / /g' -e 's/s144/s200-c/g' |awk '{print "var livecast='"'"'" $0"'"'"'\ndocument.write(livecast);"}' > $DESTINO</code></p>
<p>Este script genera un archivo que puede ser invocado con un simple <tt>&lt;script src="http://dominio.ltd/archivo.js" type="text/javascript"&gt;</tt>. En mi caso a partir del álbum <a href="https://picasaweb.google.com/orvtech.com/DropBox#">https://picasaweb.google.com/orvtech.com/DropBox</a> genero el código:<br />
<code>var livecast='&lt;a href="https://picasaweb.google.com/orvtech.com/DropBox"&gt;&lt;img src="http://lh4.ggpht.com/_9SbN2dfg-eo/TVP_pLNsZNI/AAAAAAAAAC4/fPaI9Axe0vM/s144-c/4563315788_ec545d5010_o.jpg" height="144px" width="144px"/&gt;&lt;/a&gt; &lt;a href="https://picasaweb.google.com/orvtech.com/DropBox"&gt;&lt;img src="http://lh5.ggpht.com/_9SbN2dfg-eo/TVP_-5OuSoI/AAAAAAAAAC4/MUoxlt--jcQ/s144-c/4546433743_2c8b357c72_o.jpg" height="144px" width="144px"/&gt;&lt;/a&gt; &lt;a href="https://picasaweb.google.com/orvtech.com/DropBox"&gt;&lt;img src="http://lh4.ggpht.com/_9SbN2dfg-eo/TVQABB_L42I/AAAAAAAAAC4/3ZqVtZbS6Bc/s144-c/IMG_20110127_225432.jpg" height="144px" width="144px"/&gt;&lt;/a&gt;&lt;br /&gt; &lt;a href="https://picasaweb.google.com/orvtech.com/DropBox"&gt;&lt;img src="http://lh5.ggpht.com/_9SbN2dfg-eo/TVQAF0PRLvI/AAAAAAAAAC4/YY_T9872UMs/s144-c/Flisol2009_04.jpg" height="144px" width="144px"/&gt;&lt;/a&gt; &lt;a href="https://picasaweb.google.com/orvtech.com/DropBox"&gt;&lt;img src="http://lh5.ggpht.com/_9SbN2dfg-eo/TVQAN3_ZjQI/AAAAAAAAAC4/gg2DoHP5Ybk/s144-c/p4240052.jpg" height="144px" width="144px"/&gt;&lt;/a&gt; &lt;a href="https://picasaweb.google.com/orvtech.com/DropBox"&gt;&lt;img src="http://lh3.ggpht.com/_9SbN2dfg-eo/TVQAOJ9WG-I/AAAAAAAAAC4/rM8wkBYSdsA/s144-c/IMG_5571.JPG" height="144px" width="144px"/&gt;&lt;/a&gt;&lt;br /&gt; '<br />
document.write(livecast);</code></p>
<p>Que al ser invocado con <tt>&lt;script&gt;</tt> produce estas 3 columnas de fotos:</p>
<div style="text-align: center;"><script src="http://www.ilove2troll.com/test.js" type="text/javascript"></script></div>
<p>
&nbsp;</p>
<p>El tamaño de los thumbnails y la cantidad de columnas puede ser configurado incluso se podría asignar en una variable del script con un poco de mas trabajo (15 minutos). Pero se podría decir que estamos listos para transmitir en vivo fotos de eventos como FLISOL, FUDcon, <abbr title="googleio">Google IO</abbr> o cualquier otro evento de este estilo.</p>
<p>
&nbsp;</p>
<p><strong>La segunda versión de este script</strong><br />
Hace poco mas de dos año hice un script que aunque mas propenso a errores por lo que involucraba muchas mas plataformas y herramientas externas, tenia mas funcionalidades. Entre las que mas les ha llamado la atención al <a href="http://groups.google.com/group/trujillolinux?hl=es">LUG de Trujillo</a> (que son con quienes he discutido el tema de este script en especifico) es la marca de agua y la posibilidad de insertar texto en la imagen. Veamos esta foto para que entiendan de que les estoy hablando.</p>
<div style="text-align:center;"><a href="http://orvtech.info/2011/02/subylivecast1.jpg"><img src="http://orvtech.info/2011/02/subylivecast1-150x150.jpg" alt="Subaru WRX en una foto durante la cobertura en vivo del Koni Challenge" title="Subaru en el trailer de SOA" width="150" height="150" class="size-thumbnail wp-image-4280" /></a> <a href="http://orvtech.info/2011/02/subylivecast2.jpg"><img src="http://orvtech.info/2011/02/subylivecast2-150x150.jpg" alt="Subaru WRX en una foto durante la cobertura en vivo del Koni Challenge" title="Subaru en el trailer de SOA" width="150" height="150" class="size-thumbnail wp-image-4280" /></a> <a href="http://orvtech.info/2011/02/subylivecast3.jpg"><img src="http://orvtech.info/2011/02/subylivecast3-150x150.jpg" alt="Subaru WRX en una foto durante la cobertura en vivo del Koni Challenge" title="Subaru en el trailer de SOA" width="150" height="150" class="size-thumbnail wp-image-4280" /></a></div>
<p>&nbsp;<br />
Estas fotos fueron de un evento que cubrimos los integrantes de la comunidad subyforums.com, es parte de la copa Koni Challenge. En la parte superior de cada imagen esta información que afecta los resultados de las clasificatorias como por ejemplo temperatura y humedad (impactan mucho a los carros con turbo), hora y fecha. En la parte inferior esta el logo del foro como una marca de agua. Este script se uso durante varios eventos, incluyendo Subaru Challenge 2009, Autoshow de California y el Koni Challenge. </p>
<p>El script se conecta a una casilla de correos, descarga los correos, procesa los archivos adjuntos redimencionandolos y aplicándoles las marcas de agua y la información adicional, ademas de esto se crean las miniaturas de las ultimas 10 fotos para ser compartidas en otras comunidades y se suben todos estos archivos a otro servidor vía FTP donde se servirán finalmente vía HTTP.<br />
En esa entonces use mi NSLU2 que con tan solo 266MHz y 32MB de RAM se demoraba unos 3 o 4 minutos por foto.</p>
<p>Entiendo que el beneficio de este script es que podemos tener fotos del FLISOL o de un Google IO en vivo con por ejemplo la marca de agua del FLISOL y en el tope la información del LUG local. Actualmente tengo algunos ajustes que hacerle al script y solventar un problema que tengo con los certificados para poder usar gmail como casilla de correo y dispongo de poco tiempo. </p>
<p></p>
<p>&nbsp;</p>
<p>Pueden descargar el script de este articulo pinchando <a href="http://orvtech.info/livecast.gz"><u>aqui</u></a>. Pronto publicare el otro script y les comentare de otro proyecto de este mismo estilo que estoy trabajando en base a unas sugerencias de <a href="http://tatica.org">tatica</a>.</p>
<div id="crp_related"><br /><h4>Artículos relacionados:</h4><ul><li><a href="http://orvtech.com/howto/de-picasa-a-bbcode/" rel="bookmark" class="crp_title">De Picasa a BBCode:</a><span class="crp_excerpt"> Este script es cumple la misma función que el anterior de Flickr pero con los ...</span></li><li><a href="http://orvtech.com/general/geeks-and-arts/" rel="bookmark" class="crp_title">Geeks and Arts:</a><span class="crp_excerpt"> Aquí les dejo unas fotos que tome este fin de semana en el festival de ...</span></li><li><a href="http://orvtech.com/howto/cgi-para-obtener-el-bbcode-de-flickr-y-picasaweb-hecha-en-bash/" rel="bookmark" class="crp_title">CGI para obtener el BBCode de Flickr y Picasaweb hecha en BASH.:</a><span class="crp_excerpt"> 

No hace mucho publique dos scripts para obtener el código BBCode a partir de la ...</span></li></ul><br /></div><p><a href="http://orvtech.com/howto/livecast-script-transmision-vivo-fotos/">Transmisión en vivo de imágenes</a> es un articulo de: <a href="http://orvtech.com" rel="friend">orvtech.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://orvtech.com/howto/livecast-script-transmision-vivo-fotos/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Un poco de network sniffing</title>
		<link>http://orvtech.com/howto/network-sniffing-tcpdump-p0f-dsniff/</link>
		<comments>http://orvtech.com/howto/network-sniffing-tcpdump-p0f-dsniff/#comments</comments>
		<pubDate>Fri, 04 Feb 2011 04:58:18 +0000</pubDate>
		<dc:creator>orvtech</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Hacks]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[OSX]]></category>
		<category><![CDATA[Scripts]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[Videos]]></category>

		<guid isPermaLink="false">http://orvtech.com/?p=4123</guid>
		<description><![CDATA[Tres herramientas para comenzar a hacer network sniffing bajo Linux u OSX y procesar todas esas tramas de red que hemos capturado y como hacerlo sin ser detectados usando mecanismos pasivos. <p><a href="http://orvtech.com/howto/network-sniffing-tcpdump-p0f-dsniff/">Un poco de network sniffing</a> es un articulo de: <a href="http://orvtech.com" rel="friend">orvtech.com</a></p>
]]></description>
			<content:encoded><![CDATA[<p>Cuando uno habla de hacking o hacks, la mayoría de la gente lo asocia con el típico nerd que vive con su mama y que desde el sótano de su casa irrumpe en otras computadoras. En este articulo voy a hablar un poco de las herramientas disponibles para hacer precisamente eso, pero por motivos didácticos, así que no soy responsable de sus acciones. La mayoría de ustedes han escuchado de <em>nmap</em> y <em>nessus</em> pero que hay de las otras herramientas? echemosle un vistazo y juguemos un poco con la red.</p>
<p>La preferida por muchos es <em>tcpdump</em>, es una herramienta que simplemente nos permite escuchar todo el trafico de la red y graba todos estos paquetes para que luego los podamos analizar. Si tienes mas de una <abbr title="Network Interface Card">NIC</abbr>, puedes especificar por cual quieres escuchar pasándole el parámetro -i interfaz. Una cosa que me gusta es que <em>tcpdump</em> pone tu <abbr title="Network Interface Card">NIC</abbr> en modo promiscuo (o por lo menos intenta hacerlo) de forma predeterminada, de esta forma puede escuchar todo el trafico de ese segmento de la red. Para deshabilitar el modo promiscuo y limitar el trafico solo a el que le compete a tu NIC puedes usar el parámetro -p. Hay muchos otros parámetros que puedes usar, recuerda ejecutar man <em>tcpdump</em> para mas información.</p>
<p>Aquí les dejo un video que muestra como saber que sitios web estan visitanto desde nuestra red.</p>
<div style="text-align:center;">
<embed src="http://blip.tv/play/AYKg22wA" type="application/x-shockwave-flash" width="595" height="348" allowscriptaccess="always" allowfullscreen="true"></embed>
</div>
<p> &nbsp;<br />
Ahora bien, vamos a cuidar nuestras espaldas y supongamos que queremos saber que ordenadores están en tu segmento de red pero queremos evitar enviar paquetes a la red preguntando por estos ordenadores para que no nos delate (recuerda, este tipo de actividad le puede parecer sospechoso al administrador). La herramienta indicada para esta tarea es <em>p0f</em>, esta usa técnicas pasivas para tratar de adivinar que sistemas existen en tu segmento de red y al igual que <em>tcpdump</em> permite especificar la interfaz a usar y grabar trafico guardándolo en un archivo estilo tpcdump.</p>
<p>Nuestras dos herramientas se empiezan a diferenciar a la hora de definir de forma predeterminada el estado de promiscuidad de nuestra NIC, <em>p0f</em> requiere que especifiques que quieres que la NIC este en modo promiscuo y solo escucha cuando un ordenador en nuestra red abre nuevas conexiones. Aquí una lista de parámetros útiles para <em>p0f</em>.</p>
<ol>
<li>-i Especifica la NIC por la que va a escuchar (p0f -i eth0)</li>
<li>-w Guarda la salida en formato tcpdump (p0f -i eth0 -w laboratorio.dump)</li>
<li>-o Al igual que -w guarda la salida de este comando pero en un archivo de texto sin formato tcpdump</li>
<li>-O Proporciona una salida mas descriptiva. Tambien llamado modo ACK</li>
<li>-p Indica que quieres que ponga la NIC en modo promiscuo (p0f -i eth0 -p)</li>
<li>-s Analiza un archivo que previamente capturaste en formato tcpdump</li>
</ol>
<p>El problema de todo esto hasta ahora es que es muy probable que el resto de las maquinas esten bajo una NAT y no podamos verlas como tal, solo veremos el router. Uno puede usar el parámetro -M que le indica a <em>p0f</em> que use un algoritmo de detección de enmascaramiento e intenta identificar estas maquinas individualmente.</p>
<p>Supongamos que ya sabemos cuales son los otros ordenadores que existen en nuestra red, ahora lo interesante es saber que tipo de trafico tienen, sera FTP? o tal vez HTTP?, POP?, IMAP? o cualquier otro que sea de nuestro interés. Lo segundo que en mi caso me llama la atención es ver desde donde viene este trafico, con quien se comunican estos otros ordenadores? para responder todo esto podemos usar nuestra tercera herramienta, <em>dsniff</em>.</p>
<p>Esta utilidad al igual que las anteriores nos permite especificar que interfaz queremos usar e incluso podemos usar el parámetro -p para que use archivos que han sido grabados previamente. Puedes habilitar la detección automática de protocolos usando el parámetro -m lo que te va dar detalles crudos de que hacen tus vecinos de red.</p>
<p>La salida de este comando luce algo asi:</p>
<pre><tt>~# dsniff -m
dsniff: listening on eth0
-----------------
02/01/11 09:50:19 tcp 10.153.212.26.46004 -> trillian.gtlib.gatech.edu.21 (ftp)
USER anonymous
PASS mailto:axel-devel@lists.alioth.debian.org

-----------------
02/01/11 09:51:50 tcp 10.153.212.26.48257 -> linux.nssl.noaa.gov.21 (ftp)
USER anonymous
PASS mailto:axel-devel@lists.alioth.debian.org

-----------------
02/01/11 09:53:06 tcp 10.153.212.26.39551 -> chernabog.cc.vt.edu.21 (ftp)
USER anonymous
PASS chrome@example.com</tt></pre>
<p>Ahora que sabemos quienes están a nuestro alcance, que hacen y con quien, podemos revisar la seguridad de los servicios que prestan, el mas común es el servicio web.</p>
<p>Una herramienta buena para revisar como esta la seguridad de nuestro servidor web es <em>nitko</em>. Puedes seleccionar el hostname con la opción -h incluso puedes pasarle una lista de host o IPs en un archivo de texto. <em>nitko</em> se enfoca en el puerto 80 de forma predeterminada pero puedes alterar esto usando el parámetro -p de hecho tiene un montón de parámetros que puedes usar para pruebas de seguridad especificas&#8230; mas de las que quisiera mencionar aquí.<br />
No quería terminar este articulo sin antes mencionar <em>chkrootkit</em>, esta utilidad nos permite analizar sistemas y trata de terminar si han sido manipulados, para ver una lista de las pruebas disponibles puedes usar el parámetro -l. Útil para verificar si el sistema ha sido infectado o si tiene rootkits.</p>
<p>Este articulo es para fines didácticos, para que &#8216;juegues&#8217; en tu propia red y no para que dañes sistemas ajenos ni adquieras a información que no te pertenece. </p>
<div id="crp_related"><br /><h4>Artículos relacionados:</h4><ul><li><a href="http://orvtech.com/howto/video-habilita-https-en-twitter/" rel="bookmark" class="crp_title">Video: Habilita HTTPS en Twitter:</a><span class="crp_excerpt"> Aqui les dejo un video que explica como habilitar el protocolo HTTPS para encritar las ...</span></li><li><a href="http://orvtech.com/howto/destrui-forma-segura-archivos-privados/" rel="bookmark" class="crp_title">Destruye de forma segura tus archivos privados:</a><span class="crp_excerpt"> 
Retomando el tema de eliminar archivos, hay muchos que piensan que simplemente formateando un archivo ...</span></li><li><a href="http://orvtech.com/howto/iniciar-modo-singleuse/" rel="bookmark" class="crp_title">Iniciando bajo single user mode, fpaste y pedir ayuda en #fedora-latam:</a><span class="crp_excerpt"> El modo de single user (usuario individual) un modo en el cual un sistema operativo ...</span></li></ul><br /></div><p><a href="http://orvtech.com/howto/network-sniffing-tcpdump-p0f-dsniff/">Un poco de network sniffing</a> es un articulo de: <a href="http://orvtech.com" rel="friend">orvtech.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://orvtech.com/howto/network-sniffing-tcpdump-p0f-dsniff/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Recuperar archivos borrados</title>
		<link>http://orvtech.com/howto/recuperar-archivos-borrados/</link>
		<comments>http://orvtech.com/howto/recuperar-archivos-borrados/#comments</comments>
		<pubDate>Thu, 20 Jan 2011 04:56:08 +0000</pubDate>
		<dc:creator>orvtech</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[BASH]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Scripts]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[torrents]]></category>

		<guid isPermaLink="false">http://orvtech.com/?p=4018</guid>
		<description><![CDATA[Incluso después de un rm -f puedes recuperar el archivo eliminado usando la información que nos proporciona el sistema de ficheros /proc<p><a href="http://orvtech.com/howto/recuperar-archivos-borrados/">Recuperar archivos borrados</a> es un articulo de: <a href="http://orvtech.com" rel="friend">orvtech.com</a></p>
]]></description>
			<content:encoded><![CDATA[<p>A todos nos ha pasado, estamos trabajando, por error le damos en el teclado a la flecha de arriba y pasa lo peor:<br />
<code>rm -f /home/m1n1m3/descargas/descargdor.sh</code></p>
<p>Cualquier entra en pánico al darnos cuenta que no teníamos respaldo de este script, pero en estos momentos es cuando mas calma se debe de tener. Analicemos la situación, aun hay procesos usando este archivo, en mi caso aun sigo descargando y compartiendo archivos vía torrents gracias a este script que acabo de eliminar. Lo primero es encontrar el PID para lo cual podemos ejecutar <em>ps</em> y hacer un <em>grep</em> por el nombre del archivo, el resultado tendrá en la primera columna el PID como lo podemos ver aquí:<br />
<code>m1n1m3@localhost ~ $ ps -p |grep -i descargador.sh<br />
<strong>30560</strong> pts/3    Ss+    0:00 /bin/bash /home/m1n1m3/descargas/descargdor.sh</code></p>
<p>El sistema de ficheros <em>/proc</em> mantiene vínculos a los archivos abiertos por procesos dentro de el sub-directorio <em>fd/</em> (File Descriptor) que a su vez esa anidado dentro de una carpeta con el nombre del PID del proceso y como acabamos de comprobar nuestro script aun se esta ejecutando.</p>
<p>Teniendo en cuenta el PID que obtuvimos anteriormente y ya que sabemos que la estructura de directorios es <em>/proc/&lt;pid&gt;/fd/</em> podemos determinar que el archivo que acabamos de eliminar esta dentro de <em>/proc/30560/fd/</em>. Para determinar cual de todos es podemos hacer un <em>ls -la</em> y hacerle un <em>grep</em> por el nombre del archivo a la salida del <em>ls -la</em>. Todo esto se debería de ver así:<br />
<code>m1n1m3@localhost ~ $ ls -la /proc/30562/fd/* | grep descargador.sh<br />
/proc/30560/fd/51 -> /home/m1n1m3/descargas/descargador.sh (deleted)</code><code></p>
<p>Para recuperar el archivo eliminado solo debemos copiar el archivo dentro de <em>fd/</em> a donde queramos, en mi caso, lo quiero restaurar, así que ejecutare:<br />
</code><code>cp /proc/30560/fd/51 /home/m1n1m3/descargas/descargador.sh</code></p>
<p>Listo, archivo restaurado.</p>
<p>Nota: Esto funciona también en Android </p>
<div id="crp_related"><br /><h4>Artículos relacionados:</h4><ul><li><a href="http://orvtech.com/howto/encontrar-los-directorios-y-archivos-mas-grandes-en-una-carpeta/" rel="bookmark" class="crp_title">Encontrar los directorios y archivos mas grandes en una carpeta:</a><span class="crp_excerpt"> Usando `du` podemos encontrar los directorios y archivos mas grande dentro de un directorio. el ...</span></li><li><a href="http://orvtech.com/howto/script-para-monitorear-recursos-del-sistema-en-el-nslu2/" rel="bookmark" class="crp_title">Script para monitorear recursos del sistema en el NSLU2:</a><span class="crp_excerpt"> Este script muestra la utilización de recursos en el NSLU2 siempre y cuando este corriendo ...</span></li><li><a href="http://orvtech.com/general/recuperar-archivos-borrados-usando-grep/" rel="bookmark" class="crp_title">Recuperar archivos borrados (la revancha):</a><span class="crp_excerpt"> Las redes sociales me han servido, entre otras cosas, para profundizar un poco más sobre ...</span></li></ul><br /></div><p><a href="http://orvtech.com/howto/recuperar-archivos-borrados/">Recuperar archivos borrados</a> es un articulo de: <a href="http://orvtech.com" rel="friend">orvtech.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://orvtech.com/howto/recuperar-archivos-borrados/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>De last.fm a gNewBook</title>
		<link>http://orvtech.com/howto/de-last-fm-a-gnewbook/</link>
		<comments>http://orvtech.com/howto/de-last-fm-a-gnewbook/#comments</comments>
		<pubDate>Sun, 16 Jan 2011 10:00:38 +0000</pubDate>
		<dc:creator>orvtech</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[BASH]]></category>
		<category><![CDATA[gNewBook]]></category>
		<category><![CDATA[last.fm]]></category>
		<category><![CDATA[Scripts]]></category>

		<guid isPermaLink="false">http://orvtech.com/?p=4040</guid>
		<description><![CDATA[Con un script hecho en BASH podemos actualizar nuestro estado en gNewBook.org con la ultima canción escuchada en nuestro perfil de last.fm. <p><a href="http://orvtech.com/howto/de-last-fm-a-gnewbook/">De last.fm a gNewBook</a> es un articulo de: <a href="http://orvtech.com" rel="friend">orvtech.com</a></p>
]]></description>
			<content:encoded><![CDATA[<p>La red social cien por ciento libre <a href="http://www.gnewbook.org" lat="la red social 100% libre donde los usuarios comparte y se comunican libremente">gNewBook</a> nos permite actualizar nuestro estado en la sección de microblogging via API. El metodo es muy similar al de twitter. En esta ocasión de hecho voy a adaptar y simplificar un script que ya publique anteriormente (<a href="http://orvtech.com/howto/el-nslu2-como-un-puente-de-last-fm-a-twitter/" title="Script para usar el NSLU2 como un puente entre last.fm twitter">El NSLU2 como un puente de last.fm a twitter</a>).</p>
<div id="attachment_4039" class="wp-caption aligncenter" style="width: 606px"><a href="http://orvtech.com/howto/de-last-fm-a-gnewbook/"><img src="http://orvtech.info/2011/01/lastfm2gnewbook.jpg" alt="Synergia entre last.fm y gnewbook.org via orvtech.com" title="lastfm2gnewbook.sh" width="596" height="233" class="size-full wp-image-4039" /></a><p class="wp-caption-text">BASH como puente entre last.fm y gnewbook</p></div>
<p>Para este script nesecitamos una cuenta en gnewbook.org y una en last.fm aqui les dejo last.fm2gnewbook.sh<br />
<code>#!/bin/bash<br />
USUARIO=" "<br />
PASSWORD=" "<br />
FMUSER=" "<br />
URL="http://www.gnewbook.org/api/update.php"<br />
ESTATUS=`curl -s http://www.last.fm/user/$FMUSER/tracks | \<br />
grep "/music/" | \<br />
sed -e :a -e 's/&lt;[^&gt;]*&gt;//g;/&lt;/N;//ba' | \<br />
sed 's/^[ \t]*//' | sed 's/[ \t]*$//' | \<br />
grep -i  [a-z] | \<br />
head -n 1| \<br />
awk '{print "Acabo de escuchar: " $0 ". mientras echaba codigo en #BASH"}'`<br />
curl -u $USER:$PASSWORD -d status="$ESTATUS"  --url $URL &gt;&gt; /dev/null<br />
echo "estatus en gnewbook actualizado con: " $ESTATUS</code></p>
<p>Recuerda asignar los valores de $USUARIO y $PASSWORD con tus datos de gnewbook.org y $FMUSER con tu usuario de last.fm otra cosa que deben de tener en cuenta es que gNewBook aun esta en estado beta y puede que en ocasiones no actualice su estatus (me paso en un par de pruebas). </p>
<div id="crp_related"><br /><h4>Artículos relacionados:</h4><ul><li><a href="http://orvtech.com/howto/el-nslu2-como-un-puente-de-last-fm-a-twitter/" rel="bookmark" class="crp_title">El NSLU2 como un puente de last.fm a twitter.:</a><span class="crp_excerpt"> Este script nació de la necesidad (ocio?) de actualizar mi estado en twitter con la ...</span></li><li><a href="http://orvtech.com/howto/servidor-completo-casero-economico-linux/" rel="bookmark" class="crp_title">Un servidor casero, completo y económico con Linux:</a><span class="crp_excerpt"> Hoy quiero retomar el tema del NSLU2, el tema de un servidor casero, silencioso y ...</span></li><li><a href="http://orvtech.com/howto/cgi-para-obtener-el-bbcode-de-flickr-y-picasaweb-hecha-en-bash/" rel="bookmark" class="crp_title">CGI para obtener el BBCode de Flickr y Picasaweb hecha en BASH.:</a><span class="crp_excerpt"> 

No hace mucho publique dos scripts para obtener el código BBCode a partir de la ...</span></li></ul><br /></div><p><a href="http://orvtech.com/howto/de-last-fm-a-gnewbook/">De last.fm a gNewBook</a> es un articulo de: <a href="http://orvtech.com" rel="friend">orvtech.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://orvtech.com/howto/de-last-fm-a-gnewbook/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

