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

problema para ejecutar tarea con cron

Estas en el tema de problema para ejecutar tarea con cron en el foro de Unix / Linux en Foros del Web. hola amigos espero me puedan ayudar, mediante un comando estoy cambiandole el tamaño a unas imagenes de un archivo este es el comando @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); ...
  #1 (permalink)  
Antiguo 13/06/2013, 22:40
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
problema para ejecutar tarea con cron

hola amigos espero me puedan ayudar, mediante un comando estoy cambiandole el tamaño a unas imagenes de un archivo

este es el comando
Código BASH:
Ver original
  1. mogrify -path ../small/ -resize 800x600 *.gif

este cambio de tamaño lo necesito hacer todos los dias a las 11 de la noche y para este fin lo hice con el programador de tareas cron

Código BASH:
Ver original
  1. 00 23 *  * 0-6 /var/www/html/app/image/resize.sh


pero no realizo la tarea porque?

para probar ejecute el script y funciona bien
Código BASH:
Ver original
  1. [root@Montes image]# ./resize.sh
  #2 (permalink)  
Antiguo 14/06/2013, 06:51
 
Fecha de Ingreso: octubre-2011
Mensajes: 166
Antigüedad: 12 años, 6 meses
Puntos: 31
Respuesta: problema para ejecutar tarea con cron

Por defecto todas las acciones de cron se realizan en background o sea invisibles, para hacerlas visibles o que corran en foreground, prueba con
00 23 * * 0-6 export DISPLAY=:0 && /var/www/html/app/image/resize.sh
  #3 (permalink)  
Antiguo 14/06/2013, 07:19
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: problema para ejecutar tarea con cron

EnriqueK gracias por responder pero no funciona lo que me indicaste no veo nada

que puede ser que estoy haciendo mal?
  #4 (permalink)  
Antiguo 14/06/2013, 07:27
 
Fecha de Ingreso: octubre-2011
Mensajes: 166
Antigüedad: 12 años, 6 meses
Puntos: 31
Respuesta: problema para ejecutar tarea con cron

Puede ser que requiera hacer visible el terminal, prueba con
00 23 * * 0-6 export DISPLAY=:0 && gnome-terminal -x /var/www/html/app/image/resize.sh

Aver que te sale al ejecutar como root
cat /var/log/syslog | grep resize.sh
  #5 (permalink)  
Antiguo 14/06/2013, 07:51
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: problema para ejecutar tarea con cron

EnriqueK gracias por responder , hice lo que me indicas pero no logro que se ejecute el script , pues si se ve la termina pero en fraccion de segundos pero no hace la labor del mogrify

tengo pocos conocimiento en linux y no se si te entendi la parte de
Cita:
Aver que te sale al ejecutar como root
cat /var/log/syslog | grep resize.sh
hice esto # cat /var/log/syslog | grep resize.sh
cat: /var/log/syslog: No existe el fichero o el directorio


que estoy haciendo mal?
  #6 (permalink)  
Antiguo 14/06/2013, 08:04
 
Fecha de Ingreso: octubre-2011
Mensajes: 166
Antigüedad: 12 años, 6 meses
Puntos: 31
Respuesta: problema para ejecutar tarea con cron

Dos posibilidades
1.- El script carece de permisos de ekecución
prueba con
00 23 * * 0-6 export DISPLAY=:0 && gnome-terminal -x bash /var/www/html/app/image/resize.sh

2.- Que el script requiera ser ejutado como root
prueba
su
crontab
la misma sentencia anterior
  #7 (permalink)  
Antiguo 14/06/2013, 08:33
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: problema para ejecutar tarea con cron

EnriqueK hice lo que me indicas y no funciona todavia (estoy como root)

* * * * 0-6 export DISPLAY=:0 && gnome-terminal -x bash /var/www/html/app/image/resize.sh

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
* * * * 0-6 export DISPLAY=:0 && gnome-terminal -x bash /var/www/html/sismogramas/image/resize.sh




Código BASH:
Ver original
  1. chmod +x resize.sh


# cat /var/log/syslog | grep resize.sh
cat: /var/log/syslog: No existe el fichero o el directorio

que estoy haciendo mal?

