Problemas con el cron

Iniciado por Clavo Oxidado, 3 Junio 2014, 10:30 AM

0 Miembros y 1 Visitante están viendo este tema.

Clavo Oxidado

Hola a todos, estoy configurando una tarea programada a través del comando cron para que ejecute un script a una determinada hora, pues bien cuando pongo la hora programada no ejecuta el script, y lo tengo de la siguiente forma:

En el directorio /usr/local/bin/ tiene tres archivos lxde-logout(enlace simbólico), prueba(archivo de texto)  y scp_data_backup.sh(script)

Cuyo permisos lo tienen todo 777, y el usuario y grupo pertenecen a root.

Y el contenido de cada archivo es el siguiente:

scp_data_backup(script)

#!/bin/bash
scp prueba pepito@192.168.1.3:/home/pepito/almacen


prueba(archivo de texto)

Hola esto es una prueba.

lxde-logout

No hay mucho que hablar ya que ese archivo ya venía por defecto.

Y al ejecutar crontab -e -u pepito lo tengo de la siguiente forma:

30 10 * * * pepito /usr/local/bin/scp_data_backup.sh

El ssh del servidor ya esta configurado para que no me pida la contraseña ya que he exportado la clave pública del usuario del cliente al servidor. De hecho al hacerlo manualmente si se ejecuta el script y envia el archivo al servidor pero al hacerlo con el cron no se ejecuta la tarea.

¿Alguna solución?

Un saludo

"Dame 10 Hackers y en media hora dominaré el mundo."

el-brujo

Dices que si ejecutas directamente:

scp prueba pepito@192.168.1.3:/home/pepito/almacen

¿Funciona?

No entiendo muy bien para que usas el script sh si total sólo tiene una línea, podrías poner directamente el comando:

30 10 * * * pepito scp prueba pepito@192.168.1.3:/home/pepito/almacen

Si ejecutas el comando con el usuario root  scp_data_backup.sh ¿funciona? ¿Y con el usuario pepito?

El cron job parece que lo ejecuta pepito, quizás scp no tiene acceso a la llave pública y por eso no va.

¿La llave pública que usuario la tiene, root o pepito?

Yo también uso scp para hacer copia de seguridad con claves públicas para no tener que usar contraseñas.

http://blog.elhacker.net/2013/11/copiar-o-mover-ficheros-o-directorios-carpetas-remotamente-scp-ssh-tar.html

Se puede especificar la localización exacta de la llave con el parámetro -i en scp

Ejemplo, lo ejecuto como root pero la llave es del usuario backup

40 9 * * * scp -i /home/copia_de_seguridad/.ssh/id_rsa -l 2500 /home/foro.elhacker.net/foro.elhacker.net.sql.bz2 user@user.your-backup.de:/foro.`date +\%d-\%m-\%Y_\%T`.sql.bz2     #copia de seguidad sql del foro al servidor de backup de Hetzner 100GB

Clavo Oxidado

Pues he puesto lo siguiente:

30 10 * * * pepito scp prueba tbsxl@192.168.1.3:/home/tbsxl/almacen

Y sigue igual, no se llega a ejecutar la tarea, ni tampoco con root.

Nota: El usuario pepito es el usuario del cliente y tbsxl el usuario del servidor.

Con respecto a la clave pública "id_rsa.pub" del usuario de pepito está exportada al usuario tbsxl del servidor y renombrado como "authorized_keys" y al ejecutarlo de forma manual "scp prueba tbsxl@192.168.1.3:/home/tbsxl/almacen" sin hacer uso del cron funciona ya que no me pide la contraseña. Y comprobé en el servidor que efectivamente se ha transferido el archivo. Pero el problema creo está en el cron.

Un saludo.

"Dame 10 Hackers y en media hora dominaré el mundo."