<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>http://wiki.jagfloriano.com/index.php?action=history&amp;feed=atom&amp;title=Script_Despliegue_configuraci%C3%B3n</id>
	<title>Script Despliegue configuración - Historial de revisiones</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.jagfloriano.com/index.php?action=history&amp;feed=atom&amp;title=Script_Despliegue_configuraci%C3%B3n"/>
	<link rel="alternate" type="text/html" href="http://wiki.jagfloriano.com/index.php?title=Script_Despliegue_configuraci%C3%B3n&amp;action=history"/>
	<updated>2026-06-03T11:47:04Z</updated>
	<subtitle>Historial de revisiones de esta página en la wiki</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>http://wiki.jagfloriano.com/index.php?title=Script_Despliegue_configuraci%C3%B3n&amp;diff=175&amp;oldid=prev</id>
		<title>Escleiron: Página creada con «== Ejemplo de script Bash: despliegue de configuración por servidor ==  === Objetivo del script === Este script es un ejemplo didáctico cuyo objetivo es explicar distintas lógicas habituales en scripts de administración Linux:  * Iterar sobre ficheros locales * Extraer información a partir del nombre del fichero * Verificar conectividad con servidores remotos * Ejecutar comandos remotos por SSH * Copiar ficheros con SCP * Tomar decisiones en función del sistema…»</title>
		<link rel="alternate" type="text/html" href="http://wiki.jagfloriano.com/index.php?title=Script_Despliegue_configuraci%C3%B3n&amp;diff=175&amp;oldid=prev"/>
		<updated>2026-01-02T17:20:03Z</updated>

		<summary type="html">&lt;p&gt;Página creada con «== Ejemplo de script Bash: despliegue de configuración por servidor ==  === Objetivo del script === Este script es un ejemplo didáctico cuyo objetivo es explicar distintas lógicas habituales en scripts de administración Linux:  * Iterar sobre ficheros locales * Extraer información a partir del nombre del fichero * Verificar conectividad con servidores remotos * Ejecutar comandos remotos por SSH * Copiar ficheros con SCP * Tomar decisiones en función del sistema…»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Ejemplo de script Bash: despliegue de configuración por servidor ==&lt;br /&gt;
&lt;br /&gt;
=== Objetivo del script ===&lt;br /&gt;
Este script es un ejemplo didáctico cuyo objetivo es explicar distintas lógicas habituales&lt;br /&gt;
en scripts de administración Linux:&lt;br /&gt;
&lt;br /&gt;
* Iterar sobre ficheros locales&lt;br /&gt;
* Extraer información a partir del nombre del fichero&lt;br /&gt;
* Verificar conectividad con servidores remotos&lt;br /&gt;
* Ejecutar comandos remotos por SSH&lt;br /&gt;
* Copiar ficheros con SCP&lt;br /&gt;
* Tomar decisiones en función del sistema operativo remoto&lt;br /&gt;
&lt;br /&gt;
El caso práctico simula el despliegue de un fichero de configuración&lt;br /&gt;
(&amp;lt;code&amp;gt;collectd.conf&amp;lt;/code&amp;gt;) en múltiples servidores.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Código del script ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
FICHEROS=$(ls -lrtaR ./*/ | awk &amp;#039;{ if ( $1 !~ /^d/  ) print $9 }&amp;#039; | grep .conf)&lt;br /&gt;
FECHA=$(date &amp;#039;+%F.%H:%M&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
for fichero in $FICHEROS; do&lt;br /&gt;
	rutafichero=$(find ./ -name ${fichero})&lt;br /&gt;
	servidor=$(echo $fichero|  cut -d &amp;quot;.&amp;quot; -f 1)&lt;br /&gt;
	&lt;br /&gt;
	echo -e &amp;quot;Pinging ${servidor}\n&amp;quot;&lt;br /&gt;
	porcent=$(ping -c 2 $servidor | tail -2 | head -1 | cut -d &amp;quot; &amp;quot; -f 6 |  sed &amp;#039;s/.$//&amp;#039;)&lt;br /&gt;
	&lt;br /&gt;
		rhversion=$(ssh -q ${servidor} &amp;quot;cat /etc/redhat-release | grep 7. | wc -l&amp;quot;)&lt;br /&gt;
	&lt;br /&gt;
      	if [ $porcent -eq 0 ]; then&lt;br /&gt;
		echo -e &amp;quot;Ping OK\n&amp;quot;&lt;br /&gt;
		echo -e &amp;quot;Backing up file...&amp;quot;&lt;br /&gt;
		ssh -q $servidor &amp;quot;sudo cp /etc/collectd.conf /etc/collectd.conf.${FECHA}&amp;quot;&lt;br /&gt;
		echo -e &amp;quot;sudo cp /etc/collectd.conf /etc/collectd.conf.${FECHA}&amp;quot;&lt;br /&gt;
		echo -e &amp;quot;Copying collectd.conf to server...&amp;quot;&lt;br /&gt;
		scp -q ${rutafichero} ${servidor}:/tmp/collectd.conf &lt;br /&gt;
		ssh -q $servidor &amp;quot;sudo cp /tmp/collectd.conf /etc/collectd.conf&amp;quot;&lt;br /&gt;
		echo -e &amp;quot;scp ${rutafichero} ${servidor}:/tmp/collectd.conf&amp;quot;&lt;br /&gt;
			&lt;br /&gt;
		echo -e &amp;quot;Reloading service with new config&amp;quot;&lt;br /&gt;
		if [ $rhversion -eq 0 ]; then&lt;br /&gt;
			ssh -q $servidor &amp;quot;sudo service collectd reload&amp;quot;&lt;br /&gt;
		else&lt;br /&gt;
			ssh -q $servidor &amp;quot;sudo systemctl restart collectd.service&amp;quot;&lt;br /&gt;
		fi&lt;br /&gt;
	fi &lt;br /&gt;
	&lt;br /&gt;
done;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Escleiron</name></author>
	</entry>
</feed>