<?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#"
	>

<channel>
	<title>Linux &#8211; Programador</title>
	<atom:link href="https://agcapa.es/category/linux/feed/" rel="self" type="application/rss+xml" />
	<link>https://agcapa.es</link>
	<description>Just another WordPress site</description>
	<lastBuildDate>Wed, 14 Apr 2021 18:05:58 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.7</generator>
<site xmlns="com-wordpress:feed-additions:1">130542897</site>	<item>
		<title>RAID 0, RAID 1, RAID 5, RAID 10 explicado con diagramas</title>
		<link>https://agcapa.es/raid-0-raid-1-raid-5-raid-10-explicado-con-diagramas/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Wed, 14 Apr 2021 17:08:31 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<guid isPermaLink="false">https://agcapa.es/?p=402</guid>

					<description><![CDATA[<p>RAID 0, RAID 1, RAID 5, RAID 10 explicado con diagramas por Ramesh Natarajan el 10 de agosto de 2010 RAID significa Matriz redundante de discos económicos (independientes). En la mayoría de situaciones, utilizará uno de los siguientes cuatro niveles de RAID. RAID 0 RAID 1 RAID 5 RAID 10 (también conocido como RAID 1&#8230;</p>
<p>La entrada <a rel="nofollow" href="https://agcapa.es/raid-0-raid-1-raid-5-raid-10-explicado-con-diagramas/">RAID 0, RAID 1, RAID 5, RAID 10 explicado con diagramas</a> se publicó primero en <a rel="nofollow" href="https://agcapa.es">Programador</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><strong>RAID 0, RAID 1, RAID 5, RAID 10 explicado con diagramas </strong></p>
<p>por Ramesh Natarajan el 10 de agosto de 2010</p>
<p>RAID significa Matriz redundante de discos económicos (independientes).</p>
<p>En la mayoría de situaciones, utilizará uno de los siguientes cuatro niveles de RAID.</p>
<ul>
<li>RAID 0</li>
<li>RAID 1</li>
<li>RAID 5</li>
<li>RAID 10 (también conocido como RAID 1 + 0)</li>
</ul>
<p>Este artículo explica la principal diferencia entre estos niveles de incursión junto con un diagrama fácil de entender.</p>
<p>En todos los diagramas que se mencionan a continuación:</p>
<ul>
<li>A, B, C, D, E y F: representa bloques</li>
<li>p1, p2 y p3: representa la paridad</li>
</ul>
<p><strong>NIVEL DE RAID 0 </strong></p>
<p><img loading="lazy" class="alignnone size-medium wp-image-403" src="https://agcapa.es/wp-content/uploads/2021/04/Captura-de-pantalla-2021-04-14-a-las-18.58.49-300x237.png" alt="" width="300" height="237" srcset="https://agcapa.es/wp-content/uploads/2021/04/Captura-de-pantalla-2021-04-14-a-las-18.58.49-300x237.png 300w, https://agcapa.es/wp-content/uploads/2021/04/Captura-de-pantalla-2021-04-14-a-las-18.58.49.png 471w" sizes="(max-width: 300px) 100vw, 300px" /><br />
Los siguientes son los puntos clave que debe recordar para el nivel RAID 0.</p>
<ul>
<li>Mínimo 2 discos.</li>
<li>Excelente rendimiento (ya que los bloques están rayados).</li>
<li>Sin redundancia (sin espejo, sin paridad).</li>
<li>No use esto para ningún sistema crítico.</li>
</ul>
<p><strong>NIVEL RAID 1 </strong></p>
<p><img loading="lazy" class="alignnone size-medium wp-image-404" src="https://agcapa.es/wp-content/uploads/2021/04/Captura-de-pantalla-2021-04-14-a-las-19.00.23-300x202.png" alt="" width="300" height="202" srcset="https://agcapa.es/wp-content/uploads/2021/04/Captura-de-pantalla-2021-04-14-a-las-19.00.23-300x202.png 300w, https://agcapa.es/wp-content/uploads/2021/04/Captura-de-pantalla-2021-04-14-a-las-19.00.23.png 581w" sizes="(max-width: 300px) 100vw, 300px" />Los siguientes son los puntos clave que debe recordar para el nivel 1 de RAID.</p>
<ul>
<li>Mínimo 2 discos.</li>
<li>Buen rendimiento (sin rayas, sin paridad).</li>
<li>Excelente redundancia (ya que los bloques se reflejan).</li>
</ul>
<p><strong>NIVEL DE RAID 5 </strong></p>
<p><img loading="lazy" class="alignnone size-medium wp-image-405" src="https://agcapa.es/wp-content/uploads/2021/04/Captura-de-pantalla-2021-04-14-a-las-19.01.12-300x203.png" alt="" width="300" height="203" srcset="https://agcapa.es/wp-content/uploads/2021/04/Captura-de-pantalla-2021-04-14-a-las-19.01.12-300x203.png 300w, https://agcapa.es/wp-content/uploads/2021/04/Captura-de-pantalla-2021-04-14-a-las-19.01.12.png 567w" sizes="(max-width: 300px) 100vw, 300px" /><br />
Los siguientes son los puntos clave que debe recordar para el nivel 5 de RAID.</p>
<ul>
<li>Mínimo 3 discos.</li>
<li>Buen rendimiento (ya que los bloques están rayados).</li>
<li>Buena redundancia (paridad distribuida).</li>
<li>La mejor opción rentable que proporciona tanto rendimiento como redundancia. Use esto para DB que está muy orientado a la lectura. Las operaciones de escritura serán lentas.</li>
</ul>
<p><strong>NIVEL DE RAID 10 </strong></p>
<p><img loading="lazy" class="alignnone size-medium wp-image-406" src="https://agcapa.es/wp-content/uploads/2021/04/Captura-de-pantalla-2021-04-14-a-las-19.02.00-300x155.png" alt="" width="300" height="155" srcset="https://agcapa.es/wp-content/uploads/2021/04/Captura-de-pantalla-2021-04-14-a-las-19.02.00-300x155.png 300w, https://agcapa.es/wp-content/uploads/2021/04/Captura-de-pantalla-2021-04-14-a-las-19.02.00.png 603w" sizes="(max-width: 300px) 100vw, 300px" />Los siguientes son los puntos clave para recordar para el nivel RAID 10.</p>
<ul>
<li>Mínimo 4 discos.</li>
<li>Esto también se denomina «franja de espejos».</li>
<li>Excelente redundancia (ya que los bloques se reflejan)</li>
<li>Excelente rendimiento (ya que los bloques están rayados)</li>
</ul>
<p>Si puede pagar el dólar, esta es la MEJOR opción para cualquier aplicación de misión crítica (especialmente bases de datos).</p>
<p>La entrada <a rel="nofollow" href="https://agcapa.es/raid-0-raid-1-raid-5-raid-10-explicado-con-diagramas/">RAID 0, RAID 1, RAID 5, RAID 10 explicado con diagramas</a> se publicó primero en <a rel="nofollow" href="https://agcapa.es">Programador</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">402</post-id>	</item>
		<item>
		<title>10 operadores de encadenamiento útiles en Linux con ejemplos prácticos</title>
		<link>https://agcapa.es/10-operadores-de-encadenamiento-utiles-en-linux-con-ejemplos-practicos/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Wed, 14 Apr 2021 17:04:22 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<guid isPermaLink="false">https://agcapa.es/?p=400</guid>

					<description><![CDATA[<p>10 operadores de encadenamiento útiles en Linux con ejemplos prácticos &#160; El encadenamiento de comandos de Linux significa combinar varios comandos y hacer que se ejecuten en función del comportamiento del operador utilizado entre ellos. El encadenamiento de comandos en Linux es algo así como si estuviera escribiendo scripts de shell cortos en el propio&#8230;</p>
<p>La entrada <a rel="nofollow" href="https://agcapa.es/10-operadores-de-encadenamiento-utiles-en-linux-con-ejemplos-practicos/">10 operadores de encadenamiento útiles en Linux con ejemplos prácticos</a> se publicó primero en <a rel="nofollow" href="https://agcapa.es">Programador</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><strong>10 operadores de encadenamiento útiles en Linux con ejemplos prácticos </strong></p>
<p>&nbsp;</p>
<p>El encadenamiento de comandos de Linux significa combinar varios comandos y hacer que se ejecuten en función del comportamiento del operador utilizado entre ellos. El encadenamiento de comandos en Linux es algo así como si estuviera escribiendo scripts de shell cortos en el propio shell y ejecutándolos directamente desde la terminal. El encadenamiento permite automatizar el proceso. Además, una máquina desatendida puede funcionar de una manera mucho más sistemática con la ayuda de operadores encadenados.</p>
<p>10 operadores de encadenamiento en Linux</p>
<p>Este artículo tiene como objetivo arrojar luz sobre los uso frecuente <strong>operadores de encadenamiento de comandos de </strong>, con descripciones breves y ejemplos correspondientes que seguramente aumentarán su productividad y le permitirán escribir códigos breves y significativos además de reducir la carga del sistema, en ocasiones.</p>
<ol>
<li><strong> Operador Ampersand (&amp;) </strong></li>
</ol>
<p>La función de &#8216; <strong>&amp; </strong>&#8216; es hacer que el comando se ejecute en segundo plano. Simplemente escriba el comando seguido de un espacio en blanco y &#8216; <strong>&amp; </strong>&#8216;. Puede ejecutar más de un comando en segundo plano, de una sola vez.</p>
<p>Ejecute un comando en segundo plano:</p>
<p>agcapa@localhost:~$ ping ­c5 www.agcapa.com &amp;</p>
<p>Ejecute dos comandos en segundo plano, simultáneamente:</p>
<p>root@localhost:/home/agcapa# apt-get update &amp; apt-get upgrade &amp;</p>
<ol start="2">
<li><strong> Operador de punto y coma (;) </strong></li>
</ol>
<p>El operador de punto y coma permite ejecutar varios comandos de una sola vez y la ejecución del comando se produce de forma secuencial.</p>
<p>root@localhost:/home/agcapa# apt-get update ; apt-get upgrade ; mkdir test</p>
<p>La combinación de comandos anterior ejecutará primero la <strong>actualización </strong>instrucción de , luego la <strong>actualización </strong>instrucción de y finalmente creará un &#8216; <strong>prueba </strong>directorio de &#8216; en el directorio de trabajo actual.</p>
<ol start="3">
<li><strong> Operador AND (&amp;&amp;) </strong></li>
</ol>
<p>El <strong>operador AND </strong>( <strong>&amp;&amp; </strong>) ejecutará el segundo comando solamente, si la ejecución del primer comando <strong>TIENE ÉXITO </strong>, es decir, el estado de salida del primer comando es <strong>0 </strong>. Este comando es muy útil para verificar el estado de ejecución del último comando.</p>
<p>Por ejemplo, quiero visitar el sitio web <strong>agcapa.com </strong>usando el comando de enlaces , en la terminal, pero antes necesito verificar si el host está en <strong>vivo </strong>o <strong>no </strong>.</p>
<p>root@localhost:/home/agcapa# ping -c3 www.agcapa.com &amp;&amp; links www.agcapa.com</p>
<ol start="4">
<li><strong> Operador OR (||) </strong></li>
</ol>
<p>El <strong>operador OR </strong>( <strong>|| </strong>) es muy parecido a una &#8216; <strong>else </strong>instrucción &#8216; en programación. El operador anterior le permite ejecutar el segundo comando solo si falla la ejecución del primer comando, es decir, el estado de salida del primer comando es &#8216; <strong>1 </strong>&#8216;.</p>
<p>Por ejemplo, quiero ejecutar &#8216; <strong>apt-get update </strong>&#8216; desde una cuenta que no sea root y si el primer comando falla, el segundo <strong>&#8216;links www.agcapa.com </strong>se ejecutará comando &#8216;.</p>
<p>agcapa@localhost:~$ apt-get update || links agcapa.com</p>
<p>En el comando anterior, dado que al <strong>usuario </strong>no se le permitió <strong>actualizar el </strong>sistema, significa que el estado de salida del primer comando es <strong>&#8216;1&#8217; </strong>y, por lo tanto el último comando &#8216; <strong>links agcapa.com </strong>, se ejecuta &#8216;.</p>
<p>¿Qué pasa si el primer comando se ejecuta con éxito, con un estado de salida &#8216; <strong>0 </strong>&#8216;? ¡Obviamente! El segundo comando no se ejecutará.</p>
<p>agcapa@localhost:~$ mkdir test || links agcapa.com</p>
<p>Aquí, el usuario crea una carpeta &#8216; <strong>prueba </strong>&#8216; en su directorio de inicio, para la cual el usuario está autorizado. El comando se ejecutó con éxito dando un estado de salida &#8216; <strong>0 </strong>&#8216; y, por lo tanto, la última parte del comando no se ejecuta.</p>
<ol start="5">
<li><strong> NO operador (!) </strong></li>
</ol>
<p>El <strong>operador NOT </strong>( <strong>! </strong>) Es muy parecido a una » <strong>excepto </strong>declaración «. Este comando ejecutará todo excepto la condición proporcionada. Para entender esto, cree un directorio &#8216; <strong>agcapa </strong>&#8216; en su directorio de inicio y &#8216; <strong>cd </strong>&#8216; en él.</p>
<p>agcapa@localhost:~$ mkdir agcapa agcapa@localhost:~$ cd agcapa</p>
<p>A continuación, cree varios tipos de archivos en la carpeta &#8216; <strong>agcapa </strong>&#8216;.</p>
<p>agcapa@localhost:~/agcapa$ touch a.doc b.doc a.pdf b.pdf a.xml b.xml a.html b.html</p>
<p>Vea que hemos creado todos los archivos nuevos dentro de la carpeta &#8216; <strong>agcapa </strong>&#8216;.</p>
<p>agcapa@localhost:~/agcapa$ ls   a.doc a.html a.pdf a.xml b.doc b.html b.pdf b.xml</p>
<p>Ahora elimine todos los archivos excepto el archivo &#8216; <strong>html </strong>&#8216; de una vez, de una manera inteligente.</p>
<p>agcapa@localhost:~/agcapa$ rm -r !(*.html)</p>
<p>Solo para verificar, última ejecución. Enumere todos los archivos disponibles usando el comando ls .</p>
<p>agcapa@localhost:~/agcapa$ ls   a.html b.html</p>
<ol start="6">
<li><strong> Operador Y &#8211; O (&amp;&amp; &#8211; ||) </strong></li>
</ol>
<p>El operador anterior es en realidad una combinación de operador &#8216; <strong>Y </strong>&#8216; y &#8216; <strong>O </strong>&#8216;. Es muy parecido a una » <strong>si-si no </strong>declaración «.</p>
<p>Por ejemplo, hagamos ping a <strong>agcapa.com </strong>, si el éxito se hace eco de &#8216; <strong>Verificado </strong>&#8216;, de lo contrario se hace eco de &#8216; <strong>Host inactivo </strong>&#8216;.</p>
<p>agcapa@localhost:~/agcapa$ ping -c3 www.agcapa.com &amp;&amp; echo «Verified» || echo «Host Down»</p>
<p><strong>Salida de muestra </strong></p>
<p>PING www.agcapa.com (212.71.234.61) 56(84) bytes of data. 64 bytes from www.agcapa.com (212.71.234.61): icmp_req=1 ttl=55 time=216 ms 64 bytes from www.agcapa.com (212.71.234.61): icmp_req=2 ttl=55 time=224 ms 64 bytes from www.agcapa.com (212.71.234.61): icmp_req=3 ttl=55 time=226 ms   &#8212; www.agcapa.com ping statistics &#8212; 3 packets transmitted, 3 received, 0% packet loss, time 2001ms rtt min/avg/max/mdev = 216.960/222.789/226.423/4.199 ms <strong>Verified</strong></p>
<p>Ahora, desconecte su conexión a Internet y vuelva a intentar el mismo comando.</p>
<p>agcapa@localhost:~/agcapa$ ping -c3 www.agcapa.com &amp;&amp; echo «verified» || echo «Host Down»</p>
<p><strong>Salida de muestra </strong></p>
<p>ping: unknown host www.agcapa.com <strong>Host Down</strong></p>
<ol start="7">
<li><strong> Operador de TUBERÍA (|) </strong></li>
</ol>
<p>Este <strong>PIPE </strong>operador es muy útil cuando la salida del primer comando actúa como entrada del segundo comando. Por ejemplo, canalice la salida de &#8216; <strong>ls -l </strong>&#8216; a &#8216; <strong>menos </strong>&#8216; y vea la salida del comando.</p>
<p>agcapa@localhost:~$ ls -l | less</p>
<ol start="8">
<li><strong> Operador de combinación de comandos {} </strong></li>
</ol>
<p>Combine dos o más comandos, el segundo comando depende de la ejecución del primer comando.</p>
<p>Por ejemplo, verifique si un directorio &#8216; <strong>bin </strong>&#8216; está disponible o no, y genere la salida correspondiente.</p>
<p>agcapa@localhost:~$ [ -d bin ] || { echo Directory does not exist, creating directory now.; mkdir bin; } &amp;&amp; echo Directory exists.</p>
<ol start="9">
<li><strong> Operador de precedencia () </strong></li>
</ol>
<p>El operador permite ejecutar el comando en orden de precedencia.</p>
<p>Command_x1 &amp;&amp;Command_x2 || Command_x3 &amp;&amp; Command_x4.</p>
<p>En el pseudocomando anterior, ¿qué si <strong>pasa Command_x1 </strong>falla? Ninguno de los <strong>comandos Command_x2 </strong>, <strong>Command_x3 </strong>, <strong>Command_x4 </strong>se ejecutaría, para esto usamos el <strong>Operador de precedencia </strong>, como:</p>
<p>(Command_x1 &amp;&amp;Command_x2) || (Command_x3 &amp;&amp; Command_x4)</p>
<p>En el pseudocomando anterior, si <strong>Command_x1 </strong>falla, <strong>Command_x2 </strong>también falla, pero la <strong>ejecución de Command_x3 </strong>y <strong>Command_x4 </strong>depende del estado de salida de <strong>Command_x3 </strong>.</p>
<ol start="10">
<li><strong> Operador de concatenación (\) </strong></li>
</ol>
<p>El <strong>operador de concatenación </strong>( <strong>\ </strong>) como el nombre lo especifica, se usa para concatenar comandos grandes en varias líneas en el shell. Por ejemplo, el siguiente comando abrirá el archivo de texto <strong>test (1) .txt </strong>.</p>
<p>agcapa@localhost:~/Downloads$ nano test\(1\).txt</p>
<p>&nbsp;</p>
<p>La entrada <a rel="nofollow" href="https://agcapa.es/10-operadores-de-encadenamiento-utiles-en-linux-con-ejemplos-practicos/">10 operadores de encadenamiento útiles en Linux con ejemplos prácticos</a> se publicó primero en <a rel="nofollow" href="https://agcapa.es">Programador</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">400</post-id>	</item>
		<item>
		<title>Linux: Reemplazar texto en archivos con sed</title>
		<link>https://agcapa.es/linux-reemplazar-texto-archivos-sed/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 03 Jan 2017 08:05:17 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<guid isPermaLink="false">http://agcapa.es/?p=343</guid>

					<description><![CDATA[<p>Si queremos buscar y reemplazar texto en entornos Linux, disponemos de varias herramientas para ello. Una de ellas es con el comando sed. El comando sed está presente en la mayoría de distribuciones de Linux y está pensado para manipular cadenas de texto. Si no disponemos del comando sed lo podemos instalar de la siguiente&#8230;</p>
<p>La entrada <a rel="nofollow" href="https://agcapa.es/linux-reemplazar-texto-archivos-sed/">Linux: Reemplazar texto en archivos con sed</a> se publicó primero en <a rel="nofollow" href="https://agcapa.es">Programador</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div>Si queremos <b>buscar y reemplazar</b> <b>texto </b>en entornos <b>Linux</b>, disponemos de varias herramientas para ello.</div>
<div></div>
<div>Una de ellas es con el comando sed.</div>
<div>
<div class="separator"></div>
<div class="separator"></div>
</div>
<div>El comando sed está presente en la mayoría de distribuciones de Linux y está pensado para manipular cadenas de texto.</div>
<div></div>
<div>Si no disponemos del comando sed lo podemos instalar de la siguiente forma:</div>
<div></div>
<div></div>
<ul>
<li>Para CentOS/RHEL: yum install sed</li>
<li>Para Debian/Ubuntu: apt-get install sed</li>
</ul>
<div></div>
<div><b>Sintaxis general y tres ejemplos para reemplazar texto en archivos:</b></div>
<div></div>
<div><u>Sintaxis general:</u></div>
<div><b> </b></div>
<div><b>sed -i &#8216;s/texto-a-buscar/texto-a-reemplazar/g&#8217; «Fichero o directorio»</b></div>
<div></div>
<div><u>Ejemplo 1:</u> Cambiamos el texto Sysadmit por SYSADMIT del interior del fichero: test.txt</div>
<div></div>
<div>[root@LINUX1 test]# <b>cat test.txt</b><br />
Sysadmit1<br />
1Sysadmit<br />
90Sysadmit82<br />
HSysadmitH21</div>
<div>[root@LINUX1 test]# <b>sed -i &#8216;s/Sysadmit/SYSADMIT/g&#8217; test.txt</b></div>
<div>[root@LINUX1 test]# <b>cat test.txt</b><br />
SYSADMIT1<br />
1SYSADMIT<br />
90SYSADMIT82<br />
HSYSADMITH21</div>
<div><u>Ejemplo 2:</u> Cambiamos el texto SYSADMIT por &#8211;SYSADMIT&#8211; en todos los ficheros *.txt a partir de la ruta /test/ de forma recursiva.</div>
<div></div>
<div>Para ello utilizaremos los siguientes comandos:</div>
<div></div>
<div>find: Nos realizará una búsqueda de todos los ficheros según el patrón definido.</div>
<div>xargs: Ejecutará un comando (en este caso sed) para cada resultado generado por el comando find.<br />
| : Pipe o tubería, en este caso la salida de find corresponderá a la entrada de sed.</div>
<div>sed: Realizará el «buscar-reemplazar».</div>
<div></div>
<p>[root@LINUX1 test]# <b>pwd</b><br />
/test</p>
<p>[root@LINUX1 test]# <b>du -ah</b><br />
4.0K    ./new/test.txt<br />
8.0K    ./new<br />
4.0K    ./test.txt<br />
16K     .</p>
<p>[root@LINUX1 test]# <b>cat ./new/test.txt</b><br />
SYSADMIT1<br />
1SYSADMIT<br />
90SYSADMIT82<br />
HSYSADMITH21</p>
<p>[root@LINUX1 test]# <b>cat ./test.txt</b><br />
SYSADMIT1<br />
1SYSADMIT<br />
90SYSADMIT82<br />
HSYSADMITH21</p>
<p>[root@LINUX1 test]# <b>find /test/ -name «*.txt» -print | xargs sed -i «s/SYSADMIT/&#8211;SYSADMIT&#8211;/g»</b></p>
<p>[root@LINUX1 test]# <b>cat ./new/test.txt</b><br />
&#8211;SYSADMIT&#8211;1<br />
1&#8211;SYSADMIT&#8211;<br />
90&#8211;SYSADMIT&#8211;82<br />
H&#8211;SYSADMIT&#8211;H21</p>
<p>[root@LINUX1 test]# <b>cat ./test.txt</b><br />
&#8211;SYSADMIT&#8211;1<br />
1&#8211;SYSADMIT&#8211;<br />
90&#8211;SYSADMIT&#8211;82<br />
H&#8211;SYSADMIT&#8211;H21</p>
<p><u>Ejemplo 3:</u> Cambiamos una URL por otra del interior de un fichero de texto (test.txt).</p>
<p>El problema de las URLs es que contienen el carácter: «/».</p>
<p>El carácter «/», sed lo utiliza para definir el texto original y el texto a reemplazar.</p>
<p>En el siguiente ejemplo, reemplazaremos la URL:</p>
<p>http://sysadmit.com</p>
<p>por:</p>
<p>http://www.sysadmit.com/p/faq-libros.html</p>
<p>dentro del fichero: test.txt</p>
<p>Para ello, utilizaremos el caracter: «%»</p>
<p>[root@LINUX1 test]# <b>cat test.txt</b><br />
http://sysadmit.com</p>
<p>[root@LINUX1 test]# <b>sed -i «s%http://sysadmit.com%http://www.sysadmit.com/p/faq-libros.html%g» «test.txt»</b></p>
<p>[root@LINUX1 test]# <b>cat test.txt</b><br />
http://www.sysadmit.com/p/faq-libros.html</p>
<p>La entrada <a rel="nofollow" href="https://agcapa.es/linux-reemplazar-texto-archivos-sed/">Linux: Reemplazar texto en archivos con sed</a> se publicó primero en <a rel="nofollow" href="https://agcapa.es">Programador</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">343</post-id>	</item>
		<item>
		<title>Aumentar la swap en GNU/Linux</title>
		<link>https://agcapa.es/aumentar-la-swap-en-gnulinux/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 13 Oct 2015 15:29:17 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<guid isPermaLink="false">http://agcapa.es/?p=314</guid>

					<description><![CDATA[<p>En algunas ocasiones es necesario que nuestro GNU/Linux tenga mas swap, ya sea porque tiene mas aplicaciones o lo que fuese, entonces lo que podemos hacer es aumentar el tamaño de la swap, antes de empezar comprobamos cuanto de swap tenemos con el siguiente comando: # grep SwapTotal /proc/meminfo SwapTotal:     2096440 kB Ahora empezemos a&#8230;</p>
<p>La entrada <a rel="nofollow" href="https://agcapa.es/aumentar-la-swap-en-gnulinux/">Aumentar la swap en GNU/Linux</a> se publicó primero en <a rel="nofollow" href="https://agcapa.es">Programador</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>En algunas ocasiones es necesario que nuestro GNU/Linux tenga mas swap, ya sea porque tiene mas aplicaciones o lo que fuese, entonces lo que podemos hacer es aumentar el tamaño de la swap, antes de empezar comprobamos cuanto de swap tenemos con el siguiente comando:</p>
<p># grep SwapTotal /proc/meminfo<br />
SwapTotal:     2096440 kB</p>
<p>Ahora empezemos a asiganrle mas swap, para ello creamos un archivo con el comnado dd, dicho archivo actuara como swap, claro seria recomendable tener una particion, pero bueno asumimos que ya no tenemos mas particiones.</p>
<p># dd if=/dev/zero of=/mnt/swap_extra bs=1M count=2048<br />
2048+0 records in<br />
2048+0 records out<br />
2147483648 bytes (2,1 GB) copied, 25,3026 seconds, 84,9 MB/s</p>
<p>Donde:</p>
<ul>
<li>count -&gt; define el tamaño del fichero</li>
<li>bs -&gt; define el tamaño del bloque</li>
</ul>
<p>Hemos creado un archivo de 2GB dentro del directorio /mnt, ahora modificamos los permisos</p>
<p># chmod 600 /mnt/swap_extra</p>
<p>Formateamos el fichero swap_extra para que actue como swap</p>
<p># mkswap /mnt/swap_extra<br />
Configurando espacio de intercambio versión 1, tamaño = 2147479 kB</p>
<p>Ahora solo nos queda activarlo</p>
<p># swapon /mnt/swap_extra</p>
<p>SI quisiremoas desactivarlo simplemente ejecutamos</p>
<p># swapoff /mnt/swap_extra</p>
<p>Ahora debemos editar el fstab para que cuando la maquina se inicie carge la swap adicional, para ello agregamos  al final del archivo lo siguiente:</p>
<p>/mnt/swap_extra         none                    swap    sw              0 0</p>
<p>Con esto ya tenemos 2GB mas de swap … y lo verificamos con el comando</p>
<p>siguiente</p>
<p># grep SwapTotal /proc/meminfo<br />
SwapTotal:     4193584 kB</p>
<p>La entrada <a rel="nofollow" href="https://agcapa.es/aumentar-la-swap-en-gnulinux/">Aumentar la swap en GNU/Linux</a> se publicó primero en <a rel="nofollow" href="https://agcapa.es">Programador</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">314</post-id>	</item>
		<item>
		<title>Linux: Listar procesos por % cpu o uso de memoria</title>
		<link>https://agcapa.es/linux-listar-procesos-por-cpu-o-uso-de-memoria/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Mon, 24 Aug 2015 08:10:50 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<guid isPermaLink="false">http://agcapa.es/?p=311</guid>

					<description><![CDATA[<p>Con estas dos secuencias de comandos podréis ver de un modo rápido y sencillo los procesos ordenados por uso (%) de CPU y memoria. Por supuesto no es necesario (ni práctico) escribir el comando completo en la shell cada vez que lo queráis ejecutar, os recomiendo crear un alias específico para cada uno de ellos.&#8230;</p>
<p>La entrada <a rel="nofollow" href="https://agcapa.es/linux-listar-procesos-por-cpu-o-uso-de-memoria/">Linux: Listar procesos por % cpu o uso de memoria</a> se publicó primero en <a rel="nofollow" href="https://agcapa.es">Programador</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Con estas dos secuencias de comandos podréis ver de un modo rápido y sencillo los procesos ordenados por uso (%) de CPU y memoria. Por supuesto no es necesario (ni práctico) escribir el comando completo en la shell cada vez que lo queráis ejecutar, os recomiendo <a title="alias en Linux" href="http://rm-rf.es/como-crear-atajos-de-teclados-en-linux-bashrc/" target="_blank" rel="noopener noreferrer">crear un alias</a> específico para cada uno de ellos.</p>
<p>Listar procesos por % cpu, veréis que eliminamos aquellos que usan 0.0 de CPU con <a title="Comando sed" href="http://rm-rf.es/sobre/sed/" target="_blank" rel="noopener noreferrer">sed</a> (sed ‘/^ 0.0 /d):</p>
<pre>ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu | sed '/^ 0.0 /d'</pre>
<p>Ejemplo:</p>
<pre>$ ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu | sed '/^ 0.0 /d'
%CPU CPU  NI S     TIME COMMAND
0.2   -   0 S 00:00:24 metacity
0.2   -   0 S 00:00:00 /usr/bin/python /usr/bin/terminator
0.2   -   0 S 00:00:28 gnome-screensaver
0.2   -   0 S 00:00:31 gnome-panel
4.6   -   0 S 00:08:23 /usr/bin/pulseaudio --start
7.4   -   0 S 00:13:24 /usr/X11R6/bin/X :0 -br -audit 0 -auth /var/lib/gdm/:0.Xauth -nolisten tcp vt7
7.5   -   0 S 00:04:31 rhythmbox
14.4   -   0 S 00:08:50 /usr/lib/firefox-3.5.4/firefox-3.5</pre>
<p>Listar procesos por uso de memoria (en KB):</p>
<pre>ps -e -orss=,args= | sort -b -k1,1n | pr -TW$COLUMNS</pre>
<p>Ejemplo (reducido):</p>
<pre>$ ps -e -orss=,args= | sort -b -k1,1n | pr -TW$COLUMNS
23964 gnome-panel
26168 nautilus
26256 /usr/bin/python /usr/bin/terminator
58340 /usr/X11R6/bin/X :0 -br -audit 0 -auth /var/lib/gdm/:0.Xauth -nolisten tcp vt7
58728 rhythmbox
128736 /usr/lib/firefox-3.5.4/firefox-3.5
</pre>
<p>La entrada <a rel="nofollow" href="https://agcapa.es/linux-listar-procesos-por-cpu-o-uso-de-memoria/">Linux: Listar procesos por % cpu o uso de memoria</a> se publicó primero en <a rel="nofollow" href="https://agcapa.es">Programador</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">311</post-id>	</item>
		<item>
		<title>Archivos de configuración y registros de servicios de Parallels Plesk para Linux</title>
		<link>https://agcapa.es/archivos-de-configuracion-y-registros-de-servicios-de-parallels-plesk-para-linux/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Thu, 18 Jun 2015 11:54:40 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<guid isPermaLink="false">http://agcapa.es/?p=301</guid>

					<description><![CDATA[<p>APLICABLE A: Plesk for Linux/Unix Notas de la versión En este artículo se proporciona información relacionada con los servicios con los que interactúa Parallels Plesk. A continuación se muestran las ubicaciones de los archivos de registro y la configuración de estos servicios, lo que puede resultar útil para la resolución de incidencias. Consulte la versión&#8230;</p>
<p>La entrada <a rel="nofollow" href="https://agcapa.es/archivos-de-configuracion-y-registros-de-servicios-de-parallels-plesk-para-linux/">Archivos de configuración y registros de servicios de Parallels Plesk para Linux</a> se publicó primero en <a rel="nofollow" href="https://agcapa.es">Programador</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div id="ArticleAppliesTo-19825"><strong>APLICABLE A:</strong></p>
<div class="articleApplies">
<ul>
<li>Plesk for Linux/Unix</li>
</ul>
</div>
</div>
<div class="article-internal-flag"></div>
<div id="article-content">
<h2>Notas de la versión</h2>
<p>En este artículo se proporciona información relacionada con los servicios con los que interactúa Parallels Plesk. A continuación se muestran las ubicaciones de los archivos de registro y la configuración de estos servicios, lo que puede resultar útil para la resolución de incidencias.</p>
<p>Consulte la versión previa de este artículo:</p>
<ul>
<li><a href="http://kb.sp.parallels.com/es/122458">122458</a> Archivos de configuración y registros de servicios de Parallels Plesk para Linux (Plesk 11.5)</li>
</ul>
<h2>Servicios</h2>
<h3>Panel de control</h3>
<ul>
<li>Registros
<ul>
<li>Registro de errores: <code>/var/log/sw-cp-server/error_log</code> y <code>/var/log/sw-cp-server/sw-engine.log</code></li>
<li>Registro de accesos: <code>/usr/local/psa/admin/logs/httpsd_access_log</code></li>
<li>Registro de Plesk: <code>/usr/local/psa/admin/logs/panel.log</code></li>
</ul>
</li>
<li>Servicios
<ul>
<li>Detener: <code>/etc/init.d/psa stop</code></li>
<li>Iniciar: <code>/etc/init.d/psa start</code></li>
<li>Reiniciar: <code>/etc/init.d/psa restart</code></li>
</ul>
</li>
<li>Configuración
<ul>
<li>Configuración PHP: <code>/usr/local/psa/admin/conf/php.ini</code></li>
<li>Configuración de Plesk: <code>/usr/local/psa/admin/conf/panel.ini</code></li>
<li>Configuración del servidor web: <code>/etc/sw-cp-server/conf.d/plesk.conf</code></li>
</ul>
</li>
</ul>
<h3>Web Presence Builder</h3>
<ul>
<li>Registros
<ul>
<li>Registro de errores: <code>/usr/local/psa/admin/logs/sitebuilder.log</code></li>
<li>Registros de instalación o actualización: <code>/usr/local/sb/tmp/</code></li>
</ul>
</li>
<li>Ningún control del servicio (operando mediante el servicio sw-cp-server)</li>
<li>Configuración
<ul>
<li><code>/usr/local/sb/config</code></li>
<li><code>/etc/sw-cp-server/conf.d/plesk.conf</code></li>
<li><code>/usr/local/psa/admin/conf/php.ini</code></li>
</ul>
</li>
</ul>
<h3>SSO</h3>
<ul>
<li>Registros
<ul>
<li>Registro de errores: <code>/var/log/sw-cp-server/error_log</code></li>
<li>Registro de SSO: <code>/var/log/sso/sso.log</code></li>
</ul>
</li>
<li>Servicios
<ul>
<li>Ningún control del servicio (opera mediante el servicio sw-cp-server)</li>
<li>Configuración de gestión: <code>/usr/local/psa/bin/sso</code></li>
</ul>
</li>
<li>Configuración
<ul>
<li><code>/etc/sso/sso_config.ini</code></li>
<li><code>/etc/sw-cp-server/conf.d/sso.inc</code></li>
</ul>
</li>
</ul>
<h3>Administrador de backups</h3>
<ul>
<li>Registros
<ul>
<li>Registros de backup: <code>/usr/local/psa/PMM/logs/backup-&lt;datetime&gt;</code></li>
<li>Registro de restauraciones: <code>/usr/local/psa/PMM/logs/restore-&lt;datetime&gt;</code></li>
</ul>
</li>
<li>La funcionalidad es controlada por el servicio de panel de control de Plesk</li>
<li>Configuración
<ul>
<li><code>/etc/psa/psa.conf</code></li>
</ul>
</li>
</ul>
<h3>Administrador de migraciones</h3>
<ul>
<li>Registros
<ul>
<li><code>/usr/local/psa/PMM/logs/migration-&lt;datetime&gt;</code></li>
</ul>
</li>
<li>La funcionalidad es controlada por el servicio de panel de control de Plesk.</li>
</ul>
<h3>Administrador de Health Monitor (control de estado del servidor)</h3>
<ul>
<li>Registros
<ul>
<li><code>/usr/local/psa/admin/logs/health-alarm.log</code></li>
</ul>
</li>
<li>Servicios
<ul>
<li>Detener: <code>/etc/init.d/sw-collectd stop</code></li>
<li>Iniciar: <code>/etc/init.d/sw-collectd start</code></li>
<li>Reiniciar: <code>/etc/init.d/sw-collectd restart</code></li>
</ul>
</li>
<li>Configuración
<ul>
<li><code>/usr/local/psa/admin/conf/health-config.xml</code></li>
<li><code>/usr/local/psa/var/custom-health-config.xml</code></li>
<li><code>/etc/sw-collectd/collectd.conf</code></li>
</ul>
</li>
</ul>
<h3>Daemon de notificaciones de Health Monitor</h3>
<ul>
<li>Registros
<ul>
<li><code>/usr/local/psa/admin/logs/health-alarm.log</code></li>
</ul>
</li>
<li>Servicios
<ul>
<li>Detener: <code>/etc/init.d/psa-health-monitor-notificationd stop</code></li>
<li>Iniciar: <code>/etc/init.d/psa-health-monitor-notificationd start</code></li>
<li>Reiniciar: <code>/etc/init.d/psa-health-monitor-notificationd restart</code></li>
</ul>
</li>
<li>Configuración
<ul>
<li><code>/usr/local/psa/admin/conf/health-config.xml</code></li>
<li><code>/usr/local/psa/var/custom-health-config.xml</code></li>
</ul>
</li>
</ul>
<h3>MySQL</h3>
<ul>
<li>Registros
<ul>
<li><code>/var/log/mysqld.log</code></li>
</ul>
</li>
<li>Servicios
<ul>
<li>Detener: <code>/etc/init.d/mysqld stop</code></li>
<li>Iniciar: <code>/etc/init.d/mysqld start</code></li>
<li>Reiniciar: <code>/etc/init.d/mysqld restart</code></li>
</ul>
</li>
<li>Configuración
<ul>
<li><code>/etc/my.cnf</code></li>
<li><code>/etc/mysql/my.cnf</code> (Debian/Ubuntu)</li>
</ul>
</li>
</ul>
<h3>PostgreSQL</h3>
<ul>
<li>Registros
<ul>
<li><code>/var/lib/pgsql/pgstartup.log</code></li>
</ul>
</li>
<li>Servicios
<ul>
<li>Detener: <code>/etc/init.d/postgresql stop</code></li>
<li>Iniciar: <code>/etc/init.d/postgresql start</code></li>
<li>Reiniciar: <code>/etc/init.d/postgresql restart</code></li>
</ul>
</li>
<li>Configuración
<ul>
<li><code>/var/lib/pgsql/data/postgresql.conf</code></li>
</ul>
</li>
</ul>
<h3>Apache</h3>
<ul>
<li>Registros
<ul>
<li>Registros de errores y acceso global: <code>/var/log/httpd/</code></li>
<li>Registros de dominio: <code>/var/www/vhosts/&lt;domain&gt;/logs</code></li>
</ul>
</li>
<li>Servicios
<ul>
<li>Detener: <code>/etc/init.d/httpd stop</code></li>
<li>Iniciar: <code>/etc/init.d/httpd start</code></li>
<li>Reiniciar: <code>/etc/init.d/httpd restart</code></li>
</ul>
</li>
<li>Configuración
<ul>
<li><code>/etc/httpd/conf/httpd.conf</code></li>
<li><code>/etc/httpd/conf.d/zz010_psa_httpd.conf</code> (incluye los archivos de configuración generados con la configuración del servidor y del resto de hosts virtuales)</li>
</ul>
</li>
<li><strong>NOTA:</strong> En SuSE, Debian y Ubuntu, el servicio se denomina «apache2». La ruta a estos registros es <code>/var/log/apache2 y la ruta a sus archivos de configuración es <code>/etc/apache2</code>.</code></li>
</ul>
<h3><code>NGINX</code></h3>
<ul>
<li><code>Registros </code>
<ul>
<li><code>Registro de errores: <code>/var/log/nginx/error.log</code></code></li>
<li><code>Registro de accesos: <code>/var/log/nginx/access.log</code></code></li>
<li><code>Registros de dominio: <code>/var/www/vhosts/&lt;domain&gt;/logs/proxy_access*_log</code></code></li>
</ul>
</li>
<li><code>Servicios </code>
<ul>
<li><code>Detener: <code>/etc/init.d/nginx stop</code></code></li>
<li><code>Iniciar: <code>/etc/init.d/nginx start</code></code></li>
<li><code>Reiniciar: <code>/etc/init.d/nginx restart</code></code></li>
<li><code>NOTA: Para desactivar nginx, vaya a "Herramientas y configuración &gt; Administración de servicios" y detenga nginx desde allí.</code></li>
</ul>
</li>
<li><code>Configuración </code>
<ul>
<li><code><code>/etc/nginx/nginx.conf</code></code></li>
<li><code><code>/etc/nginx/conf.d/zz010_psa_nginx.conf</code> (incluye los archivos de configuración generados con la configuración del servidor y del resto de hosts virtuales)</code></li>
</ul>
</li>
</ul>
<h3><code>Tomcat</code></h3>
<ul>
<li><code>Registros </code>
<ul>
<li><code><code>/var/log/tomcat5/*</code></code></li>
</ul>
</li>
<li><code>Servicios </code>
<ul>
<li><code>Detener: <code>/etc/init.d/tomcat5 stop</code></code></li>
<li><code>Iniciar: <code>/etc/init.d/tomcat5 start</code></code></li>
<li><code>Reiniciar: <code>/etc/init.d/tomcat5 restart</code></code></li>
</ul>
</li>
<li><code>Configuración </code>
<ul>
<li><code><code>/etc/tomcat5/server.xml</code></code></li>
</ul>
</li>
</ul>
<h3><code>FTP</code></h3>
<ul>
<li><code>Registros </code>
<ul>
<li><code><code>/usr/local/psa/var/log/xferlog</code></code></li>
<li><code><code>/var/log/secure</code></code></li>
</ul>
</li>
<li><code>Ningún control de servicios (opera mediante el servicio xinetd)</code></li>
<li><code>Configuración </code>
<ul>
<li><code><code>/etc/xinetd.d/ftp_psa</code></code></li>
<li><code><code>/etc/proftpd.conf</code></code></li>
<li><code><code>/etc/proftpd.include</code></code></li>
</ul>
</li>
</ul>
<h3><code>xinetd</code></h3>
<ul>
<li><code>Registros </code>
<ul>
<li><code><code>/var/log/messages</code></code></li>
</ul>
</li>
<li><code>Servicios </code>
<ul>
<li><code>Detener: <code>/etc/init.d/xinetd stop</code></code></li>
<li><code>Iniciar: <code>/etc/init.d/xinetd start</code></code></li>
<li><code>Reiniciar: <code>/etc/init.d/xinetd restart</code></code></li>
</ul>
</li>
<li><code>Configuración </code>
<ul>
<li><code><code>/etc/xinetd.conf</code></code></li>
<li><code><code>/etc/xinetd.d/*</code> (se ignoran los archivos que contengan "." en el nombre)</code></li>
</ul>
</li>
</ul>
<h3><code>BIND</code></h3>
<ul>
<li><code>Registros </code>
<ul>
<li><code><code>/var/log/messages</code></code></li>
</ul>
</li>
<li><code>Servicios </code>
<ul>
<li><code>Detener: <code>/etc/init.d/named stop</code></code></li>
<li><code>Iniciar: <code>/etc/init.d/named start</code></code></li>
<li><code>Reiniciar: <code>/etc/init.d/named restart</code></code></li>
</ul>
</li>
<li><code>Configuración </code>
<ul>
<li><code><code>/etc/named.conf</code></code></li>
</ul>
</li>
<li><code><strong>NOTA:</strong> En Debian y Ubuntu, el servicio se denomina "bind9."</code></li>
</ul>
<h3><code>Courier-IMAP</code></h3>
<ul>
<li><code>Registros </code>
<ul>
<li><code><code>/usr/local/psa/var/log/maillog</code></code></li>
</ul>
</li>
<li><code>Servicios </code>
<ul>
<li><code>Detener: <code>/etc/init.d/courier-imap stop</code></code></li>
<li><code>Iniciar: <code>/etc/init.d/courier-imap start</code></code></li>
<li><code>Reiniciar: <code>/etc/init.d/courier-imap restart</code></code></li>
</ul>
</li>
<li><code>Configuración </code>
<ul>
<li><code><code>/etc/courier-imap/imapd</code></code></li>
<li><code><code>/etc/courier-imap/imapd-ssl</code></code></li>
<li><code><code>/etc/courier-imap/pop3d</code></code></li>
<li><code><code>/etc/courier-imap/pop3d-ssl</code></code></li>
</ul>
</li>
</ul>
<h3><code>Postfix</code></h3>
<ul>
<li><code>Registros </code>
<ul>
<li><code><code>/usr/local/psa/var/log/maillog</code></code></li>
</ul>
</li>
<li><code>Servicios </code>
<ul>
<li><code>Detener: <code>/etc/init.d/postfix stop</code></code></li>
<li><code>Iniciar: <code>/etc/init.d/postfix start</code></code></li>
<li><code>Reiniciar: <code>/etc/init.d/postfix restart</code></code></li>
</ul>
</li>
<li><code>Configuración </code>
<ul>
<li><code><code>/etc/postfix/master.cf</code></code></li>
<li><code><code>/etc/postfix/main.cf</code></code></li>
</ul>
</li>
</ul>
<h3><code>Qmail</code></h3>
<ul>
<li><code>Registros </code>
<ul>
<li><code><code>/usr/local/psa/var/log/maillog</code></code></li>
</ul>
</li>
<li><code>Servicios </code>
<ul>
<li><code>Detener: <code>/etc/init.d/qmail stop</code></code></li>
<li><code>Iniciar: <code>/etc/init.d/qmail start</code></code></li>
<li><code>Reiniciar: <code>/etc/init.d/qmail restart</code></code></li>
</ul>
</li>
<li><code>Configuración </code>
<ul>
<li><code>Archivos de control en <code>/var/qmail/control/</code></code></li>
<li><code><code>/etc/xinetd.d/smtp_psa</code></code></li>
<li><code><code>/etc/xinetd.d/smtps_psa</code></code></li>
<li><code><code>/etc/xinetd.d/submission_psa</code></code></li>
</ul>
</li>
</ul>
<h3><code>Horde</code></h3>
<ul>
<li><code>Registros </code>
<ul>
<li><code>Registro de errores: <code>/var/log/psa-horde/psa-horde.log</code></code></li>
</ul>
</li>
<li><code>Ningún control de servicios (opera mediante el servidor web Apache)</code></li>
<li><code>Configuración </code>
<ul>
<li><code><code>/etc/psa-webmail/horde/horde.conf</code></code></li>
<li><code><code>/etc/psa-webmail/horde/horde/conf.php</code></code></li>
</ul>
</li>
</ul>
<h3><code>Roundcube</code></h3>
<ul>
<li><code>Registros </code>
<ul>
<li><code>Registro de errores: <code>/var/log/plesk-roundcube/errors</code></code></li>
</ul>
</li>
<li><code>Ningún control de servicios (opera mediante el servidor web Apache)</code></li>
<li><code>Configuración </code>
<ul>
<li><code><code>/etc/psa-webmail/roundcube/*</code></code></li>
</ul>
</li>
</ul>
<h3><code>Mailman</code></h3>
<ul>
<li><code>Registros </code>
<ul>
<li><code><code>/var/log/mailman/*</code></code></li>
</ul>
</li>
<li><code>Servicios </code>
<ul>
<li><code>Detener: <code>/etc/init.d/mailman stop</code></code></li>
<li><code>Iniciar: <code>/etc/init.d/mailman start</code></code></li>
<li><code>Reiniciar: <code>/etc/init.d/mailman restart</code></code></li>
</ul>
</li>
<li><code>Configuración </code>
<ul>
<li><code><code>/etc/httpd/conf.d/mailman.conf</code></code></li>
<li><code><code>/usr/lib/mailman/Mailman/mm_cfg.py</code></code></li>
<li><code><code>/etc/mailman/sitelist.cfg</code></code></li>
</ul>
</li>
</ul>
<h3><code>SpamAssassin</code></h3>
<ul>
<li><code>Registros </code>
<ul>
<li><code><code>/usr/local/psa/var/log/maillog</code></code></li>
</ul>
</li>
<li><code>Servicios </code>
<ul>
<li><code>Detener: <code>/etc/init.d/spamassassin stop</code></code></li>
<li><code>Iniciar: <code>/etc/init.d/spamassassin start</code></code></li>
<li><code>Reiniciar: <code>/etc/init.d/spamassassin restart</code></code></li>
</ul>
</li>
<li><code>Configuración </code>
<ul>
<li><code><code>/etc/spamassassin/local.cf</code></code></li>
<li><code><code>/var/qmail/mailnames/&lt;domain&gt;/&lt;mailbox&gt;/.spamassassin/user_prefs</code></code></li>
</ul>
</li>
</ul>
<h3><code>Parallels Premium Antivirus</code></h3>
<ul>
<li><code>Registros: </code>
<ul>
<li><code><code>/usr/local/psa/var/log/maillog</code></code></li>
<li><code><code>/var/drweb/log/*</code></code></li>
</ul>
</li>
<li><code>Control de servicios: </code>
<ul>
<li><code>Detener: <code>/etc/init.d/drwebd stop</code></code></li>
<li><code>Iniciar: <code>/etc/init.d/drwebd start</code></code></li>
<li><code>Reiniciar: <code>/etc/init.d/drwebd restart</code></code></li>
</ul>
</li>
<li><code>Configuración: </code>
<ul>
<li><code><code>/etc/drweb/*</code></code></li>
</ul>
</li>
</ul>
<h3><code>Kaspersky antivirus</code></h3>
<ul>
<li><code>Registros: </code>
<ul>
<li><code><code>/usr/local/psa/var/log/maillog</code></code></li>
</ul>
</li>
<li><code>Control de servicios: </code>
<ul>
<li><code>Detener: <code>/etc/init.d/kavehost stop</code></code></li>
<li><code>Iniciar: <code>/etc/init.d/kavehost start</code></code></li>
<li><code>Reiniciar: <code>/etc/init.d/kavehost restart</code></code></li>
</ul>
</li>
<li><code>Configuración: </code>
<ul>
<li><code><code>/opt/kav/sdk8l3/etc/kav-handler.cfg</code></code></li>
<li><code><code>/etc/kavehost.xml</code></code></li>
</ul>
</li>
</ul>
<h3><code>phpMyAdmin</code></h3>
<ul>
<li><code>Registros: </code>
<ul>
<li><code>Registro de errores: <code>/var/log/sw-cp-server/error_log</code></code></li>
</ul>
</li>
<li><code>Ningún control del servicio (operando mediante el servicio sw-cp-server).</code></li>
<li><code>Configuración: </code>
<ul>
<li><code><code>/usr/local/psa/admin/htdocs/domains/databases/phpMyAdmin/libraries/config.default.php</code></code></li>
</ul>
</li>
</ul>
<h3><code>phpPGAdmin</code></h3>
<ul>
<li><code>Registros </code>
<ul>
<li><code>Registro de errores: <code>/var/log/sw-cp-server/error_log</code></code></li>
</ul>
</li>
<li><code>Ningún control del servicio (operando mediante el servicio sw-cp-server).</code></li>
<li><code>Configuración: </code>
<ul>
<li><code><code>/usr/local/psa/admin/htdocs/domains/databases/phpPgAdmin/conf/config.inc.php</code></code></li>
</ul>
</li>
</ul>
<h3><code>Logrotate</code></h3>
<ul>
<li><code>Ningún control de servicios. Ejecutado por la tarea diaria de mantenimiento: <code>/etc/cron.daily/50plesk-daily</code></code></li>
<li><code>Configuración </code>
<ul>
<li><code><code>/usr/local/psa/etc/logrotate.conf</code></code></li>
<li><code><code>/usr/local/psa/etc/logrotate.d/*</code></code></li>
</ul>
</li>
</ul>
<h3><code>Webalizer</code></h3>
<ul>
<li><code>Ningún control de servicios. Ejecutado por la tarea diaria de mantenimiento: <code>/etc/cron.daily/50plesk-daily</code></code></li>
<li><code>Configuración </code>
<ul>
<li><code><code>/srv/www/vhosts/system/&lt;domain&gt;/conf/webalizer.conf</code></code></li>
</ul>
</li>
</ul>
<h3><code>AWstats</code></h3>
<ul>
<li><code>Ningún control de servicios. Ejecutado por la tarea diaria de mantenimiento: <code>/etc/cron.daily/50plesk-daily</code></code></li>
<li><code>Configuración </code>
<ul>
<li><code><code>/usr/local/psa/etc/awstats/awstats.&lt;domain&gt;-*.conf</code></code></li>
</ul>
</li>
</ul>
<h3><code>Watchdog (monit)</code></h3>
<ul>
<li><code>Registros: </code>
<ul>
<li><code><code>/usr/local/psa/var/modules/watchdog/log/wdcollect.log</code></code></li>
<li><code><code>/usr/local/psa/var/modules/watchdog/log/monit.log</code></code></li>
</ul>
</li>
<li><code>Control de servicios: </code>
<ul>
<li><code>Detener: <code>/usr/local/psa/admin/bin/modules/watchdog/wd --stop</code></code></li>
<li><code>Iniciar: <code>/usr/local/psa/admin/bin/modules/watchdog/wd --start</code></code></li>
<li><code>Reiniciar: <code>/usr/local/psa/admin/bin/modules/watchdog/wd --restart</code></code></li>
</ul>
</li>
<li><code>Configuración: </code>
<ul>
<li><code><code>/usr/local/psa/etc/modules/watchdog/monitrc</code></code></li>
<li><code><code>/usr/local/psa/etc/modules/watchdog/wdcollect.inc.php</code></code></li>
</ul>
</li>
</ul>
<h3><code>Watchdog (rkhunter)</code></h3>
<ul>
<li><code>Registros: </code>
<ul>
<li><code><code>/var/log/rkhunter.log</code></code></li>
</ul>
</li>
<li><code>Control de servicios: </code>
<ul>
<li><code>Iniciar: <code>/usr/local/psa/admin/bin/modules/watchdog/rkhunter</code></code></li>
</ul>
</li>
<li><code>Configuración: </code>
<ul>
<li><code><code>/usr/local/psa/etc/modules/watchdog/rkhunter.conf</code> </code></li>
</ul>
</li>
</ul>
<h3><code>Firewall de Plesk</code></h3>
<ul>
<li><code>Control de servicios: </code>
<ul>
<li><code>Detener: <code>/etc/init.d/psa-firewall stop</code></code></li>
<li><code>Iniciar: <code>/etc/init.d/psa-firewall start</code></code></li>
<li><code>Reiniciar: <code>/etc/init.d/psa-firewall restart</code></code></li>
</ul>
</li>
<li><code>Configuración: </code>
<ul>
<li><code><code>/usr/local/psa/var/modules/firewall/firewall-active.sh</code></code></li>
<li><code><code>/usr/local/psa/var/modules/firewall/firewall-emergency.sh</code></code></li>
<li><code><code>/usr/local/psa/var/modules/firewall/firewall-new.sh</code></code></li>
</ul>
</li>
</ul>
<h3><code>Firewall de Plesk (Redireccionamiento de IP)</code></h3>
<ul>
<li><code>Control de servicios: </code>
<ul>
<li><code>Detener: <code>/etc/init.d/psa-firewall-forward stop</code></code></li>
<li><code>Iniciar: <code>/etc/init.d/psa-firewall-forward start</code></code></li>
<li><code>Reiniciar: <code>/etc/init.d/psa-firewall-forward restart</code></code></li>
</ul>
</li>
<li><code>Configuración: </code>
<ul>
<li><code><code>/usr/local/psa/var/modules/firewall/ip_forward.active</code></code></li>
<li><code><code>/usr/local/psa/var/modules/firewall/ip_forward.saved</code></code></li>
</ul>
</li>
</ul>
<h3><code>Prohibición de direcciones IP (Fail2Ban)</code></h3>
<ul>
<li><code>Control de servicios: </code>
<ul>
<li><code>Detener: <code>/etc/init.d/fail2ban stop</code></code></li>
<li><code>Iniciar: <code>/etc/init.d/fail2ban start</code></code></li>
<li><code>Reiniciar: <code>/etc/init.d/fail2ban restart</code></code></li>
</ul>
</li>
<li><code>Configuración: grupo de reglas IPTables, predeterminadas:- </code>
<ul>
<li><code><code>iptables -N fail2ban-plesk-login</code></code></li>
<li><code><code>iptables -A fail2ban-plesk-login -j RETURN</code></code></li>
<li><code><code>iptables -A INPUT -p tcp -m multiport --dports 8880,8443 -j fail2ban-plesk-login</code></code></li>
</ul>
</li>
</ul>
</div>
<p>La entrada <a rel="nofollow" href="https://agcapa.es/archivos-de-configuracion-y-registros-de-servicios-de-parallels-plesk-para-linux/">Archivos de configuración y registros de servicios de Parallels Plesk para Linux</a> se publicó primero en <a rel="nofollow" href="https://agcapa.es">Programador</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">301</post-id>	</item>
		<item>
		<title>Varnish Nagios Performance Plugin</title>
		<link>https://agcapa.es/varnish-nagios-performance-plugin/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Mon, 18 May 2015 10:01:42 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<guid isPermaLink="false">http://agcapa.es/?p=296</guid>

					<description><![CDATA[<p>Varnish is a web application&#160;accelerator and sits in front&#160;of your web server. It speeds up your application by caching&#160;some,&#160;if not all of the content meaning it reduces the load on your web server and can reduce the load on you backend as less lookups will be needed by the frontend. As varnish is the first&#8230;</p>
<p>La entrada <a rel="nofollow" href="https://agcapa.es/varnish-nagios-performance-plugin/">Varnish Nagios Performance Plugin</a> se publicó primero en <a rel="nofollow" href="https://agcapa.es">Programador</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Varnish is a web application&nbsp;accelerator and sits in front&nbsp;of your web server. It speeds up your application by caching&nbsp;some,&nbsp;if not all of the content meaning it reduces the load on your web server and can reduce the load on you backend as less lookups will be needed by the frontend.</p>
<p>As varnish is the first thing users hit it is imperative it is working properly and you have statistics on how it is performing. This plugin can give you a better insight into&nbsp;how affectively varnish is running and tell you if its having problems.</p>
<p>You can download the latest version here:<br />
<a href="http://www.toms-blog.com/wp-content/uploads/2013/07/check_varnish-v1.0.tar.gz">check_varnish-v1.0.tar</a></p>
<h2>Install</h2>
<p>To use this plugin you need to have varnishstat installed which is installed by default when you install varnish.</p>
<p>Perl is also required for this plugin. If you don’t have Perl installed you can install in by running the command below</p>
<div id="highlighter_575823" class="syntaxhighlighter ">
<div class="lines">
<div class="line alt1">
<table>
<tbody>
<tr>
<td class="number"><code>1</code></td>
<td class="content"><code class="plain">sudo apt-get install perl</code></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt2">
<table>
<tbody>
<tr>
<td class="number"><code>2</code></td>
<td class="content"></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt1">
<table>
<tbody>
<tr>
<td class="number"><code>3</code></td>
<td class="content"><code class="plain">or</code></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt2">
<table>
<tbody>
<tr>
<td class="number"><code>4</code></td>
<td class="content"></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt1">
<table>
<tbody>
<tr>
<td class="number"><code>5</code></td>
<td class="content"><code class="plain">sudo yum install perl</code></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<p>Now you can download the file above and extract it:</p>
<div id="highlighter_764291" class="syntaxhighlighter ">
<div class="lines">
<div class="line alt1">
<table>
<tbody>
<tr>
<td class="number"><code>1</code></td>
<td class="content"><code class="plain">wget &lt;a href="<a href="http://www.toms-blog.com/wp-content/uploads/2013/07/check_varnish-v1.0.tar.gz">http://www.toms-blog.com/wp-content/uploads/2013/07/check_varnish-v1.0.tar.gz</a>"&gt;<a href="http://www.toms-blog.com/wp-content/uploads/2013/07/check_varnish-v1.0.tar.gz%3C/a">http://www.toms-blog.com/wp-content/uploads/2013/07/check_varnish-v1.0.tar.gz&lt;/a</a>&gt;</code></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt2">
<table>
<tbody>
<tr>
<td class="number"><code>2</code></td>
<td class="content"></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt1">
<table>
<tbody>
<tr>
<td class="number"><code>3</code></td>
<td class="content"><code class="plain">tar -xzf check_varnish-v1.0.tar.gz</code></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<p>Now you should have a file “check_varnish.pl” make sure that it has execute permissions:</p>
<div id="highlighter_837095" class="syntaxhighlighter ">
<div class="lines">
<div class="line alt1">
<table>
<tbody>
<tr>
<td class="number"><code>1</code></td>
<td class="content"><code class="plain">chmod u+x check_varnish.pl</code></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<p>You now need to copy this file to your nagios plugins folder. You should consult your nagios config to find out where this is. Mine was ‘/usr/lib/nagios/plugin’</p>
<div id="highlighter_330931" class="syntaxhighlighter ">
<div class="lines">
<div class="line alt1">
<table>
<tbody>
<tr>
<td class="number"><code>1</code></td>
<td class="content"><code class="plain">mv check_varnish.pl /usr/lib/nagios/plugins/.</code></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<h2>How To</h2>
<p>check_varnish.pl – Monitor and report on varnish usage</p>
<p>check_varnish.pl [-c|–cache] [-b|–bin &lt;varnishstatbinary&gt;] [-d|–backend &lt;total|ratio&gt;] [-s|–stats &lt;varnish statfield&gt;] &nbsp;[-t|–technique &lt;lt|gt&gt;] [-w|–warning &lt;number&gt;] [-c|–critical &lt;number&gt;] [-h|–help]</p>
<p>DESCRIPTION</p>
<p>This script will report on various varnish stats including: varnish cache hit ratio backend error count (Total or Ratio) Any other counter in varnishstat If no counters are required the script will ensure the varnish binary is running</p>
<p>OPTIONS</p>
<p>-a –cache – this will make the script output cache_hit ratio perfdata</p>
<p>-b –bin &lt;varnishstat&gt; – to specify a different location of the default&nbsp;varnishstat binary location. Default is ‘/usr/bin/varnishstat’</p>
<p>-d –backend &lt;all|success|unhealthy|busy|fail|reuse|toolate|recycle|retry&gt; – specify script to output backend data you can output ratio, total or both</p>
<p>-h –help – output this message</p>
<p>-w –warning &lt;number&gt; – specify the warning threshold. Required for cache and backend checks</p>
<p>-c –critical &lt;number&gt; – specify the critical threshold. Required for cache and backend checks</p>
<p>-s –stats &lt;varnishstat field&gt; – specify a comma separated list of all the stats you wish to check Critical and Warning can be specified and all values will be compared to these values.</p>
<p>-t –technique &lt;lt|gt&gt; – when specifying stats you can also specify what technique you wish to use to compare the values to the thresholds. specify lt for less than and gt for greater than. Default is gt</p>
<p>EXAMPLES</p>
<p>Check varnish is running</p>
<p>./check_varnish.pl</p>
<p>Check varnish Cache Hit Ratio and warn if ratio is below 0.8</p>
<p>./check_varnish.pl -a -w 0.8 -c 0.6</p>
<p>Check varnish Backends</p>
<p>./check_varnish.pl -d all</p>
<p>Check varnish client requests and drops</p>
<p>./check_varnish.pl -s client_drop,client_req</p>
<h2></h2>
<h2>Nagios Set Up</h2>
<p>Once you have run the command in the CLI and all is working you can add the command:</p>
<div id="highlighter_983748" class="syntaxhighlighter ">
<div class="lines">
<div class="line alt1">
<table>
<tbody>
<tr>
<td class="number"><code>1</code></td>
<td class="content"><code class="plain">define command {</code></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt2">
<table>
<tbody>
<tr>
<td class="number"><code>2</code></td>
<td class="content"><code class="plain">command_name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; check_varnish</code></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt1">
<table>
<tbody>
<tr>
<td class="number"><code>3</code></td>
<td class="content"><code class="plain">command_line&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $USER1$/check_varnish.pl $ARG1$</code></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt2">
<table>
<tbody>
<tr>
<td class="number"><code>4</code></td>
<td class="content"><code class="plain">register&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1</code></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt1">
<table>
<tbody>
<tr>
<td class="number"><code>5</code></td>
<td class="content"><code class="plain">}</code></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<p>$USER1$ is your variable pointing to your nagios plugins folder and $ARG1$ are any command line arguments you specify in the service.</p>
<div id="highlighter_759695" class="syntaxhighlighter ">
<div class="lines">
<div class="line alt1">
<table>
<tbody>
<tr>
<td class="number"><code>1</code></td>
<td class="content"><code class="plain">define service {</code></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt2">
<table>
<tbody>
<tr>
<td class="number"><code>2</code></td>
<td class="content"><code class="plain">host_name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; localhost</code></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt1">
<table>
<tbody>
<tr>
<td class="number"><code>3</code></td>
<td class="content"><code class="plain">service_description&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Varnish</code></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt2">
<table>
<tbody>
<tr>
<td class="number"><code>4</code></td>
<td class="content"><code class="plain">check_command&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; check_varnish!--cache -w 0.6 -c 0.4</code></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt1">
<table>
<tbody>
<tr>
<td class="number"><code>5</code></td>
<td class="content"><code class="plain">register&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1</code></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt2">
<table>
<tbody>
<tr>
<td class="number"><code>6</code></td>
<td class="content"><code class="plain">}</code></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<p>The service above will&nbsp;give a warning if the hit ratio goes below 0.6 and critical if the ratio goes below 0.4</p>
<h3>NRPE</h3>
<p>The below is a line that can be used in the NRPE configuration for remote&nbsp;monitoring:</p>
<div id="highlighter_80733" class="syntaxhighlighter ">
<div class="lines">
<div class="line alt1">
<table>
<tbody>
<tr>
<td class="number"><code>1</code></td>
<td class="content"><code class="plain">command[check_varnish_cache_hit]=/usr/lib/nagios/plugins/check_varnish.pl --cache -w 0.6 -c 0.4</code></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<p>The NRPE service could look like this:</p>
<div id="highlighter_653797" class="syntaxhighlighter ">
<div class="lines">
<div class="line alt1">
<table>
<tbody>
<tr>
<td class="number"><code>1</code></td>
<td class="content"><code class="plain">define service {</code></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt2">
<table>
<tbody>
<tr>
<td class="number"><code>2</code></td>
<td class="content"><code class="plain">host_name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; varnishserver</code></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt1">
<table>
<tbody>
<tr>
<td class="number"><code>3</code></td>
<td class="content"><code class="plain">service_description&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Varnish Cache Hit Ratio</code></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt2">
<table>
<tbody>
<tr>
<td class="number"><code>4</code></td>
<td class="content"><code class="plain">check_command&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; check_nrpe!check_varnish_cache_hit</code></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt1">
<table>
<tbody>
<tr>
<td class="number"><code>5</code></td>
<td class="content"><code class="plain">register&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1</code></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt2">
<table>
<tbody>
<tr>
<td class="number"><code>6</code></td>
<td class="content"><code class="plain">}</code></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<p>La entrada <a rel="nofollow" href="https://agcapa.es/varnish-nagios-performance-plugin/">Varnish Nagios Performance Plugin</a> se publicó primero en <a rel="nofollow" href="https://agcapa.es">Programador</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">296</post-id>	</item>
		<item>
		<title>Cómo encontrar y reemplazar texto en varios archivos desde el terminal</title>
		<link>https://agcapa.es/como-encontrar-y-reemplazar-texto-en-varios-archivos-desde-el-terminal/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Mon, 27 Apr 2015 09:21:53 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<guid isPermaLink="false">http://agcapa.es/?p=293</guid>

					<description><![CDATA[<p>En el siguiente ejemplo, usaremos sed para reemplazar todas las ocurrencias de la palabra “mongo” por la palabra “aurelio” en todos los archivos que tengan la extensión .txt y que se encuentren en la carpeta /home/usuario/micarpeta/. find /home/usuario/micarpeta/ -name *.txt -exec sed -i "s/mongo/aurelio/g" {} ; o sed -i 's/Pepe/Jose/g' *.txt</p>
<p>La entrada <a rel="nofollow" href="https://agcapa.es/como-encontrar-y-reemplazar-texto-en-varios-archivos-desde-el-terminal/">Cómo encontrar y reemplazar texto en varios archivos desde el terminal</a> se publicó primero en <a rel="nofollow" href="https://agcapa.es">Programador</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>En el siguiente ejemplo, usaremos sed para reemplazar todas las ocurrencias de la palabra “mongo” por la palabra “aurelio” en todos los archivos que tengan la extensión .txt y que se encuentren en la carpeta /home/usuario/micarpeta/.</p>
<pre>find /home/usuario/micarpeta/ -name *.txt -exec sed -i "s/mongo/aurelio/g" {} ;

o</pre>
<pre><code>sed -i 's/Pepe/Jose/g' *.txt</code></pre>
<p>La entrada <a rel="nofollow" href="https://agcapa.es/como-encontrar-y-reemplazar-texto-en-varios-archivos-desde-el-terminal/">Cómo encontrar y reemplazar texto en varios archivos desde el terminal</a> se publicó primero en <a rel="nofollow" href="https://agcapa.es">Programador</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">293</post-id>	</item>
		<item>
		<title>script para cuando la memoria esta saturada</title>
		<link>https://agcapa.es/script-para-cuando-la-memoria-esta-saturada/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 31 Mar 2015 13:44:27 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<guid isPermaLink="false">http://agcapa.es/?p=285</guid>

					<description><![CDATA[<p>se genera un fichero, ejemplo memoria.sh y se le da permisos de escritura 755, luego generamos el crond para que lo haga cada minuto y cuando lo revisa resetea el apache, bajando la memoria #!/bin/sh DATE=`date &#8216;+%d%m%Y_%H%M%S&#8217;` CONSUMO=`ps aux &#124;grep Apache &#124;awk &#8216;{SUM+=$4}END {print SUM}&#8217;` UMBRAL=80 FLAG=/tmp/control_memoria.lock if [[ -f $FLAG ]];then logger -p ERROR &#8230;</p>
<p>La entrada <a rel="nofollow" href="https://agcapa.es/script-para-cuando-la-memoria-esta-saturada/">script para cuando la memoria esta saturada</a> se publicó primero en <a rel="nofollow" href="https://agcapa.es">Programador</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>se genera un fichero, ejemplo memoria.sh y se le da permisos de escritura 755, luego generamos el crond para que lo haga cada minuto y cuando lo revisa resetea el apache, bajando la memoria</p>
<p>#!/bin/sh</p>
<p>DATE=`date &#8216;+%d%m%Y_%H%M%S&#8217;`<br />
CONSUMO=`ps aux |grep Apache |awk &#8216;{SUM+=$4}END {print SUM}&#8217;`<br />
UMBRAL=80<br />
FLAG=/tmp/control_memoria.lock<br />
if [[ -f $FLAG ]];then<br />
logger -p ERROR  «[Monitor de Memoria Apache] Hay Otro proceso de monitor ejecutandose»<br />
exit 0<br />
fi</p>
<p>touch $FLAG</p>
<p>if [[  $CONSUMO -gt $UMBRAL ]];then</p>
<p>logger -p ERROR  «[Monitor de Memoria Apache] el consumo es superior a ${UMBRAL}% $CONSUMO»<br />
/etc/init.d/httpd stop 2&gt;/dev/null  |logger<br />
sleep 15<br />
/etc/init.d/httpd start 2&gt;/dev/null  |logger<br />
else</p>
<p>logger -p INFO «[Monitor de Memoria Apache] el consumo es inferior al ${UMBRAL}% $CONSUMO»<br />
if [[ $CONSUMO -eq 0 ]];then<br />
logger -p INFO «[Monitor de Memoria Apache] El consumo es igual a 0»<br />
/etc/init.d/httpd stop 2&gt;/dev/null  |logger<br />
sleep 15<br />
/etc/init.d/httpd start 2&gt;/dev/null  |logger<br />
fi<br />
fi</p>
<p>rm $FLAG</p>
<p>La entrada <a rel="nofollow" href="https://agcapa.es/script-para-cuando-la-memoria-esta-saturada/">script para cuando la memoria esta saturada</a> se publicó primero en <a rel="nofollow" href="https://agcapa.es">Programador</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">285</post-id>	</item>
		<item>
		<title>Generar un CSR en SHA-1 o SHA-2</title>
		<link>https://agcapa.es/generar-un-csr-en-sha-1-o-sha-2/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Wed, 21 Jan 2015 11:38:18 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<guid isPermaLink="false">http://agcapa.es/?p=265</guid>

					<description><![CDATA[<p>El certificado expedido depende del tipo de codificación asociada con la CSR. De forma predeterminada, OpenSSL genera CSRs en SHA1, por lo que si usted desea conseguir un certificado SHA2, tendrás que añadir la opción -sha256 o -sha512 al comando openssl, tal como se describe a continuación. Solicitud de certificado SHA-1 Para generar una CSR&#8230;</p>
<p>La entrada <a rel="nofollow" href="https://agcapa.es/generar-un-csr-en-sha-1-o-sha-2/">Generar un CSR en SHA-1 o SHA-2</a> se publicó primero en <a rel="nofollow" href="https://agcapa.es">Programador</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="level2">
<p><strong>El certificado expedido depende del tipo de codificación asociada con la CSR.</strong></p>
<p>De forma predeterminada, OpenSSL genera CSRs en SHA1, por lo que si usted desea conseguir un certificado SHA2, tendrás que añadir la opción -sha256 o -sha512 al comando openssl, tal como se describe a continuación.</p>
</div>
<h3 id="solicitud_de_certificado_sha-1" class="sectionedit4">Solicitud de certificado SHA-1</h3>
<div class="level3">
<p>Para generar una CSR <strong>SHA-1</strong> con OpenSSL, utilice el siguiente comando:</p>
<pre class="code">openssl req -nodes -newkey rsa:2048 -sha1 -keyout miservidor.key -out servidor.csr</pre>
</div>
<h3 id="solicitud_de_certificado_sha-2" class="sectionedit5">Solicitud de certificado SHA-2</h3>
<div class="level3">
<p>Para generar una CSR <strong>SHA2</strong>:</p>
<pre class="code">openssl req -nodes -newkey rsa:2048 -sha256 -keyout miservidor.key -out servidor.csr</pre>
<p>Esta orden creará 2 ficheros: uno público de tipo .csr y uno privado de tipo .key, el cual convendrá mantener a buen recaudo.</p>
<pre class="code">Country Name (2 letter code) [AU]: ES
State or Province Name (full name) [Some-State]: .
Locality Name (eg, city) []: Barcelona
Organization Name (eg, company) [Internet Widgits Pty Ltd]: MiSociedad
Organizational Unit Name (eg, section) []: TIC
Common Name (eg, YOUR name) []: subdominio.dominio.tld
Email Address []:
A challenge password []: 
An optional company name []:</pre>
<p>Los campos <strong>Email Address</strong>, <strong>optional company name</strong> y <strong>challenge password</strong> son facultativos.</p>
<p><strong>subdominio.dominio.tld</strong> indica la dirección que quiere proteger.</p>
<div class="noteclassic">La mejor manera de configurar su certificado para proteger el dominio con y sin las www (ej: ejemplo.com y <a class="urlextern" title="http://www.ejemplo.com" href="http://www.ejemplo.com" rel="nofollow">www.ejemplo.com</a>) es generar la CSR con sólo el dominio y no con el sub-dominio www. Al generar el CSR con sólo el dominio, el www está incluido implícitamente.</div>
<p>Se le solicitará el contenido del fichero CSR generado para la creación de su certificado.</p>
<p>Debe entrar en la ventana de administración de Gandi y ejecutar en su servidor:</p>
<pre class="code">cat miservidor.csr</pre>
<p>copiar la salida del comando anterior, para después pegarla en la ventana de administración de Gandi.</p>
<div class="notetip">En el caso de ser un certificado multi-direcciones (Wildcard), debe introducir en Common Name :<strong> *.dominio.tld</strong></div>
<div class="notetip">Atención: Un certificado multi-direcciones (Wildcard) protegerá todos los sub-dominios de segundo nivel, pero no será válido para los sub-dominios de nivel superior. El certificado <abbr title="Secure Sockets Layer">SSL</abbr> será válido para segundo.dominio.tld y cualquier otro sub-dominio distinto de &#8216;segundo&#8217;. Pero no será válido para tercero.segundo.dominio.tld</div>
</div>
<p>La entrada <a rel="nofollow" href="https://agcapa.es/generar-un-csr-en-sha-1-o-sha-2/">Generar un CSR en SHA-1 o SHA-2</a> se publicó primero en <a rel="nofollow" href="https://agcapa.es">Programador</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">265</post-id>	</item>
	</channel>
</rss>
