<?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>Yvoictra Blog &#187; Programación</title>
	<atom:link href="http://egomezm.es/blog/category/software/programacion/feed/" rel="self" type="application/rss+xml" />
	<link>http://egomezm.es/blog</link>
	<description>El blog personal de Enrique Gómez (AKA yvoictra)</description>
	<lastBuildDate>Sun, 22 Apr 2012 23:12:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Table is marked as crashed and should be repaired</title>
		<link>http://egomezm.es/blog/2010/07/11/table-is-marked-as-crashed-and-should-be-repaired/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=table-is-marked-as-crashed-and-should-be-repaired</link>
		<comments>http://egomezm.es/blog/2010/07/11/table-is-marked-as-crashed-and-should-be-repaired/#comments</comments>
		<pubDate>Sun, 11 Jul 2010 09:28:29 +0000</pubDate>
		<dc:creator>yvoictra</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[Unix]]></category>
		<category><![CDATA[auto-repair]]></category>
		<category><![CDATA[crashed]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[mysqlcheck]]></category>
		<category><![CDATA[repair]]></category>

		<guid isPermaLink="false">http://yvoictra.wordpress.com/?p=342</guid>
		<description><![CDATA[TweetHace poco me encontré un error en una aplicación que tengo con Perl en la que realiza SELECTs, DELETEs y UPDATEs en una BBDD MySQL. El error lo provocaba MySQL e indicaba lo siguiente: Error : Table './base_de_datos/nombre_de_tabla' is marked as crashed and should be repaired Esto se puede solucionar de varias maneras. En esta [...]]]></description>
			<content:encoded><![CDATA[<div id="tweetbutton422" class="tw_button" style=""><a href="http://twitter.com/share?url=http%3A%2F%2Fegomezm.es%2Fblog%2F2010%2F07%2F11%2Ftable-is-marked-as-crashed-and-should-be-repaired%2F&amp;via=yvoictra&amp;text=Table%20is%20marked%20as%20crashed%20and%20should%20be%20repaired%20-%20Yvoictra%20Blog&amp;related=yvoictra&amp;lang=es&amp;count=horizontal&amp;counturl=http%3A%2F%2Fegomezm.es%2Fblog%2F2010%2F07%2F11%2Ftable-is-marked-as-crashed-and-should-be-repaired%2F" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://egomezm.es/blog/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div><p>Hace poco me encontré un error en una aplicación que tengo con Perl en la que realiza SELECTs, DELETEs y UPDATEs en una BBDD <strong>MySQL</strong>.</p>
<p>El error lo provocaba <strong>MySQL</strong> e indicaba lo siguiente:</p>
<p><code>Error    : Table './base_de_datos/nombre_de_tabla' is marked as crashed and should be repaired</code></p>
<p>Esto se puede solucionar de varias maneras. En esta entrada describiremos cómo solucionarlo utilizando las herramientas que proporciona MySQL.</p>
<p>Utilizando el comando &#8220;mysqlcheck&#8221; chequea y repara si está corrupta:</p>
<p><code>[root@coloso01]# ./mysql/bin/mysqlcheck --auto-repair base_de_datos nombre_de_tabla -u usuario -p<br />
Enter password:<br />
base_de_datos.nombre_de_tabla<br />
warning  : Table is marked as crashed<br />
warning  : 4 clients are using or haven't closed the table properly<br />
error    : Record-count is not ok; is 112323   Should be: 112803<br />
warning  : Found 33620 deleted space.   Should be 0<br />
warning  : Found 480 deleted blocks       Should be: 0<br />
error    : Corrupt</code></p>
<p>Es conveniente hacer backup de la BBDD antes de hacer cualquier cambio.</p>
<div name="googleone_share_1" style="position:relative;z-index:5;float: right; margin-left: 10px;"><g:plusone size="medium" count="1" href="http://egomezm.es/blog/2010/07/11/table-is-marked-as-crashed-and-should-be-repaired/">{lang: 'es'}</g:plusone></div>]]></content:encoded>
			<wfw:commentRss>http://egomezm.es/blog/2010/07/11/table-is-marked-as-crashed-and-should-be-repaired/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Cómo resetear un autoincremental en MySQL</title>
		<link>http://egomezm.es/blog/2009/10/24/como-resetear-un-autoincremental-en-mysql/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=como-resetear-un-autoincremental-en-mysql</link>
		<comments>http://egomezm.es/blog/2009/10/24/como-resetear-un-autoincremental-en-mysql/#comments</comments>
		<pubDate>Sat, 24 Oct 2009 11:48:06 +0000</pubDate>
		<dc:creator>yvoictra</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Unix]]></category>
		<category><![CDATA[alter]]></category>
		<category><![CDATA[autoincrement]]></category>
		<category><![CDATA[create]]></category>
		<category><![CDATA[table]]></category>
		<category><![CDATA[truncate]]></category>

		<guid isPermaLink="false">http://yvoictra.wordpress.com/?p=250</guid>
		<description><![CDATA[TweetEn las BBDD es típico utilizar la función de autoincrementar las claves primarias de las tablas. De este modo se consigue que se vaya incrementando el campo en cada nueva tupla. Si necesitamos borrar la tabla, y que además este valor se resetee, para volver a comenzar con 1, la opción más sencilla es ejecutar [...]]]></description>
			<content:encoded><![CDATA[<div id="tweetbutton409" class="tw_button" style=""><a href="http://twitter.com/share?url=http%3A%2F%2Fegomezm.es%2Fblog%2F2009%2F10%2F24%2Fcomo-resetear-un-autoincremental-en-mysql%2F&amp;via=yvoictra&amp;text=C%C3%B3mo%20resetear%20un%20autoincremental%20en%20MySQL%20-%20Yvoictra%20Blog&amp;related=yvoictra&amp;lang=es&amp;count=horizontal&amp;counturl=http%3A%2F%2Fegomezm.es%2Fblog%2F2009%2F10%2F24%2Fcomo-resetear-un-autoincremental-en-mysql%2F" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://egomezm.es/blog/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div><p>En las BBDD es típico utilizar la función de autoincrementar las claves primarias de las tablas. De este modo se consigue que se vaya incrementando el campo en cada nueva tupla.</p>
<p>Si necesitamos borrar la tabla, y que además este valor se resetee, para volver a comenzar con 1, la opción más sencilla es ejecutar la siguiente sentencia:</p>
<p><code>TRUNCATE nombre_tabla;</code></p>
<p>Con esto conseguimos vaciar la tabla, como si hubieramos hecho de nuevo el <em>CREATE TABLE</em>.</p>
<p>Si lo que necesitamos es hacer que el valor autoincremental tome un valor determinado es posible utilizar la siguiente sentencia, que establece un valor para la siguiente tupla.</p>
<p><code>ALTER TABLE nombre_tabla AUTO_INCREMENT=1</code></p>
<p>Con esto conseguimos resetear el campo autoincrementable. Ojo, si existen registros con el valor que hemos asignado, continuará por el último&#8230;</p>
<p><a href="http://www.eslomas.com/index.php/archives/2008/12/02/como-resetear-un-autoincremental-en-mysql">Fuente</a>.</p>
<div name="googleone_share_1" style="position:relative;z-index:5;float: right; margin-left: 10px;"><g:plusone size="medium" count="1" href="http://egomezm.es/blog/2009/10/24/como-resetear-un-autoincremental-en-mysql/">{lang: 'es'}</g:plusone></div>]]></content:encoded>
			<wfw:commentRss>http://egomezm.es/blog/2009/10/24/como-resetear-un-autoincremental-en-mysql/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Ver MAC de interfaz de red en Linux</title>
		<link>http://egomezm.es/blog/2009/10/04/ver-mac-de-interfaz-de-red-en-linux/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ver-mac-de-interfaz-de-red-en-linux</link>
		<comments>http://egomezm.es/blog/2009/10/04/ver-mac-de-interfaz-de-red-en-linux/#comments</comments>
		<pubDate>Sun, 04 Oct 2009 08:51:59 +0000</pubDate>
		<dc:creator>yvoictra</dc:creator>
				<category><![CDATA[Bash]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Unix]]></category>
		<category><![CDATA[address]]></category>
		<category><![CDATA[interfaz de red]]></category>
		<category><![CDATA[MAC]]></category>

		<guid isPermaLink="false">http://yvoictra.wordpress.com/?p=247</guid>
		<description><![CDATA[TweetExiste una forma interesante para poder sacar la MAC asociada a una interfaz de RED. Hay un fichero que tiene almacenada la MAC de la interfaz de Red, y existen tantos ficheros de este estilo, como interfaces de red tenga la máquina. El fichero en cuestión es: /sys/class/net/eth0/address, donde eth0, identifica la interfaz de red. [...]]]></description>
			<content:encoded><![CDATA[<div id="tweetbutton408" class="tw_button" style=""><a href="http://twitter.com/share?url=http%3A%2F%2Fegomezm.es%2Fblog%2F2009%2F10%2F04%2Fver-mac-de-interfaz-de-red-en-linux%2F&amp;via=yvoictra&amp;text=Ver%20MAC%20de%20interfaz%20de%20red%20en%20Linux%20-%20Yvoictra%20Blog&amp;related=yvoictra&amp;lang=es&amp;count=horizontal&amp;counturl=http%3A%2F%2Fegomezm.es%2Fblog%2F2009%2F10%2F04%2Fver-mac-de-interfaz-de-red-en-linux%2F" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://egomezm.es/blog/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div><p>Existe una forma interesante para poder sacar la MAC asociada a una interfaz de RED. Hay un fichero que tiene almacenada la MAC de la interfaz de Red, y existen tantos ficheros de este estilo, como interfaces de red tenga la máquina.</p>
<p>El fichero en cuestión es: <strong>/sys/class/net/eth0/address</strong>, donde <em>eth0</em>, identifica la interfaz de red.</p>
<p>Ejemplo:</p>
<p><code>[10:47:19 root@coloso01:~]# cat  /sys/class/net/eth0/address<br />
00:14:5e:2a:55:c0</code></p>
<div name="googleone_share_1" style="position:relative;z-index:5;float: right; margin-left: 10px;"><g:plusone size="medium" count="1" href="http://egomezm.es/blog/2009/10/04/ver-mac-de-interfaz-de-red-en-linux/">{lang: 'es'}</g:plusone></div>]]></content:encoded>
			<wfw:commentRss>http://egomezm.es/blog/2009/10/04/ver-mac-de-interfaz-de-red-en-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Logear mensajes personales en el /var/log/messages</title>
		<link>http://egomezm.es/blog/2009/09/24/logear-mensajes-personales-en-el-varlogmessages/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=logear-mensajes-personales-en-el-varlogmessages</link>
		<comments>http://egomezm.es/blog/2009/09/24/logear-mensajes-personales-en-el-varlogmessages/#comments</comments>
		<pubDate>Thu, 24 Sep 2009 22:54:08 +0000</pubDate>
		<dc:creator>yvoictra</dc:creator>
				<category><![CDATA[Bash]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Unix]]></category>
		<category><![CDATA[/var/log/messages]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[logear]]></category>
		<category><![CDATA[logger]]></category>
		<category><![CDATA[messages]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://yvoictra.wordpress.com/?p=236</guid>
		<description><![CDATA[TweetPara logear mensajes personales en el fichero /var/log/messages puedes usar la herramienta logger de unix. Un ejemplo sencillo sería: logger Esto es una prueba cutrecilla y podrías observar el resultado así: tail -20 /var/log/messages Puedes incluso poner más información (Esto tiene que ser incluído en el código de un bash script): logger -t `basename $0` [...]]]></description>
			<content:encoded><![CDATA[<div id="tweetbutton406" class="tw_button" style=""><a href="http://twitter.com/share?url=http%3A%2F%2Fegomezm.es%2Fblog%2F2009%2F09%2F24%2Flogear-mensajes-personales-en-el-varlogmessages%2F&amp;via=yvoictra&amp;text=Logear%20mensajes%20personales%20en%20el%20%2Fvar%2Flog%2Fmessages%20-%20Yvoictra%20Blog&amp;related=yvoictra&amp;lang=es&amp;count=horizontal&amp;counturl=http%3A%2F%2Fegomezm.es%2Fblog%2F2009%2F09%2F24%2Flogear-mensajes-personales-en-el-varlogmessages%2F" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://egomezm.es/blog/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div><p>Para logear mensajes personales en el fichero <strong>/var/log/messages</strong> puedes usar la herramienta </strong>logger</strong> de unix.</p>
<p>Un ejemplo sencillo sería:</p>
<p><code>logger Esto es una prueba cutrecilla</code></p>
<p>y podrías observar el resultado así:</p>
<p><code>tail -20 /var/log/messages</code></p>
<p>Puedes incluso poner más información (Esto tiene que ser incluído en el código de un bash script):</p>
<p><code>logger -t `basename $0` i am still testing</code></p>
<p><a href="http://linux.byexamples.com/archives/20/log-personal-message-to-varlogmessages/">Fuente</a></p>
<div name="googleone_share_1" style="position:relative;z-index:5;float: right; margin-left: 10px;"><g:plusone size="medium" count="1" href="http://egomezm.es/blog/2009/09/24/logear-mensajes-personales-en-el-varlogmessages/">{lang: 'es'}</g:plusone></div>]]></content:encoded>
			<wfw:commentRss>http://egomezm.es/blog/2009/09/24/logear-mensajes-personales-en-el-varlogmessages/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Recarga configuración de .bashrc</title>
		<link>http://egomezm.es/blog/2009/03/25/recarga-configuracion-de-bashrc/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=recarga-configuracion-de-bashrc</link>
		<comments>http://egomezm.es/blog/2009/03/25/recarga-configuracion-de-bashrc/#comments</comments>
		<pubDate>Wed, 25 Mar 2009 21:57:23 +0000</pubDate>
		<dc:creator>yvoictra</dc:creator>
				<category><![CDATA[Bash]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[bashrc]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://yvoictra.wordpress.com/?p=170</guid>
		<description><![CDATA[TweetPara recargar los cambios realizados en el fichero. bashrc, se utiliza el siguiente comando: $ source /home/tu_cuenta/.bashrc {lang: 'es'}]]></description>
			<content:encoded><![CDATA[<div id="tweetbutton399" class="tw_button" style=""><a href="http://twitter.com/share?url=http%3A%2F%2Fegomezm.es%2Fblog%2F2009%2F03%2F25%2Frecarga-configuracion-de-bashrc%2F&amp;via=yvoictra&amp;text=Recarga%20configuraci%C3%B3n%20de%20.bashrc%20-%20Yvoictra%20Blog&amp;related=yvoictra&amp;lang=es&amp;count=horizontal&amp;counturl=http%3A%2F%2Fegomezm.es%2Fblog%2F2009%2F03%2F25%2Frecarga-configuracion-de-bashrc%2F" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://egomezm.es/blog/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div><p>Para recargar los cambios realizados en el fichero<strong>. bashrc</strong>, se utiliza el siguiente comando:</p>
<p><code>$ source /home/tu_cuenta/.bashrc</code></p>
<div name="googleone_share_1" style="position:relative;z-index:5;float: right; margin-left: 10px;"><g:plusone size="medium" count="1" href="http://egomezm.es/blog/2009/03/25/recarga-configuracion-de-bashrc/">{lang: 'es'}</g:plusone></div>]]></content:encoded>
			<wfw:commentRss>http://egomezm.es/blog/2009/03/25/recarga-configuracion-de-bashrc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>/bin/tar: Argument list too long</title>
		<link>http://egomezm.es/blog/2009/03/22/bintar-argument-list-too-long/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=bintar-argument-list-too-long</link>
		<comments>http://egomezm.es/blog/2009/03/22/bintar-argument-list-too-long/#comments</comments>
		<pubDate>Sun, 22 Mar 2009 22:26:08 +0000</pubDate>
		<dc:creator>yvoictra</dc:creator>
				<category><![CDATA[Bash]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[argument list too long]]></category>
		<category><![CDATA[find]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[Script]]></category>
		<category><![CDATA[tar]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://yvoictra.wordpress.com/?p=161</guid>
		<description><![CDATA[TweetCuando necesitas empaquetar una cantidad muy grande de ficheros, es posible que tar no te lo permite. Para solucionar esto, puedes probar lo siguiente: find . -name '*.txt' -print &#62;/tmp/filesToPack tar -cvzf textfiles.tar.gz --files-from /tmp/filesToPack find . -name '*.txt' &#124; xargs rm -v {lang: 'es'}]]></description>
			<content:encoded><![CDATA[<div id="tweetbutton398" class="tw_button" style=""><a href="http://twitter.com/share?url=http%3A%2F%2Fegomezm.es%2Fblog%2F2009%2F03%2F22%2Fbintar-argument-list-too-long%2F&amp;via=yvoictra&amp;text=%2Fbin%2Ftar%3A%20Argument%20list%20too%20long%20-%20Yvoictra%20Blog&amp;related=yvoictra&amp;lang=es&amp;count=horizontal&amp;counturl=http%3A%2F%2Fegomezm.es%2Fblog%2F2009%2F03%2F22%2Fbintar-argument-list-too-long%2F" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://egomezm.es/blog/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div><p>Cuando necesitas empaquetar una cantidad muy grande de ficheros, es posible que <strong>tar</strong> no te lo permite. Para solucionar esto, puedes probar lo siguiente:</p>
<p><code>find . -name '*.txt' -print &gt;/tmp/filesToPack<br />
tar -cvzf textfiles.tar.gz --files-from /tmp/filesToPack<br />
find . -name '*.txt' | xargs rm -v</code></p>
<div name="googleone_share_1" style="position:relative;z-index:5;float: right; margin-left: 10px;"><g:plusone size="medium" count="1" href="http://egomezm.es/blog/2009/03/22/bintar-argument-list-too-long/">{lang: 'es'}</g:plusone></div>]]></content:encoded>
			<wfw:commentRss>http://egomezm.es/blog/2009/03/22/bintar-argument-list-too-long/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pasar un proceso de Unix de Foreground a Background</title>
		<link>http://egomezm.es/blog/2008/11/23/pasar-un-proceso-de-unix-de-foreground-a-background/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=pasar-un-proceso-de-unix-de-foreground-a-background</link>
		<comments>http://egomezm.es/blog/2008/11/23/pasar-un-proceso-de-unix-de-foreground-a-background/#comments</comments>
		<pubDate>Sun, 23 Nov 2008 17:25:52 +0000</pubDate>
		<dc:creator>yvoictra</dc:creator>
				<category><![CDATA[Bash]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[background]]></category>
		<category><![CDATA[bg]]></category>
		<category><![CDATA[fg]]></category>
		<category><![CDATA[foreground]]></category>
		<category><![CDATA[jobs]]></category>
		<category><![CDATA[running]]></category>
		<category><![CDATA[stopped]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://yvoictra.wordpress.com/?p=122</guid>
		<description><![CDATA[TweetMuchas veces me he encontrado en la necesidad de utilizar una terminal en la que se está ejecutando un proceso, y por ello finalmente no poder usarla. La solución para esto es pasar el proceso a background, de modo que nos libera la terminal, y podemos interactuar de nuevo con la máquina. ¡Ojo! Si el [...]]]></description>
			<content:encoded><![CDATA[<div id="tweetbutton395" class="tw_button" style=""><a href="http://twitter.com/share?url=http%3A%2F%2Fegomezm.es%2Fblog%2F2008%2F11%2F23%2Fpasar-un-proceso-de-unix-de-foreground-a-background%2F&amp;via=yvoictra&amp;text=Pasar%20un%20proceso%20de%20Unix%20de%20Foreground%20a%20Background%20-%20Yvoictra%20Blog&amp;related=yvoictra&amp;lang=es&amp;count=horizontal&amp;counturl=http%3A%2F%2Fegomezm.es%2Fblog%2F2008%2F11%2F23%2Fpasar-un-proceso-de-unix-de-foreground-a-background%2F" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://egomezm.es/blog/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div><p>Muchas veces me he encontrado en la necesidad de utilizar una terminal en la que se está ejecutando un proceso, y por ello finalmente no poder usarla.</p>
<p>La solución para esto es <strong>pasar el proceso a background</strong>, de modo que nos libera la terminal, y podemos interactuar de nuevo con la máquina.</p>
<p>¡Ojo! Si el proceso escupe texto, y no hemos redireccionado la salida estandar, nos saldrán los mensajes del proceso en la terminal, así que no te asustes si lo ves <img src='http://egomezm.es/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>Para pasar el proceso a <strong>background</strong>:</p>
<ol>
<li>Pulsa <strong>Control+Z</strong>.</li>
<li>Ejecuta el comando <strong>bg</strong>.</li>
<li>Puedes observar el estado de tus procesos con el comando <strong>jobs</strong>.</li>
</ol>
<p><code>lpr -Pps23 part[1-8].ps<br />
^Z<br />
Stopped<br />
bg<br />
[1]    lpr -Pps23 interface.ps &amp;<br />
jobs<br />
[1]    Running              lpr -Pps7 interface.ps</code></p>
<p>Para volver a pasarlo a <strong>Foreground</strong> podemos usar el comando <strong>fg</strong>.</p>
<p>También es posible dejar un comando en background directamente al ejecutarlo, añadiendo el  carácter <strong>&amp;</strong>.</p>
<p><code>lpr -Pps23 interface.ps &amp;</code></p>
<div name="googleone_share_1" style="position:relative;z-index:5;float: right; margin-left: 10px;"><g:plusone size="medium" count="1" href="http://egomezm.es/blog/2008/11/23/pasar-un-proceso-de-unix-de-foreground-a-background/">{lang: 'es'}</g:plusone></div>]]></content:encoded>
			<wfw:commentRss>http://egomezm.es/blog/2008/11/23/pasar-un-proceso-de-unix-de-foreground-a-background/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eliminar procesos &#8220;zombies&#8221; de SSH</title>
		<link>http://egomezm.es/blog/2008/11/07/eliminar_procesos_zombies_ssh/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=eliminar_procesos_zombies_ssh</link>
		<comments>http://egomezm.es/blog/2008/11/07/eliminar_procesos_zombies_ssh/#comments</comments>
		<pubDate>Fri, 07 Nov 2008 22:57:04 +0000</pubDate>
		<dc:creator>yvoictra</dc:creator>
				<category><![CDATA[Bash]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[daemon]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[pstree]]></category>
		<category><![CDATA[session]]></category>
		<category><![CDATA[SSH]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://yvoictra.wordpress.com/?p=113</guid>
		<description><![CDATA[TweetHay veces que con SSH se cierran mal las conexiones, y se quedan procesos abiertos (zombies) en la máquina que tiene el demonio de SSH. Ejemplo: #ps -ef calidad   7762  7761  0 Nov03 ?        00:00:00 [scp] &#60;defunct&#62; root      1898  2384  0 Nov03 ?        00:00:00 sshd -i -f /etc/ssh/sshd_config calidad   1913  1898  0 Nov03 ?        00:00:00 [...]]]></description>
			<content:encoded><![CDATA[<div id="tweetbutton113" class="tw_button" style=""><a href="http://twitter.com/share?url=http%3A%2F%2Fegomezm.es%2Fblog%2F2008%2F11%2F07%2Feliminar_procesos_zombies_ssh%2F&amp;via=yvoictra&amp;text=Eliminar%20procesos%20%26%238220%3Bzombies%26%238221%3B%20de%20SSH%20-%20Yvoictra%20Blog&amp;related=yvoictra&amp;lang=es&amp;count=horizontal&amp;counturl=http%3A%2F%2Fegomezm.es%2Fblog%2F2008%2F11%2F07%2Feliminar_procesos_zombies_ssh%2F" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://egomezm.es/blog/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div><p>Hay veces que con SSH se cierran mal las conexiones, y se quedan procesos abiertos (zombies) en la máquina que tiene el <a href="http://en.wikipedia.org/wiki/Ssh">demonio de SSH</a>.</p>
<p>Ejemplo:</p>
<p><code>#ps -ef<br />
calidad   7762  7761  0 Nov03 ?        00:00:00 [scp] &lt;defunct&gt;<br />
root      1898  2384  0 Nov03 ?        00:00:00 sshd -i -f /etc/ssh/sshd_config<br />
calidad   1913  1898  0 Nov03 ?        00:00:00 sshd -i -f /etc/ssh/sshd_config<br />
calidad   1914  1913  0 Nov03 ?        00:00:00 [scp] &lt;defunct&gt;<br />
root      4664  2384  0 Nov03 ?        00:00:00 sshd -i -f /etc/ssh/sshd_config<br />
calidad   4669  4664  0 Nov03 ?        00:00:00 sshd -i -f /etc/ssh/sshd_config<br />
calidad   4670  4669  0 Nov03 ?        00:00:00 [scp] &lt;defunct&gt;<br />
root      6344  2384  0 Nov03 ?        00:00:00 sshd -i -f /etc/ssh/sshd_config<br />
calidad   6349  6344  0 Nov03 ?        00:00:00 sshd -i -f /etc/ssh/sshd_config<br />
calidad   6350  6349  0 Nov03 ?        00:00:00 [scp] &lt;defunct&gt;</code></p>
<p>Para eliminar estas sesiones que se quedan sin cerrar correctamente, se puede enviar la señal de reinicio al proceso de SSH, por cada una de las sesiones mal cerradas:</p>
<p><code>pstree -cpal | egrep [s]shd | perl -lne '($i)=(/(d+)/); `kill -1 $i`'</code></p>
<p>Con esto conseguimos que se reinicien todas las conexiones de SSH que tiene la máquina.</p>
<p>(Recuerda que hay que tener <a href="http://www.perl.org/">Perl</a> instalado para poder ejecutar el comando anterior).</p>
<div name="googleone_share_1" style="position:relative;z-index:5;float: right; margin-left: 10px;"><g:plusone size="medium" count="1" href="http://egomezm.es/blog/2008/11/07/eliminar_procesos_zombies_ssh/">{lang: 'es'}</g:plusone></div>]]></content:encoded>
			<wfw:commentRss>http://egomezm.es/blog/2008/11/07/eliminar_procesos_zombies_ssh/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Conectar a una VPN con vpnc</title>
		<link>http://egomezm.es/blog/2008/10/27/conectarte-a-una-vpn-con-vpnc/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=conectarte-a-una-vpn-con-vpnc</link>
		<comments>http://egomezm.es/blog/2008/10/27/conectarte-a-una-vpn-con-vpnc/#comments</comments>
		<pubDate>Mon, 27 Oct 2008 21:46:58 +0000</pubDate>
		<dc:creator>yvoictra</dc:creator>
				<category><![CDATA[Bash]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[free]]></category>
		<category><![CDATA[net]]></category>
		<category><![CDATA[unix]]></category>
		<category><![CDATA[VPN]]></category>
		<category><![CDATA[vpnc]]></category>

		<guid isPermaLink="false">http://yvoictra.wordpress.com/?p=106</guid>
		<description><![CDATA[Tweetvpnc es un cliente libre de redes VPN para Unix, que se usa a través de la consola. Existen otros clientes de este estilo que incluso utilizan la interfaz gráfica. Para instalarlo utilizaremos lo siguiente: sudo apt-get install vpnc Que tendrá en cuenta que todas las dependencias con otras librerias están correctamente instaladas. vpnc buscará [...]]]></description>
			<content:encoded><![CDATA[<div id="tweetbutton393" class="tw_button" style=""><a href="http://twitter.com/share?url=http%3A%2F%2Fegomezm.es%2Fblog%2F2008%2F10%2F27%2Fconectarte-a-una-vpn-con-vpnc%2F&amp;via=yvoictra&amp;text=Conectar%20a%20una%20VPN%20con%20vpnc%20-%20Yvoictra%20Blog&amp;related=yvoictra&amp;lang=es&amp;count=horizontal&amp;counturl=http%3A%2F%2Fegomezm.es%2Fblog%2F2008%2F10%2F27%2Fconectarte-a-una-vpn-con-vpnc%2F" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://egomezm.es/blog/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div><p><strong>vpnc</strong> es un cliente libre de redes VPN para Unix, que se usa a través de la consola. Existen otros clientes de este estilo que incluso utilizan la interfaz gráfica.</p>
<p>Para instalarlo utilizaremos lo siguiente:</p>
<p><code>sudo apt-get install vpnc</code></p>
<p>Que tendrá en cuenta que todas las dependencias con otras librerias están correctamente instaladas.</p>
<p><strong>vpnc</strong> buscará los ficheros <em>/etc/vpnc.conf</em> o <em>/etc/vpnc/default.conf</em>, si ninguno de estos ficheros existe, al ejecutar <strong>vpnc</strong> pedirá por consola los parámetros necesarios.</p>
<p>Para que <strong>vpnc</strong> utilize un fichero de configuración distinto a los anteriores, tiene que utilizar se puede utilizar la siguiente orden:</p>
<p><code>sudo vpnc miconfiguracion</code></p>
<p>o</p>
<p><code>sudo vpnc miconfiguracion.conf</code></p>
<p>cuyo fichero tiene que estar en el directorio <strong>/etc/vpnc/</strong> y necesita la extensión <strong>.conf</strong>.</p>
<p>El aspecto de este fichero es el siguiente:</p>
<p><code>IPSec gateway <em>gateway</em><br />
IPSec ID <em>nombre_del_grupo</em><br />
IPSec secret <em>contraseña_del_grupo</em><br />
Xauth username <em>mi_usuario</em><br />
Xauth password <em>mi_contraseña</em></code></p>
<p>Para desconectar de la VPN, se usa el siguiente comando:</p>
<p><code>sudo vpnc-disconnect</code></p>
<p><a href="http://www.debuntu.org/how-to-connect-to-a-cisco-vpn-using-vpnc">Fuente</a>.</p>
<div name="googleone_share_1" style="position:relative;z-index:5;float: right; margin-left: 10px;"><g:plusone size="medium" count="1" href="http://egomezm.es/blog/2008/10/27/conectarte-a-una-vpn-con-vpnc/">{lang: 'es'}</g:plusone></div>]]></content:encoded>
			<wfw:commentRss>http://egomezm.es/blog/2008/10/27/conectarte-a-una-vpn-con-vpnc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Administrar usuarios de MySQL</title>
		<link>http://egomezm.es/blog/2008/10/26/administrar-usuarios-de-mysql/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=administrar-usuarios-de-mysql</link>
		<comments>http://egomezm.es/blog/2008/10/26/administrar-usuarios-de-mysql/#comments</comments>
		<pubDate>Sun, 26 Oct 2008 21:52:24 +0000</pubDate>
		<dc:creator>yvoictra</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[password]]></category>
		<category><![CDATA[user]]></category>

		<guid isPermaLink="false">http://yvoictra.wordpress.com/?p=100</guid>
		<description><![CDATA[TweetPara administrar los usuarios de una base de datos de mysql, existen los siguientes comandos: mysql&#62; use mysql; Database Changed mysql&#62; set password for 'elforum'@'localhost' = password('98m4@9er'); Query OK, 0 rows affected (0.00 sec) mysql&#62; set password for 'mysysad'@'localhost' = password('950v4.Kr'); Query OK, 0 rows affected (0.00 sec) Y para mostrar los usuarios, y las [...]]]></description>
			<content:encoded><![CDATA[<div id="tweetbutton392" class="tw_button" style=""><a href="http://twitter.com/share?url=http%3A%2F%2Fegomezm.es%2Fblog%2F2008%2F10%2F26%2Fadministrar-usuarios-de-mysql%2F&amp;via=yvoictra&amp;text=Administrar%20usuarios%20de%20MySQL%20-%20Yvoictra%20Blog&amp;related=yvoictra&amp;lang=es&amp;count=horizontal&amp;counturl=http%3A%2F%2Fegomezm.es%2Fblog%2F2008%2F10%2F26%2Fadministrar-usuarios-de-mysql%2F" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://egomezm.es/blog/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div><p>Para administrar los usuarios de una base de datos de mysql, existen los siguientes comandos:</p>
<p><code>mysql&gt; use mysql;<br />
Database Changed<br />
mysql&gt; set password for 'elforum'@'localhost' = password('98m4@9er');<br />
Query OK, 0 rows affected (0.00 sec)<br />
mysql&gt; set password for 'mysysad'@'localhost' = password('950v4.Kr');<br />
Query OK, 0 rows affected (0.00 sec)</code></p>
<p>Y para mostrar los usuarios, y las passwords asociadas&#8230;</p>
<p><code>mysql&gt; SELECT user, password FROM user;<br />
+---------------+-------------------------------------------+<br />
| user          | password                                  |<br />
+---------------+-------------------------------------------+<br />
...<br />
| elforum |   *EAE7DE143B1B9598745AD571885A98E723ABE9056 |<br />
| mysysad | *Ebe7D596878627EDD581EADEFSA98E723ABE9C58 |<br />
...</code></p>
<div name="googleone_share_1" style="position:relative;z-index:5;float: right; margin-left: 10px;"><g:plusone size="medium" count="1" href="http://egomezm.es/blog/2008/10/26/administrar-usuarios-de-mysql/">{lang: 'es'}</g:plusone></div>]]></content:encoded>
			<wfw:commentRss>http://egomezm.es/blog/2008/10/26/administrar-usuarios-de-mysql/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

