Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/04/2006, 21:56
Avatar de Sh4ka
Sh4ka
 
Fecha de Ingreso: marzo-2005
Mensajes: 205
Antigüedad: 19 años, 2 meses
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 ??