pruebo el script y funciona bien
Código BASH:
Ver original
  1. image]# ./resize.sh

Última edición por Montes28; 14/06/2013 a las 09:15
  #8 (permalink)  
Antiguo 14/06/2013, 09:46
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: problema para ejecutar tarea con cron

A ver, vamos por partes.

Primero que nada, ¿instalaste procmail y sendmail o similar para poder recibir errores de cron, tal y como te lo mencioné en otro tema? Haciendo esto, recibirás un correo con la salida de todos tus comandos de cron.

Si no lo querés hacer, una forma de ver los errores de cron es
less /var/log/cron

Segundo: Seguís usando el /etc/crontab en vez de crontab -e para editar tu propio crontab.
¿Por qué? Ahora mismo tu línea de cron está mal, porque necesita la definición del usuario al que corresponde la tarea, pero no la estás dando. Mejor dicho, se intenta correr con el usuario "export". Cuando uno edita su propio crontab (crontab -e) no se indica el usuario, y además el propio programa crontab puede indicarte errores de sintaxis.

Tercero: ¿y si simplemente le indicás al script que escriba a algún archivo? de esa forma es claro si está corriendo o no.

Ya te hemos mencionado varias cosas para probar, pero no has hecho caso. Por favor probá lo que te sugerimos y luego preguntá de nuevo. De lo contrario, te arriesgás a que la gente se canse y deje de contestarte.


Saludos.
  #9 (permalink)  
Antiguo 14/06/2013, 09:47
 
Fecha de Ingreso: octubre-2011
Mensajes: 166
Antigüedad: 12 años, 6 meses
Puntos: 31
Respuesta: problema para ejecutar tarea con cron

Otro intento
ejecita

crontab -e
y pones
00 23 * * 0-6 root export DISPLAY=:0 && gnome-terminal -x bash
dejas un espacio
arrastra a este terminal el script

esto último te pondrá la ruta absoluta del script entre comillas simples
  #10 (permalink)  
Antiguo 14/06/2013, 10:53
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: problema para ejecutar tarea con cron

EnriqueK y AlvaroG gracias por responder

estos son los pasos que estoy haciendo

Código BASH:
Ver original
  1. # crontab -e

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
* * * * 0-6 root export DISPLAY=:0 && gnome-terminal -x bash /var/www/html/app/image/resize.sh

y continua sin funcionar (hice lo que me indico EnriqueK de arrastrar y me puso la ruta absoluta asi '/var/www/html/app/image/resize.sh' yo le quite las comillas )

que estoy haciendo mal?

Código BASH:
Ver original
  1. # crontab -e
  2. crontab: installing new crontab
  3. Tiene correo nuevo en /var/spool/mail/root

no si lo que hice esta mal ingrese a var/spool/mail/root
y abri el archivo y obtengo esto


From [email protected]omain Fri Jun 14 12:18:01 2013
Return-Path: <[email protected]>
X-Original-To: root
Delivered-To: [email protected]omain
Received: by Manizales-20.localdomain (Postfix, from userid 0)
id 3DDB7424758; Fri, 14 Jun 2013 12:18:01 -0500 (COT)
From: [email protected]omain (Cron Daemon)
To: [email protected]omain
Subject: Cron <root@Manizales-20> root export DISPLAY=:0 && gnome-terminal -x bash /var/www/html/app/image/resize.sh
Content-Type: text/plain; charset=UTF-8
Auto-Submitted: auto-generated
X-Cron-Env: <SHELL=/bin/bash>
X-Cron-Env: <PATH=/sbin:/bin:/usr/sbin:/usr/bin>
X-Cron-Env: <MAILTO=root>
X-Cron-Env: <HOME=/>
X-Cron-Env: <LOGNAME=root>
X-Cron-Env: <USER=root>
Message-Id: <[email protected]>
Date: Fri, 14 Jun 2013 12:18:01 -0500 (COT)

/bin/bash: root: command not found

Última edición por Montes28; 14/06/2013 a las 11:17
  #11 (permalink)  
Antiguo 14/06/2013, 11:56
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: problema para ejecutar tarea con cron

