<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Blog de Cesar Yanez</title>
	<atom:link href="http://mcyanez.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://mcyanez.wordpress.com</link>
	<description>Experiencias personales como administrador de sistemas GNU/Linux ,  Unix, Windows; escritos contribuyendo a la comunidad de software libre, contribuciones a mi  memoria, razonamientos incoherentes y algunas yerbas que se me ocurre escribir cuando estoy borracho! :-P</description>
	<lastBuildDate>Fri, 27 Jan 2012 07:05:27 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='mcyanez.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://1.gravatar.com/blavatar/f2eb5c760d291b117e362212d7bc8a00?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Blog de Cesar Yanez</title>
		<link>http://mcyanez.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://mcyanez.wordpress.com/osd.xml" title="Blog de Cesar Yanez" />
	<atom:link rel='hub' href='http://mcyanez.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Sysadmin :: Shell Script para inicio de maquinas virtuales de VirtualBox en modo Headless</title>
		<link>http://mcyanez.wordpress.com/2012/01/27/sysadmin-shell-script-para-inicio-de-maquinas-virtuales-de-virtualbox-en-modo-headless/</link>
		<comments>http://mcyanez.wordpress.com/2012/01/27/sysadmin-shell-script-para-inicio-de-maquinas-virtuales-de-virtualbox-en-modo-headless/#comments</comments>
		<pubDate>Fri, 27 Jan 2012 07:02:28 +0000</pubDate>
		<dc:creator>mc.yanez</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Shell scripts]]></category>
		<category><![CDATA[SysAdmin]]></category>
		<category><![CDATA[Unix]]></category>
		<category><![CDATA[Virtualizacion]]></category>
		<category><![CDATA[Bash]]></category>
		<category><![CDATA[Headless]]></category>
		<category><![CDATA[Logs]]></category>
		<category><![CDATA[shell scripts]]></category>
		<category><![CDATA[VBoxManage]]></category>
		<category><![CDATA[VirtualBox]]></category>

		<guid isPermaLink="false">http://mcyanez.wordpress.com/?p=895</guid>
		<description><![CDATA[Que titulo Tete! Bueno, mas allá de lo largo del titulo de este post, hoy me encontraba un poco con ganas de repasar programacion en Shell Scripts de bash asi que tome un viejo script  que encontré en internet hace un tiempo. En aquel momento  lo habia modificado un poco para que anduviese asi que me decidi mejorarlo mas [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mcyanez.wordpress.com&amp;blog=12470900&amp;post=895&amp;subd=mcyanez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" src="http://mcyanez.files.wordpress.com/2012/01/virtualbox.png?w=154&#038;h=154" alt="" width="154" height="154" />Que titulo Tete! Bueno, mas allá de lo largo del titulo de este post, hoy me encontraba un poco con ganas de repasar programacion en<a title="Shell Script" href="http://en.wikipedia.org/wiki/Shell_script" target="_blank"> Shell Scripts</a> de <a title="Que es Bash?" href="http://es.wikipedia.org/wiki/Bash" target="_blank">bash</a> asi que tome un viejo script  que encontré en internet hace un tiempo. En aquel momento  lo habia modificado un poco para que anduviese asi que me decidi mejorarlo mas aun porque la verdad cada vez que añadia una nueva maquina virtual tenia que cambiar muchisimas lineas de código.</p>
<p>La gente de <a title="VirtualBox Homepage" href="http://www.virtualbox.org" target="_blank">VirtualBox</a> provee en sus paquete una herramienta llamada <a title="Manual VBoxManage" href="http://www.virtualbox.org/manual/ch08.html" target="_blank">VBoxManage</a> que es para aquellos que empleamos  virtualbox como gestor de maquinas virtuales y necesitamos ejecutarlas  en un servidor sin necesidad de hacer uso del modo gráfico e interactivo donde tenemos que arrancar los host virtualizados a mano.  Este ejecutable nos permite gestionar completamente la administracion de host virtualizados desde linea de comandos con la posibilidad de ejecutarlas de fondo sin activacion del entorno grafico al que todos estamos acostumbrados.</p>
<p>El script gestiona VBoxManage para permitir iniciar/detener/ver el estado de cuantas  maquinas virtuales tengamos, lo anexan al directorio  <strong>/etc/init.d/</strong> y como enlace al<strong> /etc/rcX.d</strong> de su preferencia, en mi caso que uso debian en el<strong> /etc/rc2.d/</strong>  y  ya podemos empezar a usarlo luego de adecuarlo a nuestras necesidades solo modificando unas pocas variables con nuestro editor de textos favorito.  En las variables a modificar especificaremos datos como nombre de las maquinas virtuales, usuario con el que se ejecuta Virtualbox, tiempo máximo de espera para el apagado de una maquina virtual.</p>
<p>A continuación mi script, tada!!!</p>
<p><pre class="brush: bash;">
#!/bin/bash

##
## virtualbox-daemon-mcy.sh
##
## Version : 0.2 27.01.2012 03:05:43
##
## Descripcion: Demonio de inicio de Maquinas virtuales de VirtualBox
## El objetivo es automatizar el inicio de maquinas virtuales de
## Virtualbox en modo headless ( que es cuando nose ejecutan en modo
## interactivo, sin interfaz grafica, sino en background ). Se soportan
## el inicio de clientes windows como Linux y se mantiene un log por
## fechas de cuando se arranco/detuvo/guardo una sesion. Los logs se
## almacenan en el $HOME/.VBoxLogs del usuario que tiene las VM.
##
## Copyright 2012 Cesar Yanez &lt;emanceyan@gmail.com&gt;
##
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation; either version 2 of the License, or
## (at your option) any later version.
##
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License
## along with this program; if not, write to the Free Software
## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
## MA 02110-1301, USA.
### MODIFICABLE POR USUARIO ### MODIFICABLE POR USUARIO #######
##
## Info: VMs Windows ###
##
## Ayuda:
## VBX_WIN_TOTAL : cantidad de Maquinas Virtuales con Win
##
## VBX_WIN_NAMEX : nombre de la maquina virtual X con Win
## VBX_WIN_USERX : usuario admin de la maquina virtual X
## VBX_WIN_PASSX : password admin de la maquina virtual X
## VBX_WIN_NUMIPX : numero ip de la maquina virtual X
##
## Si hay mas de 4 maquinas virtuales con windows copiar
## y repetir secciones sin repetir numeros
##
VBX_WIN_TOTAL=1

VBX_WIN_NAME1=&quot;Windows XP&quot;
VBX_WIN_USER1=&quot;cesar&quot;
VBX_WIN_PASS1=&quot;cesar&quot;
VBX_WIN_NUMIP1=&quot;192.168.1.140&quot;

VBX_WIN_NAME2=&quot;&quot;
VBX_WIN_USER2=&quot;&quot;
VBX_WIN_PASS2=&quot;&quot;
VBX_WIN_NUMIP2=&quot;&quot;

VBX_WIN_NAME3=&quot;&quot;
VBX_WIN_USER3=&quot;&quot;
VBX_WIN_PASS3=&quot;&quot;
VBX_WIN_NUMIP3=&quot;&quot;

## Info: VMs Linux ###
##
## Ayuda:
## VBX_LIN_TOTAL : cantidad de Maquinas Virtuales con Linux
##
## VBX_LIN_NAMEX : nombre de la maquina virtual X con Linux
##
VBX_LIN_TOTAL=1

VBX_LIN_NAME1=&quot;DebianSqueeze&quot;
VBX_LIN_NAME2=&quot;&quot;
VBX_LIN_NAME3=&quot;&quot;
VBX_LIN_NAME3=&quot;&quot;

### Info: Usuario que es propietario de las maquinas virtuales
###
VBX_USR=&quot;rondamon&quot;
### Maxima cantidad de tiempo a esperar para que se apague una
### sesion
MAX_SEC=30

### MODIFICABLE POR USUARIO ### MODIFICABLE POR USUARIO #######

###### NO MODIFICAR ###### NO MODIFICAR ###### NO MODIFICAR ####

setEnvVar(){
 RPC_NET=`which net`
 SYS_SU=`which su`
 SYS_AWK=`which awk`
 SYS_GREP=`which grep`
 SYS_TR=`which tr`
 SYS_WC=`which wc`
 SYS_CUT=`which cut`
 SYS_MKD=`which mkdir`
 SYS_CHW=`which chown`
 CUR_USR=`whoami`
 VBX_MNG=`which VBoxManage`
 VBX_USR_HOME=`$SYS_GREP $VBX_USR /etc/passwd|$SYS_CUT -d: -f6`
 VBX_DIR_LOGS=$VBX_USR_HOME/.VBoxLogs
 VBX_LOG_START=$VBX_DIR_LOGS/start.`date '+%d%m%y'`.logs
 VBX_LOG_STOP=$VBX_DIR_LOGS/stop.`date '+%d%m%y'`.logs
 VBX_LOG_SAVE=$VBX_DIR_LOGS/save.`date '+%d%m%y'`.logs
 if [ ! -d $VBX_DIR_LOGS ]; then
 $SYS_MKD $VBX_DIR_LOGS
 fi
 $SYS_CHW $VBX_USR:$VBX_USR $VBX_DIR_LOGS
}

checkVmRunning(){
 VM_TOTAL=`expr $VBX_WIN_TOTAL + $VBX_LIN_TOTAL`
 VM_TOTAL_RUNNING=`$SYS_SU $VBX_USR -c &quot;$VBX_MNG list runningvms |$SYS_WC -l&quot;`
 if [ $VM_TOTAL_RUNNING -eq $VM_TOTAL ]; then
 echo &quot; - Todas las VMs estan ejecutandose&quot;
 return 10
 elif [ $VM_TOTAL_RUNNING -eq 0 ]; then
 echo &quot; - Ninguna VMs en ejecucion&quot;
 return 0
 elif [ $VM_TOTAL_RUNNING -ne $VM_TOTAL ]; then
 echo &quot; - Algunas VMs estan ejecutandose&quot;
 return 5
 fi
}

checkStatusVms(){
 if [ &quot;$1&quot; = &quot; &quot; ]; then
 return 10
 elif [ &quot;$1&quot; != &quot; &quot; ]; then
 ## VM_STATUS=`$SYS_SU -c &quot;$VBX_MNG showvminfo $1 |$SYS_GREP ^State |$SYS_AWK '{print $2}'&quot; $VBX_USR`
 VM_STATUS=`$SYS_SU $VBX_USR -c &quot;$VBX_MNG showvminfo \&quot;$1\&quot; |$SYS_GREP ^State |$SYS_TR -s ' ' ' '|$SYS_CUT -d ' ' -f 2&quot;`
 ### echo VMSTATUSSSSSS $VM_STATUS
 if [ &quot;$VM_STATUS&quot; = &quot;saved&quot; ]; then return 1
 elif [ &quot;$VM_STATUS&quot; = &quot;powered&quot; ]; then return 2
 elif [ &quot;$VM_STATUS&quot; = &quot;running&quot; ]; then return 3
 fi
 fi
}

startWindows(){
 for i in `seq 1 $VBX_WIN_TOTAL`; do
 NAMEL=&quot;VBX_WIN_NAME$i&quot;; NAMELL='eval &quot;echo \$$NAMEL&quot;'
 checkStatusVms &quot;`eval $NAMELL`&quot;
 STS=$?
 if [ $STS -eq 1 ] || [ $STS -eq 2 ]; then
 echo &quot; - Iniciando VM Windows: &quot; `eval $NAMELL`
 $SYS_SU $VBX_USR -c &quot;$VBX_MNG startvm \&quot;`eval $NAMELL`\&quot; -type headless &gt;&gt; ${VBX_LOG_START} 2&gt;&amp;1&quot;
 elif [ $STS -eq 3 ]; then
 echo &quot; - La VM `eval $NAMELL` ya esta ejecutandose&quot;
 fi
 done
}

stopWindows(){
 for i in `seq 1 $VBX_WIN_TOTAL`; do
 NAMEL=&quot;VBX_WIN_NAME$i&quot;; NAMELL='eval &quot;echo \$$NAMEL&quot;'
 NAMEU=&quot;VBX_WIN_USER$i&quot;; NAMEUU='eval &quot;echo \$$NAMEU&quot;'
 NAMEP=&quot;VBX_WIN_PASS$i&quot;; NAMEPP='eval &quot;echo \$$NAMEP&quot;'
 NAMEI=&quot;VBX_WIN_NUMIP$i&quot;; NAMEII='eval &quot;echo \$$NAMEI&quot;'
 checkStatusVms &quot;`eval $NAMELL`&quot;
 STS=$?
 if [ $STS -eq 2 ]; then
 echo &quot; - &quot;`eval $NAMELL`&quot; esta apagada&quot;; return 0
 elif [ $STS -eq 1 ]; then
 echo &quot; - &quot;`eval $NAMELL`&quot; esta guardada&quot;; return 0
 elif [ $STS -eq 3 ]; then
 echo -n &quot; - &quot;`eval $NAMELL`&quot; deteniendo ...&quot;
 ## $RPC_NET rpc SHUTDOWN -t 0 -C &quot;Apagado desde el servidor de maquinas vituales&quot; -f -I \&quot;`eval $NAMEII`\&quot; -U `eval $NAMEUU`%`eval $NAMEPP`
 $SYS_SU $VBX_USR -c &quot;$VBX_MNG controlvm \&quot;`eval $NAMELL`\&quot; acpipowerbutton &gt;&gt; ${VBX_LOG_STOP} 2&gt;&amp;1&quot;
 for j in `seq 1 $MAX_SEC`; do
 sleep 1; echo -n &quot;$j.&quot;
 done
 echo ''; return 1
 fi
 done
}

saveWindows(){
 for i in `seq 1 $VBX_WIN_TOTAL`; do
 NAMEL=&quot;VBX_WIN_NAME$i&quot;; NAMELL='eval &quot;echo \$$NAMEL&quot;'
 checkStatusVms &quot;`eval $NAMELL`&quot;
 STS=$?
 if [ $STS -eq 2 ] || [ $STS -eq 1 ]; then echo ''
 elif [ $STS -eq 3]; then
 echo &quot; - Salvando VM Windows: &quot; `eval $NAMELL`
 $SYS_SU $VBX_USR -c &quot;$VBX_MNG controlvm \&quot;`eval $NAMELL`\&quot; savestate &gt;&gt; ${VBX_LOG_SAVE} 2&gt;&amp;1&quot;
 fi
 done
}

startLinux(){
 for i in `seq 1 $VBX_LIN_TOTAL`; do
 NAMEL=&quot;VBX_LIN_NAME$i&quot;; NAMELL='eval &quot;echo \$$NAMEL&quot;'
 checkStatusVms &quot;`eval $NAMELL`&quot;
 STS=$?
 if [ $STS -eq 1 ] || [ $STS -eq 2 ]; then
 echo &quot; - Iniciando VM Linux: &quot; `eval $NAMELL`
 $SYS_SU $VBX_USR -c &quot;$VBX_MNG startvm \&quot;`eval $NAMELL`\&quot; -type headless &gt;&gt; ${VBX_LOG_START} 2&gt;&amp;1&quot;
 elif [ $STS -eq 3 ]; then
 echo &quot; - La VM Linux `eval $NAMELL` ya esta ejecutandose&quot;
 fi
 done
}

stopLinux(){
 for i in `seq 1 $VBX_LIN_TOTAL`; do
 NAMEL=&quot;VBX_LIN_NAME$i&quot;; NAMELL='eval &quot;echo \$$NAMEL&quot;'
 checkStatusVms &quot;`eval $NAMELL`&quot;
 STS=$?
 if [ $STS -eq 2 ]; then
 echo &quot; - &quot;`eval $NAMELL`&quot; esta apagada&quot;
 return 0
 elif [ $STS -eq 1 ]; then
 echo &quot; - &quot;`eval $NAMELL`&quot; esta guardada&quot;
 return 0
 elif [ $STS -eq 3 ]; then
 echo -n &quot; - &quot;`eval $NAMELL`&quot; deteniendo ...&quot;
 $SYS_SU $VBX_USR -c &quot;$VBX_MNG controlvm \&quot;`eval $NAMELL`\&quot; acpipowerbutton &gt;&gt; ${VBX_LOG_STOP} 2&gt;&amp;1&quot;
 for j in `seq 1 $MAX_SEC`; do
 sleep 1; echo -n &quot;$j.&quot;
 done
 echo ''; return 1
 fi
 done
}

saveLinux(){
 for i in `seq 1 $VBX_LIN_TOTAL`; do
 NAMEL=&quot;VBX_LIN_NAME$i&quot;; NAMELL='eval &quot;echo \$$NAMEL&quot;'
 checkStatusVms &quot;`eval $NAMELL`&quot;
 STS=$?
 if [ $STS -eq 2 ] || [ $STS -eq 1 ]; then echo ''
 elif [ $STS -eq 3]; then
 echo &quot; - Guardando VM Linux: &quot; `eval $NAMELL`
 $SYS_SU $VBX_USR -c &quot;$VBX_MNG controlvm &quot;`eval $NAMELL`&quot; savestate &gt;&gt; ${VBX_LOG_SAVE} 2&gt;&amp;1&quot;
 fi
 done
}

statusVm(){
 for i in `seq 1 $VBX_WIN_TOTAL`; do
 NAMEL=&quot;VBX_WIN_NAME$i&quot;; NAMELL='eval &quot;echo \$$NAMEL&quot;'
 checkStatusVms &quot;`eval $NAMELL`&quot;
 STS=$?
 if [ $STS -eq 1 ]; then
 echo &quot; - STATUS: &quot;`eval $NAMELL`&quot; esta guardada&quot;
 elif [ $STS -eq 2 ]; then
 echo &quot; - STATUS: &quot;`eval $NAMELL`&quot; esta apagada&quot;
 elif [ $STS -eq 3 ]; then
 echo &quot; - STATUS: &quot;`eval $NAMELL`&quot; esta ejecutandose&quot;
 fi
 done
 for i in `seq 1 $VBX_LIN_TOTAL`; do
 NAMEL=&quot;VBX_LIN_NAME$i&quot;; NAMELL='eval &quot;echo \$$NAMEL&quot;'
 checkStatusVms &quot;`eval $NAMELL`&quot;
 STS=$?
 if [ $STS -eq 1 ]; then
 echo &quot; - STATUS: &quot;`eval $NAMELL`&quot; esta guardada&quot;
 elif [ $STS -eq 2 ]; then
 echo &quot; - STATUS: &quot;`eval $NAMELL`&quot; esta apagada&quot;
 elif [ $STS -eq 3 ]; then
 echo &quot; - STATUS: &quot;`eval $NAMELL`&quot; esta ejecutandose&quot;
 fi
 done
 echo ''
}

setEnvVar
echo ''
echo '#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*'
echo '* Script de Arranque y Apagado de Maquinas Virtuales (VMs) #'
echo '#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*'
echo ''
case $1 in
 start)
 echo '*** Iniciando VMs, espere a que inicien los sistemas ***'
 startLinux
 startWindows
 ;;
 stop)
 echo '*** Deteniendo VMs, espere a que terminen de apagar los sistemas ***'
 stopLinux
 stopWindows
 ## si no se apago la VM se guarda su estado para proteccion del filesystem
 checkVmRunning
 STS=$?
 if [ $STS -ne 0 ]; then
 saveWindows
 saveLinux
 elif [ $STS -eq 0 ]; then echo ''; echo &quot; - Todas las VMs Apagadas&quot;; echo ''
 fi
 ;;
 status)
 statusVm
 ;;
 restart)
 $0 stop; $0 start
 ;;
 *)
 echo ''; echo &quot;Modo de Uso: $0 {start|stop|status|restart}&quot;; echo ''
 ;;
