<?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>Jonathan Echeverría - Lo que tengo en la cabeza &#187; Scripting</title>
	<atom:link href="http://www.jonathanecheverria.com/category/scripting/feed" rel="self" type="application/rss+xml" />
	<link>http://www.jonathanecheverria.com</link>
	<description>Documentos técnicos, soluciones a problemas, cuaderno de bitácora, fotografías...</description>
	<lastBuildDate>Wed, 31 Aug 2011 17:50:35 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Find + exec, para reemplazar cadenas en ficheros</title>
		<link>http://www.jonathanecheverria.com/2010/06/29/find-exec-para-reemplazar-cadenas-en-ficheros</link>
		<comments>http://www.jonathanecheverria.com/2010/06/29/find-exec-para-reemplazar-cadenas-en-ficheros#comments</comments>
		<pubDate>Tue, 29 Jun 2010 17:08:54 +0000</pubDate>
		<dc:creator>Jonathan Echeverria</dc:creator>
				<category><![CDATA[Scripting]]></category>
		<category><![CDATA[buscar y reemplazar cadenas ficheros]]></category>
		<category><![CDATA[find + exec]]></category>
		<category><![CDATA[reemplazar cadenas en ficheros]]></category>
		<category><![CDATA[reemplazar caracteres sql]]></category>
		<category><![CDATA[script cambio css dependiendo navegador]]></category>
		<category><![CDATA[script eliminar archivos antiguos]]></category>
		<category><![CDATA[script fecha web]]></category>
		<category><![CDATA[script find]]></category>
		<category><![CDATA[script recuperar archivo]]></category>

		<guid isPermaLink="false">http://www.jonathanecheverria.com/?p=1598</guid>
		<description><![CDATA[Pequeño script para Linux que podemos ejecutar en la línea de comandos y que nos permite buscar una cadena y reemplazarla por otra, en múltiples ficheros. Esto es tremendamente útil cuando cambiamos algún nombre, un título de una página html, el nombre de un archivo&#8230; y queremos actualizar todos los ficheros que hacen referencia a [...]]]></description>
			<content:encoded><![CDATA[<p>Pequeño script para Linux que podemos ejecutar en la línea de comandos y que nos permite buscar una cadena y reemplazarla por otra, en múltiples ficheros. Esto es tremendamente útil cuando cambiamos algún nombre, un título de una página html, el nombre de un archivo&#8230; y queremos actualizar todos los ficheros que hacen referencia a él. Para ello basta con ejecutar:</p>

<div class="wp_syntax"><div class="code"><pre class="sh" style="font-family:monospace;">find . -type f -exec sed -i s/cadenaVieja/cadenaNueva/g {} \;</pre></div></div>

<p>Esta línea en concreto buscaría en el directorio actual, y reemplazaría en todos los ficheros las apariciones de <em>cadenaVieja</em>, por <em>cadenaNueva</em>.</p>
<h3  class="related_post_title">Artículos relacionados:</h3><ul class="related_post"><li>19 de noviembre, 2008 -- <a href="http://www.jonathanecheverria.com/2008/11/19/script-eliminar-archivos-creados-antes-de-x-dias" title="Script eliminar archivos creados antes de X dias">Script eliminar archivos creados antes de X dias</a></li><li>10 de diciembre, 2008 -- <a href="http://www.jonathanecheverria.com/2008/12/10/mostrar-la-fecha-y-hora-actual-en-pagina-web" title="Mostrar la fecha y hora actual en página web">Mostrar la fecha y hora actual en página web</a></li><li>4 de diciembre, 2008 -- <a href="http://www.jonathanecheverria.com/2008/12/04/mysql-reemplazar-un-caracter-por-otro" title="MySQL: Reemplazar un caracter por otro">MySQL: Reemplazar un caracter por otro</a></li><li>1 de octubre, 2008 -- <a href="http://www.jonathanecheverria.com/2008/10/01/programacion-css-diferentes-para-firefox-e-internet-explorer" title="Programación CSS diferentes para Firefox e Internet Explorer">Programación CSS diferentes para Firefox e Internet Explorer</a></li><li>23 de julio, 2008 -- <a href="http://www.jonathanecheverria.com/2008/07/23/script-para-recuperar-archivos-que-se" title="Script para recuperar archivos que se han perdido">Script para recuperar archivos que se han perdido</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.jonathanecheverria.com/2010/06/29/find-exec-para-reemplazar-cadenas-en-ficheros/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Control de memoria RAM consumida por Apache en servidor web</title>
		<link>http://www.jonathanecheverria.com/2009/02/18/control-de-memoria-ram-consumida-por-apache-en-servidor-web</link>
		<comments>http://www.jonathanecheverria.com/2009/02/18/control-de-memoria-ram-consumida-por-apache-en-servidor-web#comments</comments>
		<pubDate>Wed, 18 Feb 2009 19:25:27 +0000</pubDate>
		<dc:creator>Jonathan Echeverria</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Scripting]]></category>
		<category><![CDATA[administrar servidor linux]]></category>
		<category><![CDATA[control apache]]></category>
		<category><![CDATA[control memoria apache]]></category>
		<category><![CDATA[control ram apache]]></category>
		<category><![CDATA[control ram servidor]]></category>
		<category><![CDATA[limitar memoria apache]]></category>
		<category><![CDATA[limitar recursos apache]]></category>
		<category><![CDATA[ventajas linux servidor web]]></category>

		<guid isPermaLink="false">http://www.jonathanecheverria.com/?p=562</guid>
		<description><![CDATA[Como bien sabéis estoy teniendo problemas con el servidor y Apache. En ocasiones sin saber muy bien por qué apache crea tantos hijos que sobrecarga el servidor hasta consumir toda la RAM disponible. Cuando llega a ese punto Linux se encarga de matar los procesos menos prioritarios para liberar recursos. En este caso cuando llega [...]]]></description>
			<content:encoded><![CDATA[<p>Como bien sabéis estoy teniendo problemas con el servidor y Apache. En ocasiones sin saber muy bien por qué apache crea tantos hijos que sobrecarga el servidor hasta consumir toda la RAM disponible. Cuando llega a ese punto Linux se encarga de matar los procesos menos prioritarios para liberar recursos. En este caso cuando llega ese punto mata todos los procesos apache y el servidor web se cae. </p>
<p>Para tratar de evitar este problema y consultando con google he preparado este script basándome en un artículo que he encontrado en <a href="http://chuano.net/evitar-agotar-la-memoria-de-un-servidor-privado-virtual/" target="blank">chuano.net.</a>:</p>
<p><span id="more-562"></span></p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
<span style="color: #007800;">minram</span>=<span style="color: #000000;">200</span>
<span style="color: #007800;">extraminram</span>=<span style="color: #000000;">50</span>
<span style="color: #000000; font-weight: bold;">while</span> <span style="color: #c20cb9; font-weight: bold;">true</span>; <span style="color: #000000; font-weight: bold;">do</span>
        <span style="color: #007800;">memusage</span>=$<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #c20cb9; font-weight: bold;">free</span> <span style="color: #660033;">-m</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">head</span> <span style="color: #660033;">-2</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">tail</span> <span style="color: #660033;">-1</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">awk</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span><span style="color: #ff0000;">'print $4'</span><span style="color: #7a0874; font-weight: bold;">&#125;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
        <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$memusage</span>&quot;</span> <span style="color: #660033;">-lt</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$minram</span>&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
                <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>apache reload
        <span style="color: #000000; font-weight: bold;">fi</span>
        <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$memusage</span>&quot;</span> <span style="color: #660033;">-lt</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$extraminram</span>&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
                <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>apache restart
        <span style="color: #000000; font-weight: bold;">fi</span>
&nbsp;
        <span style="color: #c20cb9; font-weight: bold;">sleep</span> <span style="color: #000000;">1</span>
<span style="color: #000000; font-weight: bold;">done</span></pre></div></div>

<p>Este script lo he llamado control_apache.sh y tras darle los permisos de ejecución oportunos lo ejecuto de la siguiente forma:</p>
<p><code># nice -n -19 nohup ./control_apache.sh &#038;</code></p>
<p>De este modo el script se ejecuta con máxima prioridad y cuando el servidor se queda con menos de 200MB libres de RAM, recarga apache. Si por el contrario la RAM libre desciende a 50MB reinicia apache, matando así todos los hijos y liberando la RAM.</p>
<h3  class="related_post_title">Artículos relacionados:</h3><ul class="related_post"><li>28 de octubre, 2009 -- <a href="http://www.jonathanecheverria.com/2009/10/28/cambio-de-servidor-%c2%bfquieres-alojamiento" title="Cambio de servidor. ¿quieres alojamiento?">Cambio de servidor. ¿quieres alojamiento?</a></li><li>13 de abril, 2009 -- <a href="http://www.jonathanecheverria.com/2009/04/13/servidor-con-windows-server-2003-o-servidor-con-linux" title="Servidor con Windows Server 2003 o Servidor con Linux">Servidor con Windows Server 2003 o Servidor con Linux</a></li><li>7 de febrero, 2009 -- <a href="http://www.jonathanecheverria.com/2009/02/07/problemas-con-el-servidor" title="Problemas con el servidor">Problemas con el servidor</a></li><li>16 de mayo, 2011 -- <a href="http://www.jonathanecheverria.com/2011/05/16/habilitar-reinicio-de-las-x-en-ubuntu-11-04" title="Habilitar reinicio de las X en Ubuntu 11.04">Habilitar reinicio de las X en Ubuntu 11.04</a></li><li>4 de mayo, 2009 -- <a href="http://www.jonathanecheverria.com/2009/05/04/linux-alcanza-un-1-de-usuarios-en-cuota-de-mercado-mundial" title="Linux alcanza un 1% de usuarios en cuota de mercado mundial">Linux alcanza un 1% de usuarios en cuota de mercado mundial</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.jonathanecheverria.com/2009/02/18/control-de-memoria-ram-consumida-por-apache-en-servidor-web/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Matar a la vez varios procesos con el mismo nombre</title>
		<link>http://www.jonathanecheverria.com/2009/01/07/matar-a-la-vez-varios-procesos-con-el-mismo-nombre</link>
		<comments>http://www.jonathanecheverria.com/2009/01/07/matar-a-la-vez-varios-procesos-con-el-mismo-nombre#comments</comments>
		<pubDate>Wed, 07 Jan 2009 07:51:42 +0000</pubDate>
		<dc:creator>Jonathan Echeverria</dc:creator>
				<category><![CDATA[Scripting]]></category>
		<category><![CDATA[kill]]></category>
		<category><![CDATA[matar varios procesos a la vez]]></category>
		<category><![CDATA[procesos]]></category>
		<category><![CDATA[script matar proceso]]></category>

		<guid isPermaLink="false">http://www.jonathanecheverria.com/?p=413</guid>
		<description><![CDATA[En alguna ocasión se me ha presentado la situación de tener que matar varios procesos con el mismo nombre, no siendo ninguno de los procesos el proceso padre. Por tanto si no utilizamos algo similar a lo que propongo, sería necesario ir matando uno por uno, todos los procesos. Esta tarea puede resultar sencilla si [...]]]></description>
			<content:encoded><![CDATA[<p>En alguna ocasión se me ha presentado la situación de tener que matar varios procesos con el mismo nombre, no siendo ninguno de los procesos el proceso padre. Por tanto si no utilizamos algo similar a lo que propongo, sería necesario ir matando uno por uno, todos los procesos. Esta tarea puede resultar sencilla si tenemos 3 o 4 procesos, pero si tenemos 15 la cosa empieza a ser más complicada. Para solventar esto propongo el siguiente script que he probado y funciona perfectamente:</p>

<div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;">kill -9 `ps -ef | grep -i nombreproceso | awk {'print $2'}`</pre></div></div>

<p>Si tenéis alguna otra solución más sencilla no dudéis en poner un comentario. Gracias.</p>
<h3  class="related_post_title">Quizá te pueda interesar:</h3><ul class="related_post"><li>28 de octubre, 2009 -- <a href="http://www.jonathanecheverria.com/2009/10/28/cambio-de-servidor-%c2%bfquieres-alojamiento" title="Cambio de servidor. ¿quieres alojamiento?">Cambio de servidor. ¿quieres alojamiento?</a></li><li>6 de noviembre, 2008 -- <a href="http://www.jonathanecheverria.com/2008/11/06/seguridad-informatica-domestica" title="Seguridad Informática doméstica">Seguridad Informática doméstica</a></li><li>5 de enero, 2009 -- <a href="http://www.jonathanecheverria.com/2009/01/05/configurar-impresora-virtual-imprimir-en-archivo-pdf" title="Configurar impresora virtual (imprimir en archivo pdf)">Configurar impresora virtual (imprimir en archivo pdf)</a></li><li>9 de julio, 2009 -- <a href="http://www.jonathanecheverria.com/2009/07/09/herramientas-de-virtualizacion-bochs-y-qemu" title="Herramientas de virtualización: Bochs y Qemu (2/7)">Herramientas de virtualización: Bochs y Qemu (2/7)</a></li><li>28 de enero, 2009 -- <a href="http://www.jonathanecheverria.com/2009/01/28/bill-gates-y-el-spam-el-spam-y-bill-gates" title="Bill Gates y el spam, el spam y Bill Gates">Bill Gates y el spam, el spam y Bill Gates</a></li><li>16 de enero, 2009 -- <a href="http://www.jonathanecheverria.com/2009/01/16/canita-brava-el-caldo-de-maria" title="Cañita Brava &#8211; El caldo de María">Cañita Brava &#8211; El caldo de María</a></li><li>8 de mayo, 2010 -- <a href="http://www.jonathanecheverria.com/2010/05/08/duelo-de-pianistas-4-manos-y-un-solo-piano" title="Duelo de &#8220;pianistas&#8221;: 4 manos y un solo piano.">Duelo de &#8220;pianistas&#8221;: 4 manos y un solo piano.</a></li><li>17 de febrero, 2010 -- <a href="http://www.jonathanecheverria.com/2010/02/17/comprar-ordenadores-en-la-tienda-del-barrio-en-la-de-toda-la-vida" title="Comprar ordenadores en la tienda del barrio, en la de toda la vida.">Comprar ordenadores en la tienda del barrio, en la de toda la vida.</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.jonathanecheverria.com/2009/01/07/matar-a-la-vez-varios-procesos-con-el-mismo-nombre/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Script eliminar archivos creados antes de X dias</title>
		<link>http://www.jonathanecheverria.com/2008/11/19/script-eliminar-archivos-creados-antes-de-x-dias</link>
		<comments>http://www.jonathanecheverria.com/2008/11/19/script-eliminar-archivos-creados-antes-de-x-dias#comments</comments>
		<pubDate>Wed, 19 Nov 2008 11:50:18 +0000</pubDate>
		<dc:creator>Jonathan Echeverria</dc:creator>
				<category><![CDATA[Scripting]]></category>
		<category><![CDATA[buscar archivos antiguos]]></category>
		<category><![CDATA[eliminar archivos viejos]]></category>
		<category><![CDATA[exec]]></category>
		<category><![CDATA[find + exec]]></category>
		<category><![CDATA[script eliminar archivos antiguos]]></category>
		<category><![CDATA[script find]]></category>

		<guid isPermaLink="false">http://www.jonathanecheverria.com/?p=258</guid>
		<description><![CDATA[Acabo de necesitar un script para eliminar todos los archivos creados antes de X dias, para realizar el mantenimiento de una carpeta en un servidor. El script que nos permite esto es el siguiente: find . -mtime +X -exec rm -rf &#123;&#125; \;  #(X es el número de dias) Este script busca en la carpeta &#8220;.&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p>Acabo de necesitar un script para eliminar todos los archivos creados antes de X dias, para realizar el mantenimiento de una carpeta en un servidor.</p>
<p>El script que nos permite esto es el siguiente:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">find</span> . <span style="color: #660033;">-mtime</span> +X <span style="color: #660033;">-exec</span> <span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #660033;">-rf</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span><span style="color: #7a0874; font-weight: bold;">&#125;</span> \;  <span style="color: #666666; font-style: italic;">#(X es el número de dias)</span></pre></div></div>

<p>Este script busca en la carpeta &#8220;.&#8221; los archivos no modificados hace más &#8220;X&#8221; dias, y los elimina sin pedir confirmación. Si en vez de los archivos modificados hace más de X dias, queremos los modificados hace &#8220;X&#8221; dias, quitamos el signo &#8220;+&#8221;. Si lo que queremos son los modificados hace menos de &#8220;X&#8221; dias, cambiamos el signo &#8220;+&#8221; por el signo &#8220;-&#8221;.</p>
<h3  class="related_post_title">Artículos relacionados:</h3><ul class="related_post"><li>29 de junio, 2010 -- <a href="http://www.jonathanecheverria.com/2010/06/29/find-exec-para-reemplazar-cadenas-en-ficheros" title="Find + exec, para reemplazar cadenas en ficheros">Find + exec, para reemplazar cadenas en ficheros</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.jonathanecheverria.com/2008/11/19/script-eliminar-archivos-creados-antes-de-x-dias/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Copias de seguridad con rsync</title>
		<link>http://www.jonathanecheverria.com/2008/09/19/copias-de-seguridad-con-rsync</link>
		<comments>http://www.jonathanecheverria.com/2008/09/19/copias-de-seguridad-con-rsync#comments</comments>
		<pubDate>Fri, 19 Sep 2008 16:13:46 +0000</pubDate>
		<dc:creator>Jonathan Echeverria</dc:creator>
				<category><![CDATA[Scripting]]></category>
		<category><![CDATA[backup gratis]]></category>
		<category><![CDATA[backups]]></category>
		<category><![CDATA[copias seguridad]]></category>
		<category><![CDATA[crontab]]></category>
		<category><![CDATA[pymes backup]]></category>
		<category><![CDATA[rsync]]></category>
		<category><![CDATA[rsync + crontab]]></category>
		<category><![CDATA[soluciones gratis backup]]></category>

		<guid isPermaLink="false">http://www.jonathanecheverria.com/?p=80</guid>
		<description><![CDATA[Es una práctica totalmente recomendada la realización de copias de seguridad o backups de nuestros archivos periódicamente, para evitar pérdidas de información, o mejor dicho, para que en el caso de que perdamos información, sea lo menos posible. Para ello existen en el mercado múltiples herramientas de backup, que en algunos casos tienen una complejidad [...]]]></description>
			<content:encoded><![CDATA[<p>Es una práctica totalmente recomendada la realización de copias de seguridad o backups de nuestros archivos periódicamente, para evitar pérdidas de información, o mejor dicho, para que en el caso de que perdamos información, sea lo menos posible.</p>
<p>Para ello existen en el mercado múltiples herramientas de backup, que en algunos casos tienen una complejidad exagerada y en otros un precio que pagar. Pero en determinadas ocasiones, por ejemplo para hacer una copia de seguridad de la carpeta de <em>mis documentos</em>, o de la <em>home</em>, existen otras formas de hacerlo.</p>
<p>Si lo que deseamos es hacer una copia incremental (solo se copian los archivos que no han sido modificados, si no existen se crean, y si han sido borrados se dejan) en ese momento, basta con teclear en un terminal lo siguiente:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">rsync <span style="color: #660033;">-av</span> directorio_origen directorio_destino</pre></div></div>

<p>Donde el directorio de destino puede ser cualquier disco duro externo que hayamos montado previamente, u otra partición, o donde queramos. Preferentemente se debe copiar a un disco externo por eso de si se rompe nuestro disco duro.</p>
<p>Pero si queremos automatizar el proceso a una determinada hora (por ejemplo todos los dias, al mediodia que estamos comiendo), podemos meter el comando rsync dentro del cron en UNIX. Para ello vamos a un terminal y tecleamos:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">crontab <span style="color: #660033;">-e</span></pre></div></div>

<p>De esta forma vemos las tareas que hay programadas para dicho usuario y añadimos la siguiente linea:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000;">25</span> <span style="color: #000000;">14</span> <span style="color: #000000; font-weight: bold;">*</span> <span style="color: #000000; font-weight: bold;">*</span> <span style="color: #000000; font-weight: bold;">*</span> rsync <span style="color: #660033;">-av</span> directorio_origen directorio_destino</pre></div></div>

<p>Así todos los días a las 14:25 se realizará una copia incremental.</p>
<h3  class="related_post_title">Quizá te pueda interesar:</h3><ul class="related_post"><li>17 de junio, 2009 -- <a href="http://www.jonathanecheverria.com/2009/06/17/actualizando-a-wordpress-2-8" title="Actualizando a Wordpress 2.8">Actualizando a Wordpress 2.8</a></li><li>24 de agosto, 2009 -- <a href="http://www.jonathanecheverria.com/2009/08/24/operacion-pandemia-mitos-gripe-porcina" title="Operación pandemia &#8211; Mitos gripe porcina">Operación pandemia &#8211; Mitos gripe porcina</a></li><li>13 de noviembre, 2008 -- <a href="http://www.jonathanecheverria.com/2008/11/13/arturo-sandoval-sextet-zaragoza" title="Arturo Sandoval Sextet &#8211; Zaragoza">Arturo Sandoval Sextet &#8211; Zaragoza</a></li><li>27 de agosto, 2008 -- <a href="http://www.jonathanecheverria.com/2008/08/27/urls-para-dar-de-alta-pgina-en" title="URLs para dar de alta página en buscadores">URLs para dar de alta página en buscadores</a></li><li>16 de agosto, 2009 -- <a href="http://www.jonathanecheverria.com/2009/08/16/se-acabaron-las-fiestas-y-las-vacaciones" title="Se acabaron las fiestas y las vacaciones">Se acabaron las fiestas y las vacaciones</a></li><li>11 de diciembre, 2008 -- <a href="http://www.jonathanecheverria.com/2008/12/11/el-raton-cumple-40-anos-y-lo-quieren-jubilar" title="El ratón cumple 40 años y lo quieren jubilar">El ratón cumple 40 años y lo quieren jubilar</a></li><li>4 de diciembre, 2008 -- <a href="http://www.jonathanecheverria.com/2008/12/04/estadisticas-jonathanecheverriacom" title="Estadísticas jonathanecheverria.com">Estadísticas jonathanecheverria.com</a></li><li>22 de octubre, 2008 -- <a href="http://www.jonathanecheverria.com/2008/10/22/truco-utilizando-google-cache-si-hemos-perdido-contenidos-en-nuestra-web" title="Truco: utilizando Google cache, si hemos perdido contenidos en nuestra web">Truco: utilizando Google cache, si hemos perdido contenidos en nuestra web</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.jonathanecheverria.com/2008/09/19/copias-de-seguridad-con-rsync/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Script para recuperar archivos que se han perdido</title>
		<link>http://www.jonathanecheverria.com/2008/07/23/script-para-recuperar-archivos-que-se</link>
		<comments>http://www.jonathanecheverria.com/2008/07/23/script-para-recuperar-archivos-que-se#comments</comments>
		<pubDate>Wed, 23 Jul 2008 11:43:00 +0000</pubDate>
		<dc:creator>Jonathan Echeverria</dc:creator>
				<category><![CDATA[Scripting]]></category>
		<category><![CDATA[buscar archivo eliminado]]></category>
		<category><![CDATA[restaurar archivo corrupto]]></category>
		<category><![CDATA[restaurar archivo eliminado]]></category>
		<category><![CDATA[script recuperar archivo]]></category>

		<guid isPermaLink="false">http://www.jonathanecheverria.com/2008/07/23/script-para-recuperar-archivos-que-se/</guid>
		<description><![CDATA[Si tratas de entrar a un archivo y no se abre porque se ha estropeado existe una forma de poder recuperarlo. Si el archivo era realmente importante lo que se puede hacer es escanear el disco duro por bloques buscando la informacion que contiene, alguna palabra que sea lo suficientemente especifica como para estar solo [...]]]></description>
			<content:encoded><![CDATA[<p>Si tratas de entrar a un archivo y no se abre porque se ha estropeado existe una forma de poder recuperarlo.</p>
<p>Si el archivo era realmente importante lo que se puede hacer es escanear el disco duro por bloques buscando la informacion que contiene, alguna palabra que sea lo suficientemente especifica como para estar solo en el archivo que acabas de perder.</p>
<p>El script es el siguiente:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">#!/usr/bin/python</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">os</span>
<span style="color: #ff7700;font-weight:bold;">for</span> i <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: #008000;">range</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">0</span>,<span style="color: #ff4500;">1000</span><span style="color: black;">&#41;</span>:
<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">&quot;Pasada por el bucle:&quot;</span>
<span style="color: #ff7700;font-weight:bold;">print</span> i
<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">&quot;==========================&quot;</span>
seek = i <span style="color: #66cc66;">*</span> <span style="color: #ff4500;">100000</span>
<span style="color: #dc143c;">os</span>.<span style="color: black;">system</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'rm /fich%s'</span> <span style="color: #66cc66;">%</span> <span style="color: #008000;">str</span><span style="color: black;">&#40;</span>i-<span style="color: #ff4500;">1</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
<span style="color: #dc143c;">os</span>.<span style="color: black;">system</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'dd if=/dev/sda3 of=/fich%s bs=512 count=100000 skip=%i'</span> <span style="color: #66cc66;">%</span> <span style="color: black;">&#40;</span><span style="color: #008000;">str</span><span style="color: black;">&#40;</span>i<span style="color: black;">&#41;</span>, seek,<span style="color: black;">&#41;</span> <span style="color: black;">&#41;</span>
<span style="color: #dc143c;">os</span>.<span style="color: black;">system</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;grep --binary-files=text -A 200 -B 200 -b '&lt;span style=&quot;</span>font-weight: bold<span style="color: #66cc66;">;</span><span style="color: #483d8b;">&quot;&gt;palabra que sabes que esta en el fichero y que no crees que vaya a estar en otro&lt;/span&gt;' /fich%s &amp;gt;&amp;gt; &lt;span style=&quot;</span>font-weight: bold<span style="color: #66cc66;">;</span><span style="color: #483d8b;">&quot;&gt;results.txt&lt;/span&gt;&quot;</span> <span style="color: #66cc66;">%</span> <span style="color: #008000;">str</span><span style="color: black;">&#40;</span>i<span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
<span style="color: #dc143c;">os</span>.<span style="color: black;">system</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'rm /fich%s'</span> <span style="color: #66cc66;">%</span> <span style="color: #008000;">str</span><span style="color: black;">&#40;</span>i<span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
<span style="color: #dc143c;">os</span>.<span style="color: black;">system</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'sync'</span><span style="color: black;">&#41;</span></pre></div></div>

<h3  class="related_post_title">Artículos relacionados:</h3><ul class="related_post"><li>29 de junio, 2010 -- <a href="http://www.jonathanecheverria.com/2010/06/29/find-exec-para-reemplazar-cadenas-en-ficheros" title="Find + exec, para reemplazar cadenas en ficheros">Find + exec, para reemplazar cadenas en ficheros</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.jonathanecheverria.com/2008/07/23/script-para-recuperar-archivos-que-se/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Programita para dar formato (identacion&#8230;) a archivo xml</title>
		<link>http://www.jonathanecheverria.com/2008/07/23/programita-para-dar-formato-identacion</link>
		<comments>http://www.jonathanecheverria.com/2008/07/23/programita-para-dar-formato-identacion#comments</comments>
		<pubDate>Wed, 23 Jul 2008 11:40:00 +0000</pubDate>
		<dc:creator>Jonathan Echeverria</dc:creator>
				<category><![CDATA[Scripting]]></category>
		<category><![CDATA[arreglar xml]]></category>
		<category><![CDATA[dar formato archivo xml]]></category>
		<category><![CDATA[formatear xml]]></category>
		<category><![CDATA[identar archivo xml]]></category>

		<guid isPermaLink="false">http://www.jonathanecheverria.com/2008/07/23/programita-para-dar-formato-identacion/</guid>
		<description><![CDATA[Con este programa podemos conseguir dar un formato legible a un archivo xml que esté sin identaciones, todo el código seguido. #!/usr/bin/python from xml.dom.ext import PrettyPrint from xml.dom.ext.reader.Sax import FromXmlFile import sys doc = FromXmlFile&#40;sys.argv&#91;1&#93;&#41; PrettyPrint&#40;doc, sys.stdout&#41; Hay que indicarle el archivo de entrada y redirigirlo a otro de salida. Quizá te pueda interesar:3 de [...]]]></description>
			<content:encoded><![CDATA[<p>Con este programa podemos conseguir dar un formato legible a un archivo xml que esté sin identaciones, todo el código seguido.</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">#!/usr/bin/python</span>
<span style="color: #ff7700;font-weight:bold;">from</span> <span style="color: #dc143c;">xml</span>.<span style="color: black;">dom</span>.<span style="color: black;">ext</span> <span style="color: #ff7700;font-weight:bold;">import</span> PrettyPrint
<span style="color: #ff7700;font-weight:bold;">from</span> <span style="color: #dc143c;">xml</span>.<span style="color: black;">dom</span>.<span style="color: black;">ext</span>.<span style="color: black;">reader</span>.<span style="color: black;">Sax</span> <span style="color: #ff7700;font-weight:bold;">import</span> FromXmlFile
<span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">sys</span>
doc = FromXmlFile<span style="color: black;">&#40;</span><span style="color: #dc143c;">sys</span>.<span style="color: black;">argv</span><span style="color: black;">&#91;</span><span style="color: #ff4500;">1</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span>
PrettyPrint<span style="color: black;">&#40;</span>doc, <span style="color: #dc143c;">sys</span>.<span style="color: black;">stdout</span><span style="color: black;">&#41;</span></pre></div></div>

<p>Hay que indicarle el archivo de entrada y redirigirlo a otro de salida.</p>
<h3  class="related_post_title">Quizá te pueda interesar:</h3><ul class="related_post"><li>11 de febrero, 2009 -- <a href="http://www.jonathanecheverria.com/2009/02/11/la-solucion-definitiva-para-la-crisis-economica" title="La solución definitiva para la crisis económica">La solución definitiva para la crisis económica</a></li><li>6 de abril, 2011 -- <a href="http://www.jonathanecheverria.com/2011/04/06/dizzy-gillespie-y-la-orquesta-de-las-naciones-unidas" title="Dizzy Gillespie y la Orquesta de las Naciones Unidas">Dizzy Gillespie y la Orquesta de las Naciones Unidas</a></li><li>28 de septiembre, 2009 -- <a href="http://www.jonathanecheverria.com/2009/09/28/%c2%bfque-es-mas-efectivo-adwords-o-un-enlace-en-un-buen-lugar" title="¿Qué es más efectivo&#8230;Google Adwords o un enlace en un buen lugar?">¿Qué es más efectivo&#8230;Google Adwords o un enlace en un buen lugar?</a></li><li>22 de julio, 2009 -- <a href="http://www.jonathanecheverria.com/2009/07/22/el-ballet-no-es-cosa-de-gays" title="El ballet no es cosa de gays">El ballet no es cosa de gays</a></li><li>8 de octubre, 2009 -- <a href="http://www.jonathanecheverria.com/2009/10/08/lo-que-tengo-en-la-cabeza-cumple-1-ano" title="Lo que tengo en la cabeza, cumple 1 año">Lo que tengo en la cabeza, cumple 1 año</a></li><li>17 de septiembre, 2009 -- <a href="http://www.jonathanecheverria.com/2009/09/17/para-ahorrar-agua-hay-que-mear-en-la-ducha" title="Para ahorrar agua, hay que mear en la ducha">Para ahorrar agua, hay que mear en la ducha</a></li><li>25 de mayo, 2009 -- <a href="http://www.jonathanecheverria.com/2009/05/25/la-musica" title="La música">La música</a></li><li>11 de mayo, 2009 -- <a href="http://www.jonathanecheverria.com/2009/05/11/la-pornografia-en-espana" title="La pornografía en España">La pornografía en España</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.jonathanecheverria.com/2008/07/23/programita-para-dar-formato-identacion/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