bueno, finalmente vamos avanzando
Vuelve a leer mi mensaje anterior. El crontab por usuario (el que se accede mediante crontab -e) NO LLEVA el identificador del usuario en el 6to campo, eso es solamente para el archivo /etc/crontab. Esa es la raíz del error que estás viendo en el correo que cron le envió a root (no se espera un usuario, entonces se toma a "root" como el comando a ejecutar)

Para ver el correo, podés abrirlo como lo hiciste, o utilizar el comando "mail" o "mailx". Es un programa antiguo de línea de comandos, pero bastante fácil de usar y extremadamente rápido, perfecto para estos casos. Simplemente escribí "mailx". Verás una lista de los correos que ha recibido el usuario en el servidor. Algunos comandos (casi que los únicos que vas a necesitar):

h (headers, ver listado)
d (delete, borrar último mensaje visto. Vale también algo como d 1, que borra el mensaje con id=1)
n (donde "n" es un entero: ver el mensaje n de la lista)


Saludos.
  #12 (permalink)  
Antiguo 14/06/2013, 13:10
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: problema para ejecutar tarea con cron

AlvaroG gracias por responder , no logro mi objetivo

ya quite el usuario root

Código BASH:
Ver original
  1. # crontab -e

Código BASH:
Ver original
  1. SHELL=/bin/bash
  2. PATH=/sbin:/bin:/usr/sbin:/usr/bin
  3. MAILTO=root
  4. HOME=/
  5.  
  6. # For details see man 4 crontabs
  7.  
  8. # Example of job definition:
  9. # .---------------- minute (0 - 59)
  10. # | .------------- hour (0 - 23)
  11. # | | .---------- day of month (1 - 31)
  12. # | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
  13. # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
  14. # | | | | |
  15. # * * * * * user-name command to be executed
  16.  12 14 * * 0-6 export DISPLAY=:0 && gnome-terminal -x bash /var/www/html/app/image/resize.sh

despues guarde con x

Código BASH:
Ver original
  1. crontab: installing new crontab



y en /var/spool/mail/ pero no me llego correo

pero si vi la ventana
  #13 (permalink)  
Antiguo 14/06/2013, 13:39
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: problema para ejecutar tarea con cron

No te llega correo porque cron solamente envía la salida (estándar o de error). Si no hay salida, no se envía nada.
En este punto, el script sí se está ejecutando, ahora lo que tenés que hacer es otra cosa que también te escribí antes: hacer que el script escriba algún archivo o algo que te permita saber si está funcionando. Lo mejor es que lo llames como

bash -x /var/www/html/app/image/resize.sh

No creo que necesites el gnome-terminal ahora que sabes que está funcionando. El "-x" de bash hará que se imprima en la pantalla (esto será capturado y enviado por cron) lo que hace el script, paso por paso.


Saludos.
  #14 (permalink)  
Antiguo 14/06/2013, 14:05
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: problema para ejecutar tarea con cron

AlvaroG gracias por responder y por tenerme paciencia pero es que apenas inicio con linux

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
* * * * 0-6 bash -x /var/www/html/app/image/resize.sh

y en el correo recibo lo siguiente

