ago 08 2011

Como regenerar el fichero httpd.conf

Category: Cpanel,apacheDavid González @ 19:23

Por un problema de espacio en disco, al realizar una tarea en el apache, el servidor se ha quedado sin espacio y no ha debido guardar correctamente el fichero de configuración (claro, todo esto lo sé a toro pasado).

El error que mostraba por pantalla al reiniciar apache era este:

no listening sockets available
shutting downUnable to open logs

Tras dar muchas vueltas, me he dado cuenta que el fichero de configuración de apache (httpd.conf) estaba vacío.

Por suerte, cpanel trae un script para regenerar este fichero. Guarda un fichero que es httpd.conf,v en el que guarda en texto plano, partes del fichero, fechas de modificaciones, el usuario que hizo los cambios, etc…

Para restaurar el fichero simplemente hay que ejecutar este script.

/scripts/rebuildhttpdconf

Entradas relacionadas

Etiquetas: , , ,


abr 13 2010

for en bash. Configurar salto de linea en un fichero

Category: LinuxDavid González @ 22:21

Hoy vamos a dar un pequeño truco a la hora de usar un bucle for en un script en bash.

La estructura de un for en bash sería la siguiente:

#!/bin/sh
for i in 1 2 3
do
  echo "$i"
done

Esto nos imprimirá 1 2 3. Vemos que por defecto el bucle for, toma el carácter “espacio en blanco” como referencia. De esta forma lee el 1, luego el 2 y luego el 3.

Otro ejemplo. Tenemos este archivo de texto ‘tureceta.txt’:

dgonzalez@David:~$ cat /home/tureceta/tureceta.txt
esto es una zprueba
una zprueba
texto zde tureceta

y este script, básico, para imprimir cada linea:

#!/bin/sh
for i in `cat /home/tureceta/tureceta.txt`
do
echo $i
done

Como hemos visto, toma como delimitador el carácter espacio y muestra todas las palabras.

dgonzalez@David:~$ sh tureceta.sh
esto
es
una
zprueba
una
zprueba
texto
zde
tureceta

Si queremos podemos cambiar esta referencia con la variable IFS (internal field separator). Si queremos que imprima cada una de las lineas, debemos indicar que esta variable sea un salto de linea, de esta forma:

#!/bin/sh
IFS=$`\n`
for i in `cat /home/tureceta/tureceta.txt`
do
echo $i
done

Así mostraría este resultado:

dgonzalez@David:~$ sh tureceta.sh
esto es una zprueba
una zprueba
texto zde tureceta

Entendiendo esto, se puede usar como delimitador cualquier carácter, incluso una letra:

IFS=','
IFS=';'
IFS='.'
IFS='|'
IFS='z'

Entradas relacionadas

Etiquetas: ,