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

[SOLUCIONADO] Ejecución de script linux con crontab

Estas en el tema de Ejecución de script linux con crontab en el foro de Unix / Linux en Foros del Web. Hola a todos, Tengo un servidor QNAP TS-653A y estoy tratando de ejecutar automáticamente un script de linux introduciendo una sentencia en crontab, pero no ...
  #1 (permalink)  
Antiguo 22/03/2016, 12:53
Avatar de nolose  
Fecha de Ingreso: diciembre-2007
Ubicación: España
Mensajes: 165
Antigüedad: 17 años
Puntos: 2
Ejecución de script linux con crontab

Hola a todos,

Tengo un servidor QNAP TS-653A y estoy tratando de ejecutar automáticamente un script de linux introduciendo una sentencia en crontab, pero no hay manera de que lo ejecute. Os dejo los pasos que he seguido, por si alguien detecta algún fallo o me recomienda algo:

1.- Abro un fichero llamado cpbackup.sh
vi /share/CACHEDEV1_DATA/.scripts/cpbackup.sh

2.- Y creo un script, que añade una línea a un archivo llamado prueba1.txt
#!/bin/sh
echo "ESCRIBIENDO UN MENSAJE DE PRUEBA" >> prueba1.txt
exit


3.- Doy permisos a los dos archivos
chmod 777 /share/CACHEDEV1_DATA/.scripts/cpbackup.sh
chmod 777 /share/CACHEDEV1_DATA/.scripts/prueba1.txt


4.- Abro crontab
vi /etc/config/crontab

5.- Añado la ejecución de mi script a las 20:30 (todos los días)
30 20 * * * /share/CACHEDEV1_DATA/.scripts/cpbackup.sh
NOTA: También he probado a introducir: 30 20 * * * /bin/sh /share/CACHEDEV1_DATA/.scripts/cpbackup.sh

6.- Aplicamos los cambios en crontab
crontab /etc/config/crontab
/etc/init.d/crond.sh restart



Cabe decir, que si ejecuto el script manualmente, funciona correctamente.
EL problema está, en que crontab no lo ejecuta automáticamente.

¡¡Un saludo y gracias de antemano!!
  #2 (permalink)  
Antiguo 22/03/2016, 15:14
Avatar de barna_rasta  
Fecha de Ingreso: agosto-2003
Mensajes: 214
Antigüedad: 21 años, 4 meses
Puntos: 11
Respuesta: Ejecución de script linux con crontab

Buenas noches 'nolose'
no mencionas que LINUX utilizas,
** yo para un Debian-wheezy, los scripts los pongo en /usr/local/bin.
** tu ruta tiene permisos para ejecucion? /share/CACHEDEV1_DATA/.scripts ??
** ponle una salida a un log para que te informe donde esta el posible problema.


Cita:
echo "ESCRIBIENDO UN MENSAJE DE PRUEBA" >> /tmp/prueba1.txt


30 20 * * * /share/CACHEDEV1_DATA/.scripts/cpbackup.sh 1>/tmp/log1.log 2>/tmp/log2.log
ó
30 20 * * * /usr/local/bin/cpbackup.sh 1>/tmp/log1.log 2>/tmp/log2.log

Comentanos que tal fue?
  #3 (permalink)  
Antiguo 22/03/2016, 16:11
Avatar de nolose  
Fecha de Ingreso: diciembre-2007
Ubicación: España
Mensajes: 165
Antigüedad: 17 años
Puntos: 2
Respuesta: Ejecución de script linux con crontab

Hola barna_rasta

- Se trata de una distribución propia desarrollada por QNAP. Desconozco en que distribución Linux se han basado...

- Los tres directorios /share/CACHEDEV1_DATA/.scripts tienen permisos 777

- He probado a utilizar las dos rutas que me comentas, en ningún caso se ejecuta el script y los ficheros log no almacenan nada.

- Si ejecuto el script desde la consola, funciona correctamente :S

¿¿¿¿Alguna idea?????
  #4 (permalink)  
Antiguo 22/03/2016, 17:21
 
Fecha de Ingreso: octubre-2011
Mensajes: 166
Antigüedad: 13 años, 2 meses
Puntos: 31
Respuesta: Ejecución de script linux con crontab

No se la razón, pero al parecer al menos no siempre las tareas cron reconocen el PATH de ejecutables que los confoman , dicio eto, veo dos alternativas
1- modifica tu scrpt y reempaza echo por /bin/echo
2- Agrega estas dos lineas al comienzo del archivo que contienen los cron jobs
SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
  #5 (permalink)  
Antiguo 23/03/2016, 03:18
Avatar de barna_rasta  
Fecha de Ingreso: agosto-2003
Mensajes: 214
Antigüedad: 21 años, 4 meses
Puntos: 11
Respuesta: Ejecución de script linux con crontab

Encontre esta pagina info de crontab sobre QNAP

http://wiki.qnap.com/wiki/Add_items_to_crontab
http://unix.stackexchange.com/questi...-errors-logged
http://serverfault.com/questions/418...t-is-scheduled
http://forum.qnap.com/viewtopic.php?t=12811

para editar el crontab, en lugar de ' vi ', que deberia ser lo mismo, pero ................
Cita:
Editing the crontab is also easy, on the console type:
crontab -e

To view the content of the crontab, login to your qnap using telnet and type:
crontab -l

Once you have edited the crontab, execute the following to activate it:
/etc/init.d/crond.sh restart
a observar la ruta del ejemplo, que quizas sea solo un ejemplo o quizas un obligatorio.
Cita:
[email protected]
1 4 * * * /share/custom/scripts/custom1.sh
40 5 * * * /share/custom/scripts/custom2.sh
  #6 (permalink)  
Antiguo 23/03/2016, 17:53
Avatar de nolose  
Fecha de Ingreso: diciembre-2007
Ubicación: España
Mensajes: 165
Antigüedad: 17 años
Puntos: 2
Respuesta: Ejecución de script linux con crontab

Hola chicos,

Ya he conseguido solucionarlo. Efectivamente, tal y como me indicaba barna_rasta, se trataba de un problema con las rutas.

He cambiado la ruta del script a /share/CACHEDEV1_DATA/homes/admin y funciona a la perfección. Se trata del directorio que muestra el QNAP en su interfaz gráfica y corresponde a la unidad 1 de HDD.

Doy por concluido el tema.
¡¡Muchísimas gracias por vuestra ayuda!!

Etiquetas: crontab, ip, linux
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 07:21.