+ mogrify -path ../small/ -resize 800x600 '*.gif'
mogrify: unable to open image `*.gif': No such file or directory @ error/blob.c/OpenBlob/2644.


y mira los directorios
drwxrwxrwx 2 root root 12288 jun 14 08:09 image
drwxrwxrwx 2 root root 12288 jun 14 10:15 small

Última edición por Montes28; 14/06/2013 a las 14:19
  #15 (permalink)  
Antiguo 14/06/2013, 20:11
 
Fecha de Ingreso: octubre-2011
Mensajes: 166
Antigüedad: 12 años, 6 meses
Puntos: 31
Respuesta: problema para ejecutar tarea con cron

He visto que en otras entradas que estás usando Centos, esa distro tiene editor por defecto a vi o vim, por eso es que al ejecutar crotab -e puedes poner la sentencia, pero seguramente no sabes como guardarla , debo reconocer que yo tampoco lo se, sin embargo hay una solución al menos temporal hasta que cambies de editor por defecto o aprendas a usar vi o vim, , recomiendo hacer lo siguiente
1.- si no lo tienes, instala nano
2.-para crear una nueva tarea con crontab, ejecuta
export EDITOR=nano && crontab -e
pones la tarea programada

Ctrl + O
Enter ----> con esto guardas
Ctrl + X
Enter ---> con esto sales
  #16 (permalink)  
Antiguo 14/06/2013, 20:26
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: problema para ejecutar tarea con cron

EnriqueK gracias por responder

mira lo que estoy haciendo
http://imageshack.us/f/826/xlvk.png/

con que nombre guardo el archivo y donde?
  #17 (permalink)  
Antiguo 14/06/2013, 21:43
 
Fecha de Ingreso: octubre-2011
Mensajes: 166
Antigüedad: 12 años, 6 meses
Puntos: 31
Respuesta: problema para ejecutar tarea con cron

Abandona ese intento, como te dije antes, tu dificultad radica en saber usar el editor vi o vim que es que trae por defecto Centos, por eso lo mas práctico es en este caso como se trata de una tarea de root ejecuta
su
pones la contraseña de root
export EDITOR=nano && crontab -e
y allí le pones la tarea o sea
* * * * 0-6 export DISPLAY=:0 && gnome-terminal -x bash /var/www/html/sismogramas/image/resize.sh

Luego pulsa la tecla Ctrl y sin soltar pulsa la letra O seguidamente pulsa Enter y ya estará grabada la tarea,
para salir pulsa la tecla Ctrl y sin soltar pulsa la letra X seguidamente pulsa Enter y con eso cierras el editor nano y está todo terminado
No tienes que ponerle nombre a ningún archivo, las tareas de crontab creadas de esta manera se almacenarán en un archivo con el nombre del usuario en
/var/spool/cron
puedes ver el contenido de todas las tareas del archivo root ejecutando
su
nano /var/spool/cron/root
si fuera una tarea de otro usuario puedes acceder mediante
su
nano /var/spool/cron/usuario
  #18 (permalink)  
Antiguo 14/06/2013, 21:55
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: problema para ejecutar tarea con cron

EnriqueK ya hice lo que me indicaste y se ve la ventana cada minuto se ve que se esta ejecutando,
comprobe el contenido de todas las tareas del archivo root ( nano /var/spool/cron/root )

pero no logro que se se haga lo que dice el script

resize.sh
#!/bin/sh
mogrify -path ../small/ -resize 800x600 *.gif

otra cosa es que no recibo correo
  #19 (permalink)  
Antiguo 14/06/2013, 22:23
 
Fecha de Ingreso: octubre-2011
Mensajes: 166
Antigüedad: 12 años, 6 meses
Puntos: 31
Respuesta: problema para ejecutar tarea con cron

El mail es para cada usuario, como en este caso se trata del usuario root, ejecuta
su
mailx
  #20 (permalink)  
Antiguo 14/06/2013, 22:30
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: problema para ejecutar tarea con cron

hice mailx y observe este error

mogrify: unable to open image `*.gif': No such file or directory @ error/blob.c/OpenBlob/2644.

pues segun lo que entiendo el error ya seria con los archivos gif
  #21 (permalink)  
Antiguo 14/06/2013, 22:37
 
Fecha de Ingreso: octubre-2011
Mensajes: 166
Antigüedad: 12 años, 6 meses
Puntos: 31
Respuesta: problema para ejecutar tarea con cron

No entiendo lo que hace el script, pera se me da que es para correrlo como usuario, borra la tarea de root y créala como usuario, el proceso es igual solo difiere en que debes abrir terminal de usuario
  #22 (permalink)  
Antiguo 14/06/2013, 22:48
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: problema para ejecutar tarea con cron

EnriqueK gracias por responder y tenerme paciencia, como te comentaba anteriormente apenas inicio en linux

el script realiza lo siguientes reduce el tamaño de unos archivos gif http://www.imagemagick.org/www/mogrify.html

entonces lo que hice para reducir el tamaño es ejecutar el siguiente comando
Código BASH:
Ver original
  1. mogrify -path ../small/ -resize 800x600 *.gif

el comando debe de ejecutarse desde el directorio que contiene los archivos gif que se reduciran.
ahora bien necesito que esta tarea se ejecute todos los dias , entonces por eso cree el script y esta en el directorio de las imagenes