esac

###### NO MODIFICAR ###### NO MODIFICAR ###### NO MODIFICAR ####
</pre></p>
<p>Algunas cosas a mejorar a futuro son el tema del apagado con sistemas Windows, ya que lo hice por llamada <strong>rpc</strong> del ejecutable <strong>net</strong> del paquete de samba, pero no pude conseguir que funcione en todos los sistemas windows donde he probado, de todas formas  si quieren probarlo deben descomentar la linea numero 171 dentro de la función <strong>stopWindows</strong> y comentar la linea 172. De otra forma asi tal como esta por defecto en el caso de host Windows procederá a un apagado normal como si hubieramos pulsado el boton de apagado comun y corriente.</p>
<p>Casi me olvido, esa pequeñes de script va con licencia GPL asi que sientanse libres de modificarlo como quieran y adaptarlo a sus necesidades.</p>
<p>Dejo link de descarga mediafire: <a title="virtualbox-daemon-mcy.sh" href="http://www.mediafire.com/?4b8s692dhlgqc7p" target="_blank">http://www.mediafire.com/?4b8s692dhlgqc7p</a></p>
<p>Saludos a todos</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mcyanez.wordpress.com/895/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mcyanez.wordpress.com/895/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mcyanez.wordpress.com/895/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mcyanez.wordpress.com/895/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mcyanez.wordpress.com/895/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mcyanez.wordpress.com/895/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mcyanez.wordpress.com/895/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mcyanez.wordpress.com/895/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mcyanez.wordpress.com/895/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mcyanez.wordpress.com/895/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mcyanez.wordpress.com/895/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mcyanez.wordpress.com/895/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mcyanez.wordpress.com/895/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mcyanez.wordpress.com/895/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mcyanez.wordpress.com&amp;blog=12470900&amp;post=895&amp;subd=mcyanez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mcyanez.wordpress.com/2012/01/27/sysadmin-shell-script-para-inicio-de-maquinas-virtuales-de-virtualbox-en-modo-headless/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9726be182842fe6c6c1f043c8d9c7a8e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">rondamon002</media:title>
		</media:content>

		<media:content url="http://mcyanez.files.wordpress.com/2012/01/virtualbox.png?w=256" medium="image" />
	</item>
		<item>
		<title>ttyrec: Grabando sesiones en consola de texto</title>
		<link>http://mcyanez.wordpress.com/2012/01/13/ttyrec-grabando-sesiones-consola-de-texto/</link>
		<comments>http://mcyanez.wordpress.com/2012/01/13/ttyrec-grabando-sesiones-consola-de-texto/#comments</comments>
		<pubDate>Fri, 13 Jan 2012 12:23:35 +0000</pubDate>
		<dc:creator>mc.yanez</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Tips: Command Line]]></category>
		<category><![CDATA[CLI]]></category>
		<category><![CDATA[command line interface]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[playterm.org]]></category>
		<category><![CDATA[ttyrec]]></category>

		<guid isPermaLink="false">http://mcyanez.wordpress.com/?p=792</guid>
		<description><![CDATA[El pelado Angel es uno de esos  personajes  de caricatura pero que existen en la vida real, ademas es un tipo que a pesar de no ser informático y estar en otra carrera se ha dedicado mucho y desde hace años a aprender todo lo que pueda en el rubro informático, tal es así que al día de hoy ha pasado de [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mcyanez.wordpress.com&amp;blog=12470900&amp;post=792&amp;subd=mcyanez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" src="http://www.slax.org/modules/screenshots/3/3508.png" alt="" width="80" height="80" />El pelado Angel es uno de esos  personajes  de caricatura pero que existen en la vida real, ademas es un tipo que a pesar de no ser informático y estar en otra carrera se ha dedicado mucho y desde hace años a aprender todo lo que pueda en el rubro informático, tal es así que al día de hoy ha pasado de ser un usuario de tiempo completo de  Windows a usar Linux solamente sin siquiera  tener el sistema de las ventanitas  instalado en alguna partición de su pc, o al menos eso dice.</p>
<p>Entre uno de sus fanatismos, en camino a ser mejor usuario de Linux, tiene por buena costumbre grabar en vídeo todo proceso nuevo que este aprendiendo, y no le salgas con usar un konqueror, dolphin o algun otro gestor de archivos grafico, prefiere quedarse con la terminal de texto y trata de hacer todo lo que pueda allí. Para esta tarea se volvió  mas amigo de  <a href="http://recordmydesktop.sourceforge.net/">recordMyDesktop</a> que es una aplicación para hacer screencast de todo lo que hagas en tu desktop linux o seleccionar algún área de pantalla en particular y grabarla.</p>
<p>El inconveniente de <strong>recordMyDesktop</strong> sucede cuando se necesita grabar algun procedimiento de CLI (Interfaz de Linea de Comandos, del ingles <em>Command Line Interface</em>) fuera del entorno grafico, tal como  querer documentar una serie de largos comandos.</p>
<p>Para salir del paso en esas circunstancias encontre ttyrec, una aplicación que graba sesiones de terminal de texto y no es necesario tener activa una sesion de X para poder hacerlo.</p>
<p>Los debianitas lo instalamos simple, con:</p>
<pre># apt-get install ttyrec</pre>
<p>Para iniciar la grabación debemos  ejecutar el siguiente comando en consola de texto:</p>
<pre>$ ttyrec</pre>
<p>y luego trabajar normalmente en la sesion de terminal realizando toda la serie de pasos que deseemos documentar,  para finalizar la grabacion hara falta púlsar la combinacion de teclas CTRL+C</p>
<p>Por defecto las sesiones se guardan en el archivo $HOME/ttyrecord sino se especifica un archivo destino con el parametro -a.</p>
<p>Luego para reproducir y visualizar la sesion guardada debo usar el comando:</p>
<pre>$ ttyplay $HOME/ttyrecord</pre>
<p>Con las teclas + y &#8211; se puede ir controlando la velocidad de reproducción.</p>
<p><strong>Publicando nuestras sesiones de consola en la web</strong></p>
<p>Puede suceder que tengas la necesidad de compartir  con alguien tu sesion de CLI guardada con ttyrec, para ello se creo el sitio <a title="PlayTerm" href="http://www.playterm.org" target="_blank">playterm.org</a>.</p>
<p>Alli se pueden subir los archivos generados con ttyrec los cuales quedaran accesibles a travez de un reproductor web y tendran una url asociada .</p>
<p><strong>Auditoria</strong></p>
<p>Recientemente he leido de otra aplicacion de ttyrec, se trata de usarlo como herramienta de auditoria para generar una grabación de todo lo que ejecute un usuario al conectarse a una terminal, no parece ser muy complicado hacerlo, lo voy a probar, ya estaré volviendo a ttyrec.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mcyanez.wordpress.com/792/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mcyanez.wordpress.com/792/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mcyanez.wordpress.com/792/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mcyanez.wordpress.com/792/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mcyanez.wordpress.com/792/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mcyanez.wordpress.com/792/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mcyanez.wordpress.com/792/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mcyanez.wordpress.com/792/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mcyanez.wordpress.com/792/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mcyanez.wordpress.com/792/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mcyanez.wordpress.com/792/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mcyanez.wordpress.com/792/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mcyanez.wordpress.com/792/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mcyanez.wordpress.com/792/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mcyanez.wordpress.com&amp;blog=12470900&amp;post=792&amp;subd=mcyanez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mcyanez.wordpress.com/2012/01/13/ttyrec-grabando-sesiones-consola-de-texto/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9726be182842fe6c6c1f043c8d9c7a8e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">rondamon002</media:title>
		</media:content>

		<media:content url="http://www.slax.org/modules/screenshots/3/3508.png" medium="image" />
	</item>
		<item>
		<title>Intypedia :: Lesson 12. Wi-Fi networks security</title>
		<link>http://mcyanez.wordpress.com/2012/01/12/intypedia-lesson-12-wi-fi-networks-security/</link>
		<comments>http://mcyanez.wordpress.com/2012/01/12/intypedia-lesson-12-wi-fi-networks-security/#comments</comments>
		<pubDate>Thu, 12 Jan 2012 16:09:11 +0000</pubDate>
		<dc:creator>mc.yanez</dc:creator>
				<category><![CDATA[Networking]]></category>
		<category><![CDATA[Seguridad Informatica]]></category>
		<category><![CDATA[hugo krawczyk]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Seguridad Informática]]></category>
		<category><![CDATA[WI-FI]]></category>
		<category><![CDATA[Wireless]]></category>

		<guid isPermaLink="false">http://mcyanez.wordpress.com/?p=840</guid>
		<description><![CDATA[Ya publique antes uno de los excelentes videotutoriales y contenidos del  proyecto Intypedia, la enciclopedia online sobre seguridad de la información. Ahora aprovecho para mencionar que este proyecto se encuentra en búsqueda de patrocinadores para el lanzamiento de su segunda temporada. Si ud. está interesado en patrocinar todos o algunos vídeos de esta colección, por favor póngase en contacto con [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mcyanez.wordpress.com&amp;blog=12470900&amp;post=840&amp;subd=mcyanez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Ya publique antes uno de los excelentes videotutoriales y contenidos del  proyecto <a href="http://www.intypedia.com/">Intypedia</a>, la enciclopedia online sobre seguridad de la información.</p>
<p>Ahora aprovecho para mencionar que este proyecto se encuentra en búsqueda de patrocinadores para el lanzamiento de su segunda temporada. Si ud. está interesado en patrocinar todos o algunos vídeos de esta colección, por favor póngase en contacto con sus autores via el correo:</p>
<h4 style="text-align:center;"><span style="color:#ffcc00;"><strong><a href="mailto:info@intypedia.com" target="_blank">info (ARROBA) intypedia.com</a></strong></span></h4>
<p>En caso de no aparecer sponsor para 2012, las puertas de la biblioteca de Intypedia deberán cerrarse a nuevos vídeos a partir del mes de marzo, cuando se publique la Lección 14 sobre Funciones Unidireccionales y Hash, del autor Dr. Hugo Krawczyk de IBM USA.</p>
<p>Me parece  muy importante que podamos colaborar con este proyecto, es grandiosa la cantidad de contenidos que han generado con la didactica particular que los caracteriza,  cada uno de estos videos esta destinados a formar, concientizar y a la vez entrenar al usuario sobre la importancia de su información, lo fácil que puede ser vulnerada y que acciones o mecanismos puede emplear para prevenir esto.</p>
<p>Proyectando a futuro creo que Intypedia se va a convertir en LA enciclopedia sobre seguridad de la información y una fuente inagotable de recursos valiosos siempre y cuando cuente con nuestro apoyo.</p>
<p>Ahora si, a continuacion el ultimo video que ha salido de Intipedya:  Lección 12 Seguridad en redes Wi-Fi</p>
<span style="text-align:center; display: block;"><a href="http://mcyanez.wordpress.com/2012/01/12/intypedia-lesson-12-wi-fi-networks-security/"><img src="http://img.youtube.com/vi/rhJAJ1TdNyg/2.jpg" alt="" /></a></span>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mcyanez.wordpress.com/840/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mcyanez.wordpress.com/840/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mcyanez.wordpress.com/840/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mcyanez.wordpress.com/840/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mcyanez.wordpress.com/840/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mcyanez.wordpress.com/840/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mcyanez.wordpress.com/840/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mcyanez.wordpress.com/840/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mcyanez.wordpress.com/840/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mcyanez.wordpress.com/840/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mcyanez.wordpress.com/840/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mcyanez.wordpress.com/840/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mcyanez.wordpress.com/840/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mcyanez.wordpress.com/840/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mcyanez.wordpress.com&amp;blog=12470900&amp;post=840&amp;subd=mcyanez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mcyanez.wordpress.com/2012/01/12/intypedia-lesson-12-wi-fi-networks-security/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9726be182842fe6c6c1f043c8d9c7a8e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">rondamon002</media:title>
		</media:content>
	</item>
		<item>
		<title>Password por defecto de Routers CISCO</title>
		<link>http://mcyanez.wordpress.com/2011/12/28/password-por-defecto-de-routers-cisco/</link>
		<comments>http://mcyanez.wordpress.com/2011/12/28/password-por-defecto-de-routers-cisco/#comments</comments>
		<pubDate>Wed, 28 Dec 2011 18:30:57 +0000</pubDate>
		<dc:creator>mc.yanez</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[Cisco]]></category>
		<category><![CDATA[Default]]></category>
		<category><![CDATA[Password]]></category>

		<guid isPermaLink="false">http://mcyanez.wordpress.com/?p=833</guid>
		<description><![CDATA[Nunca sabes cuando vas a necesitar esta lista, en fin aqui va , mi ayuda memoria a no olvidarla: Model : CISCO - 1 Protocol : TELNET Username : admin Password : admin Model : Cisco - 1200 Protocol : Username : Cisco Password : Cisco Model : Cisco - 1300 Protocol : Username : [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mcyanez.wordpress.com&amp;blog=12470900&amp;post=833&amp;subd=mcyanez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Nunca sabes cuando vas a necesitar esta lista, en fin aqui va , mi ayuda memoria a no olvidarla:</p>
<pre style="margin-top:0;margin-bottom:0;color:#333333;font-family:'Courier New', Courier, monospace;font-size:.9em;line-height:1em;text-align:left;background-color:#ffffff;padding:0;">Model		:	CISCO - 1
Protocol	:	TELNET
Username	:	admin
Password	:	admin

Model		:	Cisco - 1200
Protocol	:
Username	:	Cisco
Password	:	Cisco

Model		:	Cisco - 1300
Protocol	:
Username	:	Cisco
Password	:	Cisco

Model		:	Cisco - 1400
Protocol	:
Username	:	[none]
Password	:	Cisco</pre>
<pre style="margin-top:0;margin-bottom:0;color:#333333;font-family:'Courier New', Courier, monospace;font-size:.9em;line-height:1em;text-align:left;background-color:#ffffff;padding:0;"></pre>
<p><span id="more-833"></span></p>
<pre style="margin-top:0;margin-bottom:0;color:#333333;font-family:'Courier New', Courier, monospace;font-size:.9em;line-height:1em;text-align:left;background-color:#ffffff;padding:0;">
Model		:	CISCO - 2600
Protocol	:	TELNET
Username	:	Administrator
Password	:	admin

Model		:	CISCO - 3600
Protocol	:	TELNET
Username	:	Administrator
Password	:	admin

Model		: 	CISCO - 3700
Protocol	:	TELNET
Username	:	cisco
Password	:	cisco

Model		:	CISCO ATA-186 (VONAGE)
Protocol	:	HTTP
Username	:	[blank]
Password	:	[blank]

Model		:	CISCO - AIRONET
Protocol	:	MULTI
Username	:	[none]
Password	:	_Cisco

Model		:	CISCO - AIRONET
Protocol	:	MULTI
Username	:	Cisco
Password	:	Cisco

Model		:	CISCO - AIRONET 1200
Protocol	:	HTTP
Username	:	root
Password	:	Cisco

Model		:	CISCO AP1200
Protocol	:	MULTI
Username	:	Cisco
Password	:	Cisco

Model		:	CISCO - CISO AIRONET 1100 SERIES
Protocol	:	HTTP
Username	:	[none]
Password	:	Cisco

Model		:	CISCO - CACHE ENGINE
Protocol	:	CONSOLE
Username	:	admin
Password	:	diamond

Model		:	CISCO - CATALYST 4000/5000/6000
Protocol	:	SNMP
Username	:	[none]
Password	:	public/private/secret	 	

Model		:	CISCO - CISCOWORKS 2000
Protocol	:	-
Username	:	guest
Password	:	[none]

Model		:	CISCO - CISCOWORKS 2000
Protocol	:	-
Username	:	admin
Password	:	cisco 	

Model		:	CISCO -	CNR
Protocol	:	CNR GUI
Username	:	admin
Password	:	changeme

Model		:	CISCO - CONFIGMAKER
Protocol	:
Username	:	cmaker
Password	:	cmaker

Model		:	CISCO - CONTENT ENGINE
Protocol	:	TELNET
Username	:	admin
Password	:	default

Model		:	CISCO - CVA 122
Protocol	:	TELNET
Username	:	admin
Password	:	admin

Model		:	 Cisco - CS-MARS
Protocol	:
Username	:	pnadmin
Password	:	pnadmin

Model		:	CISCO - HSE
Protocol	:	MULTI
Username	:	hsa
Password	:	hsadb 

Model		:	CISCO - HSE
Protocol	:	MULTI
Username	:	root
Password	:	blender	

Model		:	Cisco - IDS
Protocol	:	MULTI
Username	:	root
Password	:	attack

Model		:	Cisco - IDS
Protocol	:	MULTI
Username	:	ripeop
Password	:	[no password]

Model		:	Cisco - IDS
Protocol	:	MULTI
Username	:	cisco
Password	:	cisco

Model		:	Cisco - IDS
Protocol	:	MULTI
Username	:	enable
Password	:	cisco

Model		:	Cisco - IDS
Protocol	:	MULTI
Username	:	enable
Password	:	cc

Model		:	Cisco - IOS 2600 series
Protocol	:
Username	:	Multi
Password	:	c

Model		:	CISCO - PIX FIREWALL
Protocol	:	TELNET
Username	:	[none]
Password	:	cisco

Model		:	CISCO - NETRANGER/SECURE IDS
Protocol	:	MULTI
Username	:	netrangr
Password	:	attack

Model		:	CISCO - NETRANGER/SECURE IDS
Protocol	:	MULTI
Username	:	root
Password	:	attack

Model		:	CISCO -	VPN CONCENTRATOR 3000 SERIES
Protocol	:	MULTI
Username	:	admin
Password	:	admin

Model		:	CISCO - WLSE
Protocol	:	MULTI
Username	:	root
Password	:	blender

Model		:	CISCO - WLSE
Protocol	:	MULTI
Username	:	wlse
Password	:	wlsedb</pre>
<p>Fuente:  <a href="http://rancidtaste.hubpages.com/hub/CISCO-Router-Password-Default-Password-for-CISCO-Router">CISCO Router Password: Default Password for CISCO Router</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mcyanez.wordpress.com/833/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mcyanez.wordpress.com/833/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mcyanez.wordpress.com/833/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mcyanez.wordpress.com/833/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mcyanez.wordpress.com/833/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mcyanez.wordpress.com/833/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mcyanez.wordpress.com/833/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mcyanez.wordpress.com/833/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mcyanez.wordpress.com/833/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mcyanez.wordpress.com/833/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mcyanez.wordpress.com/833/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mcyanez.wordpress.com/833/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mcyanez.wordpress.com/833/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mcyanez.wordpress.com/833/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mcyanez.wordpress.com&amp;blog=12470900&amp;post=833&amp;subd=mcyanez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mcyanez.wordpress.com/2011/12/28/password-por-defecto-de-routers-cisco/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9726be182842fe6c6c1f043c8d9c7a8e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">rondamon002</media:title>
		</media:content>
	</item>
		<item>
		<title>Tips :: NetBeans y su apariencia GTK</title>
		<link>http://mcyanez.wordpress.com/2011/11/17/tips-netbeans-y-su-apariencia-gtk/</link>
		<comments>http://mcyanez.wordpress.com/2011/11/17/tips-netbeans-y-su-apariencia-gtk/#comments</comments>
		<pubDate>Thu, 17 Nov 2011 15:43:42 +0000</pubDate>
		<dc:creator>mc.yanez</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Otras yerbas]]></category>
		<category><![CDATA[GTK]]></category>
		<category><![CDATA[Netbeans]]></category>
		<category><![CDATA[Xfce]]></category>

		<guid isPermaLink="false">http://mcyanez.wordpress.com/?p=770</guid>
		<description><![CDATA[Casi en todos mis desktops linux uso XFCE como gestor de ventanas, es bastante completo, liviano y esta desarrollado en GTK, las mismas librerias que GNOME. No es de los mejores, pero para mi si es mejor que usar las ultimas versiones de Gnome o Kde. También y por cuestiones laborales recientemente he estado trabajando mucho con [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mcyanez.wordpress.com&amp;blog=12470900&amp;post=770&amp;subd=mcyanez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Casi en todos mis desktops linux uso <a href="http://www.xfce.org/?lang=es">XFCE</a> como gestor de ventanas, es bastante completo, liviano y esta desarrollado en <a href="http://www.gtk.org/">GTK</a>, las mismas librerias que <a href="http://www.gnome.org/">GNOME</a>. No es de los mejores, pero para mi si es mejor que usar las ultimas versiones de Gnome o Kde.</p>
<p>También y por cuestiones laborales recientemente he estado trabajando mucho con <a href="http://netbeans.org/">Netbeans</a>, un IDE de desarrollo bastante completo escrito en Java, con fines de realizar testing y documentación de unos proyectos de software. Un detalle que no me ha gustado mucho es como luce la interfaz de netbeans ya que no se integra con el tema que tengo activo en mi  desktop. La interfaz luce con los colores estandar , algo como esto:</p>
<p style="text-align:center;"><a href="http://mcyanez.files.wordpress.com/2011/11/netbeans-6-9-1-singtk.png" target="_blank"><img class="size-medium wp-image-779 aligncenter" title="Netbeans-6.9.1-sinGTK" src="http://mcyanez.files.wordpress.com/2011/11/netbeans-6-9-1-singtk.png?w=300&#038;h=177" alt="Netbeans-6.9.1-sinGTK" width="300" height="177" /></a></p>
<p>La verdad es que mi tema de escritorio es de los de colores oscuros y al menos es mas relajante a mis ojos, asi que bueno, aqui va como poner tu Netbeans acorde a tu tema GTK, es bastante simple.</p>
<p>Buscamos la ruta donde se almacenan los archivos de configuracion de netbeans, en mi caso ya que lo instale como usuario regular estan ubicadas en mi $HOME.</p>
<p>Edito el archivo netbeans.conf:</p>
<pre>$ mcedit $HOME/bin/netbeans-6.9.1/etc/netbeans.conf</pre>
<p>y localizo la linea que contenga la variable <strong>netbeans_default_options</strong>, en mi caso luce asi:</p>
<pre>netbeans_default_options="-J-client -J-Xss2m -J-Xms32m -J-XX:PermSize=32m -J-XX:MaxPermSize=200m -J-Dapple.laf.useScreenMenuBar=true -J-Dapple.awt.graphics.UseQuartz=true -J-Dsun.java2d.noddraw=true"</pre>
<p>y agrego al final a siguiente cadena:</p>
<pre>--laf com.sun.java.swing.plaf.gtk.GTKLookAndFeel</pre>
<p>y listo, guardo cambios y abro de nuevo netbeans, en mi caso quedo algo asi:</p>
<p style="text-align:center;"><a href="http://mcyanez.files.wordpress.com/2011/11/netbeans-6-9-1-gtklooks.png" target="_blank"><img class="size-medium wp-image-781 aligncenter" title="Netbeans-6.9.1-gtklooks" src="http://mcyanez.files.wordpress.com/2011/11/netbeans-6-9-1-gtklooks.png?w=300&#038;h=177" alt="" width="300" height="177" /></a></p>
<p>Saludos</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mcyanez.wordpress.com/770/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mcyanez.wordpress.com/770/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mcyanez.wordpress.com/770/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mcyanez.wordpress.com/770/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mcyanez.wordpress.com/770/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mcyanez.wordpress.com/770/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mcyanez.wordpress.com/770/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mcyanez.wordpress.com/770/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mcyanez.wordpress.com/770/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mcyanez.wordpress.com/770/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mcyanez.wordpress.com/770/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mcyanez.wordpress.com/770/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mcyanez.wordpress.com/770/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mcyanez.wordpress.com/770/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mcyanez.wordpress.com&amp;blog=12470900&amp;post=770&amp;subd=mcyanez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mcyanez.wordpress.com/2011/11/17/tips-netbeans-y-su-apariencia-gtk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9726be182842fe6c6c1f043c8d9c7a8e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">rondamon002</media:title>
		</media:content>

		<media:content url="http://mcyanez.files.wordpress.com/2011/11/netbeans-6-9-1-singtk.png?w=300" medium="image">
			<media:title type="html">Netbeans-6.9.1-sinGTK</media:title>
		</media:content>

		<media:content url="http://mcyanez.files.wordpress.com/2011/11/netbeans-6-9-1-gtklooks.png?w=300" medium="image">
			<media:title type="html">Netbeans-6.9.1-gtklooks</media:title>
		</media:content>
	</item>
		<item>
		<title>Info :: Proyecto Intypedia</title>
		<link>http://mcyanez.wordpress.com/2011/11/17/info-proyecto-intypedia/</link>
		<comments>http://mcyanez.wordpress.com/2011/11/17/info-proyecto-intypedia/#comments</comments>
		<pubDate>Thu, 17 Nov 2011 14:18:07 +0000</pubDate>
		<dc:creator>mc.yanez</dc:creator>
				<category><![CDATA[Seguridad Informatica]]></category>
		<category><![CDATA[Análisis]]></category>
		<category><![CDATA[Gestión de Riesgos]]></category>
		<category><![CDATA[Seguridad Informática]]></category>
		<category><![CDATA[Videotutoriales]]></category>

		<guid isPermaLink="false">http://mcyanez.wordpress.com/?p=758</guid>
		<description><![CDATA[El proyecto IntyPedia es una iniciativa española  que se propone armar una enciclopedia online sobre la seguridad de la información, donde destaca que los contenidos se publican en formato de videos instructivos muy didácticos y claros  donde se tratan temáticas diversas relacionadas a la seguridad informática, como por ejemplo: fundamentos, historia de la criptografía, los sistemas de cifra actuales, autenticación y [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mcyanez.wordpress.com&amp;blog=12470900&amp;post=758&amp;subd=mcyanez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" title="intypedia" src="http://www.criptored.upm.es/intypedia/img/logo.png" alt="intypedia" width="245" height="68" />El proyecto <a href="http://www.intypedia.com/?lang=es" target="_blank">IntyPedia</a> es una iniciativa española  que se propone armar una enciclopedia online sobre la seguridad de la información, donde destaca que los contenidos se publican en formato de videos instructivos muy didácticos y claros  donde se tratan temáticas diversas relacionadas a la seguridad informática, como por ejemplo:</p>
<ul>
<li>fundamentos,</li>
<li>historia de la criptografía,</li>
<li>los sistemas de cifra actuales,</li>
<li>autenticación y firma digital,</li>
<li>la seguridad en redes e Internet,</li>
<li>malware,</li>
<li>sistemas de gestión</li>
<li>normativas internacionales&#8230;</li>
</ul>
<p>Los contenidos son realizados por expertos en la tematica correspondiente y ademas se complementan por documentacion y ejercicios en formato PDF .</p>
<p>El ultimo video que salio el dia 17 /11/2011 es sobre Análisis y Gestion de Riesgos, a continuacion:</p>
<span style="text-align:center; display: block;"><a href="http://mcyanez.wordpress.com/2011/11/17/info-proyecto-intypedia/"><img src="http://img.youtube.com/vi/EgiYIIJ8WnU/2.jpg" alt="" /></a></span>
<p>Web muy recomendable.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mcyanez.wordpress.com/758/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mcyanez.wordpress.com/758/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mcyanez.wordpress.com/758/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mcyanez.wordpress.com/758/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mcyanez.wordpress.com/758/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mcyanez.wordpress.com/758/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mcyanez.wordpress.com/758/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mcyanez.wordpress.com/758/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mcyanez.wordpress.com/758/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mcyanez.wordpress.com/758/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mcyanez.wordpress.com/758/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mcyanez.wordpress.com/758/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mcyanez.wordpress.com/758/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mcyanez.wordpress.com/758/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mcyanez.wordpress.com&amp;blog=12470900&amp;post=758&amp;subd=mcyanez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mcyanez.wordpress.com/2011/11/17/info-proyecto-intypedia/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9726be182842fe6c6c1f043c8d9c7a8e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">rondamon002</media:title>
		</media:content>

		<media:content url="http://www.criptored.upm.es/intypedia/img/logo.png" medium="image">
			<media:title type="html">intypedia</media:title>
		</media:content>
	</item>
		<item>
		<title>Un día como hoy hace 1 año&#8230;</title>
		<link>http://mcyanez.wordpress.com/2011/10/25/un-dia-como-hoy-hace-1-ano/</link>
		<comments>http://mcyanez.wordpress.com/2011/10/25/un-dia-como-hoy-hace-1-ano/#comments</comments>
		<pubDate>Tue, 25 Oct 2011 16:29:51 +0000</pubDate>
		<dc:creator>mc.yanez</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Abuela]]></category>
		<category><![CDATA[Filomena Lopez]]></category>

		<guid isPermaLink="false">http://mcyanez.wordpress.com/?p=709</guid>
		<description><![CDATA[Un 25 de octubre del año pasado y a sus 84 años fallecía mi querida abuela y segunda mamá Filomena Lopez! Descansa en paz y vive por siempre en la memoria de tus hijas, nietos, bisnietos  y demás familia.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mcyanez.wordpress.com&amp;blog=12470900&amp;post=709&amp;subd=mcyanez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Un 25 de octubre del año pasado y a sus 84 años fallecía mi querida abuela y segunda mamá Filomena Lopez!</p>
<div id="attachment_710" class="wp-caption aligncenter" style="width: 246px"><a href="http://mcyanez.files.wordpress.com/2011/10/foto-editada-abuelita-filomena.jpg"><img class="size-medium wp-image-710" title="Foto Abuelita FIlomena" src="http://mcyanez.files.wordpress.com/2011/10/foto-editada-abuelita-filomena.jpg?w=236&#038;h=300" alt="Abuela" width="236" height="300" /></a><p class="wp-caption-text">Filomena Lopez - 22-09-26 / 25-10-2010</p></div>
<p>Descansa en paz y vive por siempre en la memoria de tus hijas, nietos, bisnietos  y demás familia.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mcyanez.wordpress.com/709/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mcyanez.wordpress.com/709/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mcyanez.wordpress.com/709/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mcyanez.wordpress.com/709/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mcyanez.wordpress.com/709/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mcyanez.wordpress.com/709/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mcyanez.wordpress.com/709/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mcyanez.wordpress.com/709/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mcyanez.wordpress.com/709/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mcyanez.wordpress.com/709/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mcyanez.wordpress.com/709/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mcyanez.wordpress.com/709/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mcyanez.wordpress.com/709/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mcyanez.wordpress.com/709/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mcyanez.wordpress.com&amp;blog=12470900&amp;post=709&amp;subd=mcyanez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mcyanez.wordpress.com/2011/10/25/un-dia-como-hoy-hace-1-ano/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9726be182842fe6c6c1f043c8d9c7a8e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">rondamon002</media:title>
		</media:content>

		<media:content url="http://mcyanez.files.wordpress.com/2011/10/foto-editada-abuelita-filomena.jpg?w=236" medium="image">
			<media:title type="html">Foto Abuelita FIlomena</media:title>
		</media:content>
	</item>
		<item>
		<title>Feliz dia del Programador / Happy Programmer Day</title>
		<link>http://mcyanez.wordpress.com/2011/09/13/feliz-dia-del-programador-happy-programmer-day/</link>
		<comments>http://mcyanez.wordpress.com/2011/09/13/feliz-dia-del-programador-happy-programmer-day/#comments</comments>
		<pubDate>Tue, 13 Sep 2011 20:16:12 +0000</pubDate>
		<dc:creator>mc.yanez</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://mcyanez.wordpress.com/?p=690</guid>
		<description><![CDATA[Hoy 13 de septiembre de 2011 , día numero 256 de este año,  se festeja el día del programador a nivel mundial, mis felicitaciones a todos ellos/ellas ! Si se preguntan porque el día 256 ? y bue, es la cantidad máxima de combinaciones que pueden obtenerse al elevar a la octava potencia al numero 2 (2^8), ademas es un [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mcyanez.wordpress.com&amp;blog=12470900&amp;post=690&amp;subd=mcyanez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" style="text-align:0;" src="http://www.programmerday.info/images/PD_Logo_Spanish.png" alt="" width="235" height="118" /></p>
<p>Hoy 13 de septiembre de 2011 , día numero 256 de este año,  se festeja el día del programador a nivel mundial, mis felicitaciones a todos ellos/ellas !</p>
<p>Si se preguntan porque el día 256 ? y bue, es la cantidad máxima de combinaciones que pueden obtenerse al elevar a la octava potencia al numero 2 (2^8), ademas es un numero con el cual los informáticos nos encontramos muy acostumbrados a encontrarnos en nuestra jungla diaria.</p>
<p>Al parecer y por lo que leo en Rusia este día es un día festivo oficial (que raro , ya parezco hasta argentino  al estar pensando en fiestas, asuetos y feriados), pero visto la cantidad de crecimiento que ha tenido la industria en el sector no estaría mal considerarlo a futuro en nuestro pais.</p>
<p>Bue&#8230;  y que seria del programador y su existencia si no fuera por un poco de humor:</p>
<p style="text-align:center;"><img class="aligncenter" title="Feliz día del Programador" src="http://bitzor.files.wordpress.com/2010/09/usuarios-y-programadores.jpg?w=400&#038;h=353" alt="Feliz día del Programador" width="400" height="353" /></p>
<p style="text-align:center;"><img class="aligncenter" src="http://25.media.tumblr.com/tumblr_lkbum8eNNi1qau32po1_500.jpg" alt="" width="397" height="560" /></p>
<p style="text-align:center;"><img class="aligncenter" src="http://mcyanez.files.wordpress.com/2011/09/programador.jpg?w=532&#038;h=382" alt="" width="532" height="382" /></p>
<p style="text-align:left;">Enlaces Externos:</p>
<ul>
<li><a href="http://www.programmerday.info/">http://www.programmerday.info/</a></li>
<li><a href="http://en.wikipedia.org/wiki/Programmers'_Day">http://en.wikipedia.org/wiki/Programmers&#8217;_Day</a></li>
<li><a href="http://es.wikipedia.org/wiki/D%C3%ADa_de_los_Programadores">http://es.wikipedia.org/wiki/D%C3%ADa_de_los_Programadores</a></li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mcyanez.wordpress.com/690/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mcyanez.wordpress.com/690/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mcyanez.wordpress.com/690/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mcyanez.wordpress.com/690/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mcyanez.wordpress.com/690/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mcyanez.wordpress.com/690/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mcyanez.wordpress.com/690/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mcyanez.wordpress.com/690/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mcyanez.wordpress.com/690/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mcyanez.wordpress.com/690/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mcyanez.wordpress.com/690/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mcyanez.wordpress.com/690/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mcyanez.wordpress.com/690/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mcyanez.wordpress.com/690/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mcyanez.wordpress.com&amp;blog=12470900&amp;post=690&amp;subd=mcyanez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mcyanez.wordpress.com/2011/09/13/feliz-dia-del-programador-happy-programmer-day/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9726be182842fe6c6c1f043c8d9c7a8e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">rondamon002</media:title>
		</media:content>

		<media:content url="http://www.programmerday.info/images/PD_Logo_Spanish.png" medium="image" />

		<media:content url="http://bitzor.files.wordpress.com/2010/09/usuarios-y-programadores.jpg" medium="image">
			<media:title type="html">Feliz día del Programador</media:title>
		</media:content>

		<media:content url="http://25.media.tumblr.com/tumblr_lkbum8eNNi1qau32po1_500.jpg" medium="image" />

		<media:content url="http://mcyanez.files.wordpress.com/2011/09/programador.jpg?w=300" medium="image" />
	</item>
		<item>
		<title>Trac + commit ticket updater + apache2  + subversion</title>
		<link>http://mcyanez.wordpress.com/2011/07/21/trac-commit-ticket-updater-apache2-subversion/</link>
		<comments>http://mcyanez.wordpress.com/2011/07/21/trac-commit-ticket-updater-apache2-subversion/#comments</comments>
		<pubDate>Thu, 21 Jul 2011 17:04:48 +0000</pubDate>
		<dc:creator>mc.yanez</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[SysAdmin]]></category>
		<category><![CDATA[apache 2]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Subversion]]></category>
		<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[Unix]]></category>

		<guid isPermaLink="false">http://mcyanez.wordpress.com/?p=465</guid>
		<description><![CDATA[Introducción El uso de sistemas de control de versiones en proyectos de desarrollo de software permite principalmente a los desarrolladores trabajar en forma rápida, coordinada y a la vez algo despreocupada, pues les brinda muchas posibilidades de gestión de los archivos versionados.  Son herramientas esenciales en todo proyecto de software y hoy por hoy existe una amplia [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mcyanez.wordpress.com&amp;blog=12470900&amp;post=465&amp;subd=mcyanez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h3><img class="alignleft" src="http://cipherdyne.org/images/trac_logo.png" alt="" width="236" height="73" />Introducción</h3>
<p>El uso de <a title="WIKI: Control de versiones" href="http://es.wikipedia.org/wiki/Control_de_versiones" target="_blank">sistemas de control de versiones</a> en proyectos de desarrollo de software permite principalmente a los desarrolladores trabajar en forma rápida, coordinada y a la vez algo despreocupada, pues les brinda muchas posibilidades de gestión de los archivos versionados.  Son herramientas esenciales en todo proyecto de software y hoy por hoy existe una amplia variedad disponibles para su elección, <a href="http://subversion.tigris.org/" target="_blank">subversion</a>, <a href="http://git-scm.com/" target="_blank">git</a>, <a href="http://bazaar.canonical.com/en/">bazaar</a> y otras por mencionar solo algunas alternativas libres.  Cual de ellas usar sera algo totalmente dependiente de nuestras necesidades especificas post análisis de las ventajas y desventajas provistas por cada una.  Otro componente muy necesario durante la etapa de madurado de un proyecto de software son las herramientas conocidas como <a href="http://es.wikipedia.org/wiki/Sistema_de_seguimiento_de_errores" target="_blank">sistemas de seguimiento/traceo  de errores/incidencias</a>; estas permiten a los desarrolladores/testers reportar/documentar  los distintos tipos de problemas/errores que se vayan descubriendo en el sistema, asi es que se generan reportes de incidencias o tickets, los que normalmente tienen asociados valores comunes tales como: una prioridad, un encargado, detalle del tipo de error, archivos adjuntos que brinden mas datos al reporte, un estado del reporte (incidencia abierta, asignada, cerrada, corregida, o algún estado personalizado, solo por decir algunas).</p>
<p><strong><a title="TRAC Homepage" href="http://trac.edgewall.org/">trac</a> </strong>es una herramienta que combina un grupo funcionalidades bastante útiles que son un sistema de reporte de incidencias (o issues como lo llaman sus creadores), una wiki para generar en forma colaborativa la documentación, una visualización del avance del desarrollo por linea de tiempo,  seguimiento del avance del proyecto por hitos/metas y una excelente combinación con subversion. <strong>trac</strong> esta desarrollada en lenguaje python y es distribuida con licencia GNU/GPL.</p>
<p>Al finalizar se tendrá un servidor de subversion funcionando via protocolo http,  junto a trac como gestor de incidencias, wiki , etc&#8230; ,  también voy a configurar el repositorio svn para permitir gestionar los estados de los tickets de trac desde los commits realizados via subversion.  Esta implementacion la realice en un sistema debian linux, con una versión de trac 0.11 (la actual es la 0.12,  esta versión trae mejoras en particular la actualización de tickets vía commits varia un poco  respecto de la 0.11.ya escribiré sobre ella mas adelante).</p>
<h3>1. Empecemos con Subversion (svn)</h3>
<p>Bueno, para empezar no nos olvidemos que lo principal es contar con un repositorio de subversion donde alojar nuestro proyecto de software. Asi que manos a la obra:</p>
<h3>Crear un repositorio svn</h3>
<p>Paquetes a instalar:</p>
<pre># apt-get install subversion</pre>
<p>El repositorio va a estar ubicado en el path /ruta/svn y es importante que esa ruta este accesible por el usuario/grupo de apache. Ahora si,  creo el repositorio subversion:</p>
<pre># svadmin create /ruta/svn/repositorio-proyecto1</pre>
<p>y realizo la importación inicial de  proyecto1:</p>
<pre># svn import /home/sources/proyecto1 file:///ruta/svn/repositorio-proyecto1</pre>
<p>Donde en /home/sources/proyecto1 tengo la estructura del fuente del proyecto que quiero versionar, el cuarto parámetro del comando indica el repositorio donde se va a subir este código.  Es importante ejecutar este comando como usuario root. Luego se debe asignar al repositorio el usuario/grupo con el cual se esta ejecutando el servidor web Apache2, en el caso de sistemas basados en debian este es www-data.</p>
<pre># chown www-data: -R /ruta/svn/repositorio-proyecto1</pre>
<p>Si miramos este directorio veremos una serie de sub-directorios y archivos que conforman la estructura típica de un repositorio subversion, donde deberán prestar atención al directorio llamado <strong>hooks</strong>,  al que volveremos luego mas adelante en esta guía.</p>
<h3>2. Ahora a crear el entorno trac</h3>
<p>Al crear un entorno trac generamos un directorio con una estructura de sub-directorios asociada a un entorno subversion.</p>
<p>Paquetes a instalar:</p>
<pre># apt-get install trac</pre>
<p>Iniciamos  el ambiente de trac,  se nos solicitara algunos parámetros de configuración donde /ruta/trac/trac-entorno1 es la ruta donde se va a crear el entorno de trac.</p>
<pre># trac-admin /ruta/trac/trac-repositorio1 initenv
Creating a new Trac environment at /ruta/trac/trac-repositorio1

Trac will first ask a few questions about your environment
in order to initialize and prepare the project database.

 Please enter the name of your project.
 This name will be used in page titles and descriptions.

Project Name [My Project]&gt; <strong>Mi Proyecto de Prueba</strong>

 Please specify the connection string for the database to use.
 By default, a local SQLite database is created in the environment
 directory. It is also possible to use an already existing
 PostgreSQL database (check the Trac documentation for the exact
 connection string syntax).

Database connection string [sqlite:db/trac.db]&gt; &lt;<em><strong>ENTER&gt;</strong></em>

 Please specify the type of version control system,
 By default, it will be svn.

 If you don't want to use Trac with version control integration,
 choose the default here and don't specify a repository directory.
 in the next question.

Repository type [svn]&gt; &lt;<strong><em>ENTER&gt;</em></strong>

 Please specify the absolute path to the version control
 repository, or leave it blank to use Trac without a repository.
 You can also set the repository location later.

Path to repository [/path/to/repos]&gt; <em><strong>/ruta/svn/repositorio-proyecto1</strong></em>
Creating and Initializing Project
 Installing default wiki pages
 TracTickets imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracTickets
 TracNotification imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracNotification
 TracBrowser imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracBrowser
 InterTrac imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/InterTrac
 TracModWSGI imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracModWSGI
 TracImport imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracImport
 WikiFormatting imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/WikiFormatting
 TracSyntaxColoring imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracSyntaxColoring
 TracWorkflow imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracWorkflow
 TracIni imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracIni
 WikiPageNames imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/WikiPageNames
 TracNavigation imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracNavigation
 WikiDeletePage imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/WikiDeletePage
 SandBox imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/SandBox
 WikiMacros imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/WikiMacros
 TracRevisionLog imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracRevisionLog
 TracFineGrainedPermissions imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracFineGrainedPermissions
 TracStandalone imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracStandalone
 TracUpgrade imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracUpgrade
 TracQuery imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracQuery
 TracFastCgi imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracFastCgi
 TracEnvironment imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracEnvironment
 TitleIndex imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TitleIndex
 TracAdmin imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracAdmin
 InterWiki imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/InterWiki
 WikiRestructuredText imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/WikiRestructuredText
 TracReports imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracReports
 WikiProcessors imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/WikiProcessors
 TracChangeset imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracChangeset
 InterMapTxt imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/InterMapTxt
 TracAccessibility imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracAccessibility
 TracSearch imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracSearch
 TracWiki imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracWiki
 TracCgi imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracCgi
 TracInstall imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracInstall
 TracLinks imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracLinks
 TracInterfaceCustomization imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracInterfaceCustomization
 WikiHtml imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/WikiHtml
 PageTemplates imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/PageTemplates
 TracPermissions imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracPermissions
 TracUnicode imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracUnicode
 WikiRestructuredTextLinks imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/WikiRestructuredTextLinks
 TracTicketsCustomFields imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracTicketsCustomFields
 WikiStart imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/WikiStart
 TracRss imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracRss
 CamelCase imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/CamelCase
 TracGuide imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracGuide
 RecentChanges imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/RecentChanges
 TracPlugins imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracPlugins
 TracRoadmap imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracRoadmap
 WikiNewPage imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/WikiNewPage
 TracTimeline imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracTimeline
 TracModPython imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracModPython
 TracLogging imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracLogging
 TracBackup imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracBackup
 TracSupport imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracSupport
 Indexing repository
 [6]
---------------------------------------------------------------------
Project environment for 'Mi Proyecto de Prueba' created.

You may now configure the environment by editing the file:

  /ruta/trac/trac-repositorio1/conf/trac.ini

If you'd like to take this new project environment for a test drive,
try running the Trac standalone web server `tracd`:

  tracd --port 8000 /ruta/trac/trac-repositorio1

Then point your browser to http://localhost:8000/trac-repositorio1.
There you can also browse the documentation for your installed
version of Trac, including information on further setup (such as
deploying Trac to a real web server).

The latest documentation can also always be found on the project
website:

http://trac.edgewall.org/

Congratulations!</pre>
<p>Luego de esto si necesitamos cambiar algunos de estos parámetros recordemos que podemos hacerlo modificando el archivo de configuración del ambiente trac generado, en nuestro caso en:</p>
<pre>/ruta/trac/trac-repositorio1/conf/trac.ini</pre>
<p>Siempre que queremos podremos modificar nuestro entorno generado con trac, mediante el comando:</p>
<pre># trac-admin /ruta/trac/trac-repositorio1
Welcome to trac-admin 0.11.7
Interactive Trac administration console.
Copyright (c) 2003-2009 Edgewall Software
Type:  '?' or 'help' for help on commands.
Trac [/ruta/trac/trac-repositorio1]&gt;</pre>
<p>que nos da acceso a una consola de administración  desde donde se pueden gestionar muchos de los parámetros del entorno trac vía comandas propios. Un  problema que se puede presentar es que les suceda como a mi que cambie de lugar del repositorio de subversion y por consiguiente el entorno trac empezó a tirar errores a pesar de haber realizado las modificaciones del nuevo path en trac.ini. Para ello desde  la consola administrativa de trac y ejecutar el comando resync:</p>
<pre>Trac [/ruta/trac/trac-repositorio1]&gt; resync</pre>
<h3>3. Configuración de Apache2</h3>
<p>Trac viene por defecto con su propio servidor web para gestionar los entornos creados que corre por defecto en el puerto 80. En mi caso en el servidor donde voy  a usar trac voy a poner un apache con dominios virtuales en el mismo puerto. Instalo tanto el servidor web como la librería que me permite acceder a repositorios subversion desde apache y la que me permite gestionar trac  desde apache via python. En mi caso particular  voy a dedicar un subdominio interno asociado al repositorio por lo cual voy a crear un dominio virtual. Paquetes a instalar:</p>
<pre># apt-get install apache2 libapache2-svn libapache2-mod-python</pre>
<p>Habilito los módulos necesarios en Apache, el modulo para reescritura de urls:</p>
<pre># a2enmod rewrite</pre>
<p>y el modulo con soporte de python para apache, que es necesario para que apache reemplazar al web server interno que viene con trac.</p>
<pre># a2enmod python</pre>
<p>Creo mi archivo de subdominio en /etc/apache/sites-availiable/ :</p>
<pre># touch /etc/apache2/sites-availiable/trac.midominio.org.ar</pre>
<p>con el siguiente contenido:</p>
<p><pre class="brush: bash;">
&lt;VirtualHost *:80&gt;
   ServerName    trac.midominio.org.ar
   ServerAlias   www.trac.midominio.org.ar
   ServerAdmin   webmaster@midominio.org.ar
   DocumentRoot  /ruta/trac
   &lt;Directory /ruta/trac&gt;
      Options Indexes FollowSymLinks MultiViews
      AllowOverride None
      Order allow,deny
      allow from all
   &lt;/Directory&gt;

   ##### Logs: Configuración de LOGs
   ErrorLog ${APACHE_LOG_DIR}/midominio.org.ar.error.log
   LogLevel warn
   CustomLog ${APACHE_LOG_DIR}/midominio.org.ar.access.log combined

   ##### Ruta a TRAC : http://trac.midominio.com.ar/
   # Rewrite ./trac to ./trac/
   # RewriteEngine on
   # RewriteRule ^(.*)\/trac$ $1/ [NC]
   &lt;Location /&gt;
      SetHandler        mod_python
      PythonHandler     trac.web.modpython_frontend
      PythonInterpreter main
      PythonOption      TracEnvParentDir /ruta/trac
      PythonOption      TracUriRoot      /
      SetEnv PYTHON_EGG_CACHE       /tmp
   &lt;/Location&gt;
   ### Validacion de acceso a TRAC : http://midominio.org.ar/*/login
   &lt;LocationMatch ^(/[^/]+)?/login&gt;
      AuthType     Basic
      AuthName     &quot;Login a TRAC&quot;
      AuthUserFile /etc/apache2/passwd-trac
      Require      valid-user
   &lt;/LocationMatch&gt;
   ### Referencia al repositorio SVN : http://midominio.org.ar/svn
   &lt;Location /svn&gt;
      DAV svn
      SVNParentPath /ruta/svn
      SVNListParentPath on
      AuthType     Basic
      AuthName     &quot;Repositorio SVN&quot;
      AuthUserFile /etc/apache2/passwd-trac
      Require      valid-user
   &lt;/Location&gt;
&lt;/VirtualHost&gt;
</pre></p>
<p>Una ves hechas esta modificaciones reniciamos el servicio de apache con:</p>
<pre># /etc/init.d/apache2 restart</pre>
<h3>4. Accediendo al repositorio subversion a traves de Apache2</h3>
<p>Los usuarios serán creados en un archivo común que sera usado  tanto por  trac para la validación en su interfaz como por subversion para la autenticacion de los usuarios en su proyecto. Creación de usuarios:</p>
<pre># htpasswd -c /etc/apache2/passwd-trac  usuario</pre>
<p>Al añadir un segundo usuario debo quitar el parámetro -c del comando anterior, sino creara nuevamente el archivo passwd-trac. Este archivo es al que referenciamos desde la configuración del virtualhost de apache2, donde también lo usamos para realizar el acceso de nuestros usuarios a trac. La forma de referenciar al repositorio al hacer un checkout  es:</p>
<pre># svn co http://trac.midominio.org.ar/svn/repositorio-proyecto1</pre>
<h3><span style="font-family:Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif;"><span class="Apple-style-span" style="font-size:15px;line-height:19px;white-space:normal;">Accediendo a la interfaz de trac</span></span></h3>
<p>Según he armado esta guía la interfaz de trac estaría disponible en la dirección http://trac.midominio.org.ar y se vería así:</p>
<p style="text-align:center;"><a href="http://mcyanez.files.wordpress.com/2011/07/trac.jpg"><img class="size-medium wp-image-597 aligncenter" title="trac" src="http://mcyanez.files.wordpress.com/2011/07/trac.jpg?w=300&#038;h=235" alt="" width="300" height="235" /></a></p>
<h2><span class="Apple-style-span" style="font-size:15px;">5. Asociando los commits a la actualización de los tickets en trac</span></h2>
<p>La funcionalidad comit ticket updater hasta donde he visto es fabulosa, porque permite que cada usuario de subversion que se baje una copia de código al momento de redactar un comentario por cada commit realizada tenga la opción de interactuar con el sistema de tickets que provee trac. Bueno empecemos, creo un directorio donde este accesible el script</p>
<pre># mkdir /usr/share/trac/contrib
# cp /usr/share/trac/contrib/trac-post-commit-hook /usr/share/trac/contrib</pre>
<p>Dentro del directorio hooks del repositorio de mi proyecto en svn, el que mencionamos anteriormente,  crear el archivo post-comit :</p>
<pre># touch /home/svn/repositorio-proyecto1/hooks/post-commit</pre>
<p>Luego lo hago ejecutable:</p>
<pre># chmod 755 /home/svn/repositorio-proyecto1/hooks/post-commit</pre>
<p>y, asigno usuario y grupo del servidor web</p>
<pre># chown www-data.  /ruta/svn/repositorio-proyecto1/hooks/post-commit</pre>
<p>y lo edito con el siguiente contenido :</p>
<p><pre class="brush: bash;">
#!/bin/sh
REPOS=&quot;$1&quot;
REV=&quot;$2&quot;
LOG=`svnlook log -r $REV $REPOS`
AUTHOR=`svnlook author -r $REV $REPOS`
TRAC_ENV='/ruta/trac/trac-proyecto1'
/usr/bin/python  /usr/share/trac/contrib/trac-post-commit-hook \
-p &quot;$TRAC_ENV&quot;  \
-r &quot;$REV&quot;       \
-u &quot;$AUTHOR&quot;    \
-m &quot;$LOG&quot;
</pre></p>
<p>ATENTI!  que es necesario setear la variable TRAC_ENV de la linea 6 con el valor correcto sobre la ruta al entorno trac que corresponda al proyecto.</p>
<h3>¿Como redactar los commits para interactuar con los tickets de trac?</h3>
<p>Un vez hecho esto, como ya dije, los usuarios al hacer un commit contra el repositorio tendrán la opción de gestionar el  estado de los tickets disponibles. Esto se hace añadiendo en los comentarios  algunos comandos, estos son:</p>
<table width="600" border="2" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td><strong>Comandos</strong></td>
<td><strong>Detalles</strong></td>
</tr>
<tr>
<td><em>close, closed, closes, fix, fixed, fixes</em></td>
<td>Los números de ticket especificados con estos comandos son cerrados con el contenido del mensaje del commit añadido como detalle</td>
</tr>
<tr>
<td><em>references, refs, addresses, re, see</em></td>
<td>Los números de problemas especificados con estos comandos son dejados en su estado actual, pero el contenido del mensaje del commit es agregado a las notas de los tickets</td>
</tr>
</tbody>
</table>
<p>Ahora la pregunta obvia seria ¿ como escribo los comandos?,  es bastante simple, se debe respetar  la siguiente notación:</p>
<blockquote>
<pre>comando #1
comando #1, #2
comando #1 &amp; #2
comando #1 and #2</pre>
</blockquote>
<p>Donde #1 y #2 son números de tickets existentes en trac. O también puede usarse esta otra notación:</p>
<blockquote>
<pre>comando ticket:1
comando ticket:1, ticket:2
comando ticket:1 &amp; ticket:2
comando ticket:1 and ticket:2</pre>
</blockquote>
<p>Estos comandos se analizan desde el script <strong>post-commit</strong>ubicado en el directorio hooks del repositorio svn. Se parsea todo el mensaje de detalle de un commit cada vez que este se ejecuta y si se encuentran los comandos en los formatos especificados se realiza la acción que corresponda. Pongamos un ejemplo,  podemos enviar  un &#8220;commit&#8221;  con el siguiente comentario:</p>
<blockquote><p><em>&#8220;Cambios en tales modulos y mejoras en otros componentes. fixes #12 and #20, and refs #22&#8243;</em></p></blockquote>
<p>Con lo cual cerrariamos los tickets 12 y 20 con un estado fixes y agregariamos este mensaje tambien como nota al ticket 22.</p>
<p><span class="Apple-style-span" style="font-size:15px;"><strong>6. Conclusiones:</strong></span></p>
<p>En mi experiencia he trabajado y he visto entornos donde tanto el sistema de seguimiento de errores como el de control de versiones estaban implementados en forma separada,  por consiguiente la tarea del desarrollador era doble, ademas de comentar en los commits debían redundar en tareas  al tener que escribir exactamente lo mismo en respuesta a alguna incidencia reportada.  Tener integradas ambas herramientas, sumado a  la posibilidad de  interactuar con los tickets creados permite al grupo reducir tiempo valioso dedicado en escribir documentación del proceso de desarrollo, que es algo que los desarrolladores no suelen tener en en top de la lista de sus prioridades principales. La experiencia dentro de la interfaz de trac es muy ágil para el usuario, se tiene las linea de tiempo  (timeline) donde se puede visualizar todas las modificaciones hechas dentro del entorno, desde una nueva entrada en la wiki a cambios en los tickets o la hoja de ruta (roadmap) desde donde se pueden seguir los estados del proyecto en cada Hito/Meta (o milestones como los llama trac).</p>
<p>Una ventaja, si se la puede ver así, es que al finalizar esta  guía quedara configurado un servidor web donde podemos tranquilamente escalar la configuración para  ubicar otros repositorios subversion en el path /ruta/svn y sus entornos trac asociados en el path  /ruta/trac/, es decir podremos situar múltiples proyectos de software.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mcyanez.wordpress.com/465/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mcyanez.wordpress.com/465/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mcyanez.wordpress.com/465/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mcyanez.wordpress.com/465/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mcyanez.wordpress.com/465/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mcyanez.wordpress.com/465/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mcyanez.wordpress.com/465/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mcyanez.wordpress.com/465/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mcyanez.wordpress.com/465/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mcyanez.wordpress.com/465/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mcyanez.wordpress.com/465/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mcyanez.wordpress.com/465/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mcyanez.wordpress.com/465/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mcyanez.wordpress.com/465/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mcyanez.wordpress.com&amp;blog=12470900&amp;post=465&amp;subd=mcyanez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mcyanez.wordpress.com/2011/07/21/trac-commit-ticket-updater-apache2-subversion/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9726be182842fe6c6c1f043c8d9c7a8e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">rondamon002</media:title>
		</media:content>

		<media:content url="http://cipherdyne.org/images/trac_logo.png" medium="image" />

		<media:content url="http://mcyanez.files.wordpress.com/2011/07/trac.jpg?w=300" medium="image">
			<media:title type="html">trac</media:title>
		</media:content>
	</item>
		<item>
		<title>Tips :: Hacer un Backup del MBR</title>
		<link>http://mcyanez.wordpress.com/2011/06/29/hacer-un-backup-del-mbr/</link>
		<comments>http://mcyanez.wordpress.com/2011/06/29/hacer-un-backup-del-mbr/#comments</comments>
		<pubDate>Wed, 29 Jun 2011 17:01:36 +0000</pubDate>
		<dc:creator>mc.yanez</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[SysAdmin]]></category>
		<category><![CDATA[Tips: Command Line]]></category>

		<guid isPermaLink="false">http://mcyanez.wordpress.com/?p=437</guid>
		<description><![CDATA[Este comando corto me salvo las papas muchas veces cuando me toco jugar con el MBR (Master Boot Record) y las particiones. Se usa únicamente la utilidad dd que sirve para copiar contenido de archivos de la entrada standar a la salida standart y se juega con la potencia caracterista heredada de los sistemas unixes de la [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mcyanez.wordpress.com&amp;blog=12470900&amp;post=437&amp;subd=mcyanez&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Este comando corto me salvo las papas muchas veces cuando me toco jugar con el <a href="http://es.wikipedia.org/wiki/Master_boot_record" target="_blank">MBR (Master Boot Record</a>) y las particiones.</p>
<p>Se usa únicamente la utilidad <strong>dd</strong> que sirve para copiar contenido de archivos de la entrada standar a la salida standart y se juega con la potencia caracterista heredada de los sistemas unixes de la representacion de dispositivos en archivos.  Donde /dev/sda es el disco  en cuestión.</p>
<p>Para hacer el respaldo:</p>
<blockquote>
<pre>dd if=/dev/sda of=/pendrive/backup_mbr_20110629.mbr bs=512 count=1</pre>
</blockquote>
<p>Y asi de facil, para restaurar el MBR :</p>
<blockquote>
<pre>dd if=/pendrive/backup_mbr_20110629.mbr  of=/dev/sda bs=512 count=1</pre>
</blockquote>
<p>Con bs=512 le digo que el tamaño de bloque a copiar es de 512 bytes, con count=1 le digo que solo un  bloque , en este caso el primero bloque, que es donde se ubica el MBR.</p>
<p>Simple y rapido.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mcyanez.wordpress.com/437/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mcyanez.wordpress.com/437/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mcyanez.wordpress.com/437/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mcyanez.wordpress.com/437/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mcyanez.wordpress.com/437/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mcyanez.wordpress.com/437/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mcyanez.wordpress.com/437/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mcyanez.wordpress.com/437/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mcyanez.wordpress.com/437/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mcyanez.wordpress.com/437/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mcyanez.wordpress.com/437/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mcyanez.wordpress.com/437/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mcyanez.wordpress.com/437/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mcyanez.wordpress.com/437/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mcyanez.wordpress.com&amp;blog=12470900&amp;post=437&amp;subd=mcyanez&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mcyanez.wordpress.com/2011/06/29/hacer-un-backup-del-mbr/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9726be182842fe6c6c1f043c8d9c7a8e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">rondamon002</media:title>
		</media:content>
	</item>
	</channel>
</rss>
