Foros del Web » Administración de Sistemas » Unix / Linux »

problema en script bash (si, otra vez :p)

Estas en el tema de problema en script bash (si, otra vez :p) en el foro de Unix / Linux en Foros del Web. Es un simple scripcito que verifica si hay logs en un archivo (tiene que haber generalmente), pero me da un error de "integer", veo que ...
  #1 (permalink)  
Antiguo 26/04/2006, 21:56
Avatar de Sh4ka  
Fecha de Ingreso: marzo-2005
Mensajes: 205
Antigüedad: 19 años, 1 mes
Puntos: 0
problema en script bash (si, otra vez :p)

Es un simple scripcito que verifica si hay logs en un archivo (tiene que haber generalmente), pero me da un error de "integer", veo que espera una expresión numérica por lo que puedo deducir, pero estoy usando una expresión numérica (- le)

INT1 -le INT2

verdadero si INT1 es menor o igual que INT2 (less than or equal).

Si es menor o igual a 1 byte, el programa advierte que no hay logs, de lo contrario vacía el archivo de logs.


Código:
root@server [~]# vaciarlog
/usr/local/bin/vaciarlog: line 3: [: 2.6K: integer expression expected
Vaciando logs y restarteando servicios...

/etc/init.d/httpd stop: httpd stopped
httpd: no process killed
/etc/init.d/httpd restart: httpd not running, trying to start
/etc/init.d/httpd restart: httpd started
Éste es el código del script:
Código:
root@server [~]# cat vaciarlog
#!/bin/bash

if [ $(ls -lah /usr/local/apache/logs/modulo_log | awk '{print $5}') -le 1 ]; then
   echo "El archivo modulo_log no tiene logs, verificar funcionamiento."
   exit
else
   echo "Vaciando logs y restarteando servicios..."
   echo
   /etc/init.d/httpd stop
   killall -9 httpd
   sleep 5
   cd /usr/local/apache/logs
   echo > modulo_log
   /etc/init.d/httpd restart
fi
Alguna idea ??
  #2 (permalink)  
Antiguo 26/04/2006, 22:36
Avatar de Koveart
Colaborador
 
Fecha de Ingreso: julio-2002
Ubicación: Colombia
Mensajes: 4.407
Antigüedad: 21 años, 9 meses
Puntos: 29
¿Cual es la pregunta? La verdad no me quedo nada claro.

Saludos
__________________
“Los soñadores no existen, se lo dice un soñador que ha tenido el privilegio de ver realidades que ni siquiera fue capaz de soñar”
  #3 (permalink)  
Antiguo 26/04/2006, 22:43
Avatar de Sh4ka  
Fecha de Ingreso: marzo-2005
Mensajes: 205
Antigüedad: 19 años, 1 mes
Puntos: 0
La pregunta es la siguiente:

Si el archivo modulo_log es menor o igual a 1 es porque no posee logs, entonces doy una advertencia por pantalla o de lo contrario si el archivo posee logs, los vacío, eso lo pregunto con:

Código:
if [ $(ls -lah /usr/local/apache/logs/modulo_log | awk '{print $5}') -le 1 ]; then
  #4 (permalink)  
Antiguo 27/04/2006, 05:04
Avatar de Koveart
Colaborador
 
Fecha de Ingreso: julio-2002
Ubicación: Colombia
Mensajes: 4.407
Antigüedad: 21 años, 9 meses
Puntos: 29
¿Y no te lo hace?

Saludos
__________________
“Los soñadores no existen, se lo dice un soñador que ha tenido el privilegio de ver realidades que ni siquiera fue capaz de soñar”
  #5 (permalink)  
Antiguo 27/04/2006, 06:56
Avatar de AleSanchez
Colaborador
 
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires, Argentina
Mensajes: 3.692
Antigüedad: 19 años, 7 meses
Puntos: 47
El problema esta en el 'ls' que utilizas el modificador -h (Human Readable) que devuelve cosas como "405K" en vez de "413797"
Al estar la letra "K" en la respuesta del comando es que no te lo reconoce como entero.
Simplemente usa "-la"
Saludos.
__________________
¡Volviendo a la programación!
  #6 (permalink)  
Antiguo 27/04/2006, 23:30
Avatar de Sh4ka  
Fecha de Ingreso: marzo-2005
Mensajes: 205
Antigüedad: 19 años, 1 mes
Puntos: 0
Many thanks! Siempre dando en la tecla Ale!
Vamo a ver como me va pero seguro es eso.

Gracias!

PD: algun manual o lugar donde estudiar bash scripting que puedas recomendar ? sino t voy a matar a preguntas siempre :p
  #7 (permalink)  
Antiguo 28/04/2006, 08:34
Avatar de -Defero-
Colaborador
 
Fecha de Ingreso: julio-2004
Ubicación: Guipúzcoa
Mensajes: 4.776
Antigüedad: 19 años, 9 meses
Puntos: 76
Tutorial de programación en shell
__________________
abogado en Errenteria + procuradora en San Sebastián = equipo imparable
  #8 (permalink)  
Antiguo 28/04/2006, 08:51
Avatar de AleSanchez
Colaborador
 
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires, Argentina
Mensajes: 3.692
Antigüedad: 19 años, 7 meses
Puntos: 47
Yo me baso siempre en estos, aunque estan en Ingles:

BASH Programming - Introduction HOW-TO
Advanced Bash-Scripting Guide

Saludos.
__________________
¡Volviendo a la programación!
  #9 (permalink)  
Antiguo 28/04/2006, 09:27
Avatar de -Defero-
Colaborador
 
Fecha de Ingreso: julio-2004
Ubicación: Guipúzcoa
Mensajes: 4.776
Antigüedad: 19 años, 9 meses
Puntos: 76
Te gustará saber que el primero está traducido al castellano. El segundo no lo encuentro.
__________________
abogado en Errenteria + procuradora en San Sebastián = equipo imparable
  #10 (permalink)  
Antiguo 28/04/2006, 10:46
Avatar de AleSanchez
Colaborador
 
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires, Argentina
Mensajes: 3.692
Antigüedad: 19 años, 7 meses
Puntos: 47
Tampoco me gaste en hacer esas busquedas.
[soberbia]
Igualmente el primero no lo uso
[/soberbia]

Saludos.
__________________
¡Volviendo a la programación!
  #11 (permalink)  
Antiguo 29/04/2006, 12:26
Avatar de Sh4ka  
Fecha de Ingreso: marzo-2005
Mensajes: 205
Antigüedad: 19 años, 1 mes
Puntos: 0
Gracias por los enlaces.. yo actualmente tmb estoy usando el Advanced Bash-Scripting Guide, solo quería saber si existian otras buenas guías.

Y otra pregunta relacionada... actualmente me manejo mas o menos bien con el shell scripting (a no ser dudas muy puntuales que siempre me responde alesanchez y otros foristas) y en la tarea de administrar servidores web linux he logrado automatizar muchisimas cosas con éxito, creados scripts de securizacion, sistemas personalizados de backups, etc.

Ahora mi pregunta.. ayer hable con un colega y le pregunte que me convenía, si profundizar mis conocimientos de shell script, o estudiar un lenguaje propiamente dicho como perl, o python... ya que quiero estudiar un lenguaje que me ayude en la tarea de administrar los sistemas, no para desarrollar software, no se si me comprenden. El me recomendo seguir con perl o python.. Que me recomiendan uds ?

thkz!
  #12 (permalink)  
Antiguo 29/04/2006, 22:38
Avatar de ociomax
Colaborador
 
Fecha de Ingreso: mayo-2002
Ubicación: Temuco, Chile
Mensajes: 5.595
Antigüedad: 22 años
Puntos: 35
Python. A menos que tengas interés en descifrar jeroglíficos .
__________________
Christian González, "OCIOMax"
http://chgonzalez.blogspot.com
http://twitter.com/chgonzalez
  #13 (permalink)  
Antiguo 01/05/2006, 13:49
Avatar de Sh4ka  
Fecha de Ingreso: marzo-2005
Mensajes: 205
Antigüedad: 19 años, 1 mes
Puntos: 0
Gracias Ociomax, alguna otra opinion??, preferentemente de admins que usan algun lenguaje como los que he mencionado para mejorar su desempeño administrando servers ?
  #14 (permalink)  
Antiguo 01/05/2006, 15:39
Avatar de Koveart
Colaborador
 
Fecha de Ingreso: julio-2002
Ubicación: Colombia
Mensajes: 4.407
Antigüedad: 21 años, 9 meses
Puntos: 29
Perl es utilizadisimo para scripting en servidores de alto desempeño, debido a que Perl es un lenguaje nativo de Unix, pues ya te podrás imaginar que tiene un comportamiento bastante aceptable dentro de servidores tipo Unix-like, además como dice Ociomax, perl es un jeroglifico en si mismo, pero es que acaso no tenemos todos alma de arquelogos,,,,

Saludos
__________________
“Los soñadores no existen, se lo dice un soñador que ha tenido el privilegio de ver realidades que ni siquiera fue capaz de soñar”
  #15 (permalink)  
Antiguo 03/05/2006, 01:23
Avatar de Sh4ka  
Fecha de Ingreso: marzo-2005
Mensajes: 205
Antigüedad: 19 años, 1 mes
Puntos: 0
Ya me asustaste Koveart con eso de los jeroglificos .. es tan difícil de aprender ? luego de ver eso estoy pesando en aprender primero phyton y luego ya teniendo bases más solidas que el shell scripting (nada prácticamente) si pasarme a Perl.. no se, que hagooo!
  #16 (permalink)  
Antiguo 03/05/2006, 08:10
Avatar de ociomax
Colaborador
 
Fecha de Ingreso: mayo-2002
Ubicación: Temuco, Chile
Mensajes: 5.595
Antigüedad: 22 años
Puntos: 35
Según la opinión de muchos expertos, Python tiene una curva de aprendizaje mucho más suave que Perl. De hecho, en varias universidades se usa Python para enseñar a programar.

Perl es sumamente potente, pero a veces llega a ser bastante críptico, como lo ilustra esta tira .

Personalmente, usé Perl por bastante tiempo, pero actualmente prefiero usar Python para las mismas tareas. En fin, la decisión (como siempre) es tuya. Ya sabes que en cosa de gustos...
__________________
Christian González, "OCIOMax"
http://chgonzalez.blogspot.com
http://twitter.com/chgonzalez
  #17 (permalink)  
Antiguo 03/05/2006, 13:41
Avatar de Sh4ka  
Fecha de Ingreso: marzo-2005
Mensajes: 205
Antigüedad: 19 años, 1 mes
Puntos: 0
Gracias Ociomax, creo que me tiraré por Python, y luego seguiré con Perl cuando tenga más experiencia. Ahora como dije antes, python me permitirá desarrollar software orientado a administracion de servidores ?, porque pense mucho en Perl puesto que desde hace años administro servidores cPanel, y cPanel el 90% esta en perl, todos sus scripts, etc, por eso.

Gracias.
  #18 (permalink)  
Antiguo 03/05/2006, 14:04
Avatar de ociomax
Colaborador
 
Fecha de Ingreso: mayo-2002
Ubicación: Temuco, Chile
Mensajes: 5.595
Antigüedad: 22 años
Puntos: 35
Sí, Python puede ser usado sin problemas para administración de servidores, ya que es un lenguaje de propósito general. Aunque es probable que haya menos información al respecto, en comparación con (digamos) PHP.
__________________
Christian González, "OCIOMax"
http://chgonzalez.blogspot.com
http://twitter.com/chgonzalez
  #19 (permalink)  
Antiguo 04/05/2006, 16:33
Avatar de Koveart
Colaborador
 
Fecha de Ingreso: julio-2002
Ubicación: Colombia
Mensajes: 4.407
Antigüedad: 21 años, 9 meses
Puntos: 29
Pues me parece que aprende el que más te apetezca aprender, la verdad solamente necesitas meterle ganas. Perl parece un jeroglifico por la variedad de comandos que le puedes dar, además de su uso generalizado en expresiones regulares, pero la verdad la diferencia no es tanta como podríamos haber visto en otra epoca.

Obviamente si ves perl por primera vez pues no entenderás ¡muchas cosas pero con un poco de paciencia y estudio todas tus dudas serán resueltas.

Saludos
__________________
“Los soñadores no existen, se lo dice un soñador que ha tenido el privilegio de ver realidades que ni siquiera fue capaz de soñar”
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:49.