a lo que me indicas
Cita:
pera se me da que es para correrlo como usuario, borra la tarea de root y créala como usuario
pero yo estoy como root
Código BASH:
Ver original
  1. [root@Montes ~]#
  #23 (permalink)  
Antiguo 14/06/2013, 23:17
 
Fecha de Ingreso: octubre-2011
Mensajes: 166
Antigüedad: 12 años, 6 meses
Puntos: 31
Respuesta: problema para ejecutar tarea con cron

Si pero el directorio de las imagenenes supongo estarán dentro de tu carpeta de usuario, dudo que estén dentro de la carpeta de root, no se, a tu script tal vez le falte agregarle al comienzo algo como esto.
cd /home/usuario/imágenes
el resto sigue igual
o tal vez ponerle
cd /home/usuario
el resto sigue igual

El caso es que al ejecutar el script en un terminal de root tal como lo tienes, el terminal estará abierto en la carpeta /root y allí no debe estar la carpeta imágenes.
  #24 (permalink)  
Antiguo 15/06/2013, 11:30
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: problema para ejecutar tarea con cron

EnriqueK gracias por responder

el directorio de imagenes esta en:
Código BASH:
Ver original
  1. [root@Montes image]# pwd
  2. /var/www/html/sismogramas/image
  3. [root@Montes image]#

todo lo estoy trabajando con root

y en lo que me indicas
Cita:
El caso es que al ejecutar el script en un terminal de root tal como lo tienes, el terminal estará abierto en la carpeta /root y allí no debe estar la carpeta imágenes.
entonces donde debo poner el script y el directorio imagenes ?
  #25 (permalink)  
Antiguo 15/06/2013, 16:38
 
Fecha de Ingreso: octubre-2011
Mensajes: 166
Antigüedad: 12 años, 6 meses
Puntos: 31
Respuesta: problema para ejecutar tarea con cron

Sería bueno que detalles lo mas posible como ejecutas manualmente el script, en principio veo una dualidad
1.- en el crontab pones como ruta del script a
/var/www/html/app/image/resize.sh
2.- En tu comentario anterior pones como ruta de la carpeta image a
/var/www/html/sismogramas/image

o se trata de un error, o de dos carpetas image ubicadas en directorios diferentes.
Haz lo siguiente
1.- abre un terminal y arrastra a este tanto la carpeta image como el script, esto mostrará las rutas absolutas de ambos elementos
2.- En principio esto se resolvería creando otro script que haga que el terminal se abra en la carpeta donde se encuentra el script y que luego ejecute a este
  #26 (permalink)  
Antiguo 15/06/2013, 16:47
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: problema para ejecutar tarea con cron

hola EnriqueK gracias por continuar respondiendo


el script lo ejecuto asi
Código BASH:
Ver original
  1. [root@Montes ~]# cd /var/www/html/sismogramas/image
  2. [root@Montes image]# ./resize.sh


acabo de hacer lo que me indicas
Cita:
1.- abre un terminal y arrastra a este tanto la carpeta image como el script, esto mostrará las rutas absolutas de ambos elementos
Código BASH:
Ver original
  1. [root@Montes ~]# '/var/www/html/sismogramas/image'
  2. [root@Montes ~]# '/var/www/html/sismogramas/image/resize.sh'

y disculpame por esto que te voy a preguntar como hago lo que me indicas en
Cita:
2.- En principio esto se resolvería creando otro script que haga que el terminal se abra en la carpeta donde se encuentra el script y que luego ejecute a este
  #27 (permalink)  
Antiguo 15/06/2013, 17:42
 
Fecha de Ingreso: octubre-2011
Mensajes: 166
Antigüedad: 12 años, 6 meses
Puntos: 31
Respuesta: problema para ejecutar tarea con cron

Crearemos un nuevo script ubicado en /usr/local/bin que llamaremos reducir
ejecuta
su
nano /usr/local/bin/reducir
se abrirá un archivo de texto vacío de nombre reducir y allí pones lo siguiente
#!/bin/sh
cd /var/www/html/sismogramas/image
bash resize.sh

guardas, cierras y cierras terminal , ya estaría creado el nuevo script, puedes probarlo ejecutando manualmente
su
bash reducir

si funciona bien, ya puedes cambiar en el crontab la ruta que apunte al nuevo script
ejecuta
su
export EDITOR=nano && crontab -e
y a la tarea la djas así
* * * * * export DISPLAY=:0 && gnome-terminal -x bash /usr/local/bin/reducir

y si funciona bien, solo queda volver a editar el crontab para dejar los valores de ejecución definitivos ya que tal como está este script se ejecutará cada minuto.

Última edición por EnriqueK; 15/06/2013 a las 18:52
  #28 (permalink)  
Antiguo 17/06/2013, 07:14
Avatar de lord_zoo  
Fecha de Ingreso: febrero-2005
Ubicación: Buenos Aires
Mensajes: 104
Antigüedad: 19 años, 2 meses
Puntos: 2
Respuesta: problema para ejecutar tarea con cron

Usa paths completos.
Siempre que corras un script via cron, usa PATHS COMPLETOS.

1) Usar un "../images/" no sirve, ya que el shell de cron no sabe de donde estas hablando en el script.

2) Los export los usaria dentro del mismo script.

3) ¿Estas intentando enviar a una consola grafica lo que corres en el cron? Eso no me cierra, ya que los cron corren de fondo, y aunque le puedas enviar la variable DISPLAY, si en ese momento no hay usuario logueado, no tendra display a donde enviar la salida.
__________________
Tech IT - Consultoría GNU/Linux.
http://www.tech-it.com.ar
  #29 (permalink)  
Antiguo 17/06/2013, 08:44
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: problema para ejecutar tarea con cron

A ver, a ver, el problema estaba casi resuelto y volvimos a luchar con el crontab.
Cita:
Iniciado por Montes28 Ver Mensaje
mogrify -path ../small/ -resize 800x600 '*.gif'
mogrify: unable to open image `*.gif': No such file or directory @ error/blob.c/OpenBlob/2644.
Simple: el script se ejecuta, solo que no hay archivos .gif en la carpeta en la que estás ejecutándolo.

Cita:
Iniciado por EnriqueK Ver Mensaje
pero seguramente no sabes como guardarla , debo reconocer que yo tampoco lo se
Escape, :wq

Cita:
Iniciado por Montes28 Ver Mensaje
con que nombre guardo el archivo y donde?
No hace falta indicar esto, ya que crontab funciona así:
abre un archivo temporal
abre un editor de texto con ese archivo temporal
cuando el editor cierra, verifica la sintaxis basica del archivo guardado
si el archivo es correcto, se instala como el crontab del usuario
en caso contrario, se descarta.

Cita:
Iniciado por Montes28 Ver Mensaje
resize.sh
#!/bin/sh
mogrify -path ../small/ -resize 800x600 *.gif
Te falta hacer un cd a la carpeta correcta, ya que cron no lee los archivos de perfil (.profile, /etc/profile) como sí lo hace un shell normal. Seguramente el script esté siendo ejecutado en / en vez de /root.

Cita:
Iniciado por Montes28 Ver Mensaje
mogrify: unable to open image `*.gif': No such file or directory @ error/blob.c/OpenBlob/2644.
Y finalmente volvimos al mismo error de 6 mensajes antes...

Cita:
Iniciado por EnriqueK Ver Mensaje
No entiendo lo que hace el script, pera se me da que es para correrlo como usuario
¡Sin duda! una tarea de estas no es para root, ya que no es administrativa. Pero para el caso, primero hagámosla funcionar y luego se reconfigura para correr como usuario.

Cita:
Iniciado por Montes28 Ver Mensaje
el comando debe de ejecutarse desde el directorio que contiene los archivos gif que se reduciran.
Exacto, falta el cd al directorio antes de ejecutar el script (o dentro del script) ya que cron no lo hará por sí solo

Cita:
Iniciado por Montes28 Ver Mensaje
el directorio de imagenes esta en: /var/www/html/sismogramas/image
Entonces agrega un cd a esa carpeta al inicio del script, y asunto arreglado.

Etiquetas: cron, ip, tarea
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 21:51.