Gracias Gracias:  0
Me Gusta Me Gusta:  0
No me Gusta No me Gusta:  0
Mostrando resultados del 1 al 5 de 5

Tema: Ayuda: hacer que un script se ejecute sólo una vez al día

  1. #1
    Fecha de Ingreso
    22-septiembre-2013
    Mensajes
    245
    Post Thanks / Like
    Poder de Credibilidad
    6

    Ayuda: hacer que un script se ejecute sólo una vez al día

    Hola,

    Llevo un tiempo queriendo hacer un script en bash que me ayude a realizar una tarea 1 vez al día. Os explico mi problema:

    Lo que quiero es generarme un ebook de feeds con el programa calibre y mandarmelo por email al kindle. Eso lo consigo hacer bien, pero claro, quiero que me genere 1 ebook al día, dándome igual la hora (cuando encienda el ordenador). Pero en crontab no soy capaz de decirle que lo haga solo una vez por día, sino que tienes que ponerle a qué hora quieres que se ejecute. Pero claro, como yo tenga el ordenador apagado a esa hora, ya ese día no me lo manda.

    Me busqué un poco la vida e hice este script y puse en crontab que se ejecute cada vez que enciendo el ordenador:

    Código:
     
    #!/bin/bash
    cd [directorio donde está el script]
    read -N 8 fecha < HOY.txt
    if [ $fecha != $(date +%Y%m%d) ]; then
      rm HOY.txt
      fecha=$(date +%Y%m%d) 
      echo $fecha >> HOY.txt
      ebook-convert [directorio de la receta de CALIBRE] [Directorio donde guardo el ebook]/HOY.mobi
      calibre-smtp -a [Directorio donde guardo el ebook]/HOY.mobi ******@***.com *********@free.kindle.com ""
    
    fi
    Sin embargo, en el kindle recibo el ebook varias veces (dos o tres), y no sé por qué. La idea del script es que compare con el contenido del archivo txt el día, y si es distinto del día actual, entonces borra el txt y lo crea con la fecha actual, y hace el ebook y lo manda. Mientras esté en el mismo día no hace nada. ¿Dónde creeis que está mi error?

    Muchas gracias

  2. #2
    Fecha de Ingreso
    26-abril-2011
    Ubicación
    Mdeo, Uy
    Mensajes
    1.235
    Post Thanks / Like
    Poder de Credibilidad
    9
    Agrega como lo pusiste en el crontab. Y fíjate si en verdad corre una vez sola el crontab. ( cat /var/log/messages | grep crontab )

    saludos!

  3. #3
    Fecha de Ingreso
    22-septiembre-2013
    Mensajes
    245
    Post Thanks / Like
    Poder de Credibilidad
    6
    Cuando escribo ese código, cat /var/log/messages | grep crontab no me sale nada, como si no hubiera de crontab en var/log/messages.

    En crontab puse "Activar esta tarea" y "Ejecutar al iniciar el sistema". La idea es que si he encendido el ordenador varias veces con el script que hice no debería volverse a crear el ebook y mandarlo por correo...

    Curiosamente las fechas de envío son de 10 minutos de difierencia y cosa así, así que no es porque lo haya encendido varias veces en el día..

  4. #4
    Fecha de Ingreso
    26-abril-2011
    Ubicación
    Mdeo, Uy
    Mensajes
    1.235
    Post Thanks / Like
    Poder de Credibilidad
    9
    Cita Iniciado por J_VM Ver Mensaje
    Cuando escribo ese código, cat /var/log/messages | grep crontab no me sale nada, como si no hubiera de crontab en var/log/messages.

    En crontab puse "Activar esta tarea" y "Ejecutar al iniciar el sistema". La idea es que si he encendido el ordenador varias veces con el script que hice no debería volverse a crear el ebook y mandarlo por correo...

    Curiosamente las fechas de envío son de 10 minutos de difierencia y cosa así, así que no es porque lo haya encendido varias veces en el día..
    Lo que te decía era ver como estaba anotado el script en el crontab...

    si pones crontab -l ¿que aparece?

    como por ejemplo:
    Código:
    crontab -l
    # DO NOT EDIT THIS FILE - edit the master and reinstall.
    # (/tmp/crontab.NpiHo0 installed on Wed Jan 29 09:24:18 2014)
    # (Cronie version 4.2)
     
     0 1 * * * /root/bin/script01
    0  1  * * * /root/bin/script02
     0  2 10 * * /root/bin/script03
     30 2 10 * * /root/bin/script04
    ... no entiendo como editas el crontab... yo lo hago por consola: como root pongo crontab -e

    leete esto: http://www.thegeekstuff.com/2009/06/...ntab-examples/


    saludos!
    Última edición por maniat1k; 10-mar-2014 a las 18:34 Razón: un ejemplo

  5. #5
    Fecha de Ingreso
    22-septiembre-2013
    Mensajes
    245
    Post Thanks / Like
    Poder de Credibilidad
    6
    Código:
    # DO NOT EDIT THIS FILE - edit the master and reinstall.
    # (/tmp/kde-javier/kcmshellJH8959.tmp installed on Fri Jan 17 18:42:46 2014)
    # (Cronie version 4.2)
    #Crea el periodico HOY para mi Kindle
    @reboot "/home/javier/Biblioteca de calibre/HOY"
    
    #Crea mis noticias RSS sobre FÃ*sica para mi Kindle
    @reboot "/home/javier/Biblioteca de calibre/Fisica"
    
    
    # Archivo generado con KCron el Viernes, 17 de enero de 2014 18:42.
    Perdona, esa es la salida. Gracias por el link, parece una web con muchos consejos / trucos sobre linux! pero para lo del crontab creo que no me ayuda, ya que el @daily lo que hace es ejecutarse a las 12 de la noche y si a esa hora no tengo encendido el ordenador entonces no se ejecuta...

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Temas Similares

  1. Respuestas: 2
    Último mensaje: 15-feb-2013, 23:44
  2. Parar e iniciar servicios en linux
    By ubaloie in forum FAQs, Manuales y Tutoriales
    Respuestas: 1
    Último mensaje: 26-may-2006, 06:31
  3. Ayuda para hacer una web
    By ktux in forum Software
    Respuestas: 3
    Último mensaje: 03-feb-2006, 03:38
  4. Usuario que ejecute script de root
    By impala in forum Software
    Respuestas: 1
    Último mensaje: 09-dic-2005, 13:19
  5. Como recibir ayuda y hacer preguntas
    By DiabloRojo in forum FAQs, Manuales y Tutoriales
    Respuestas: 2
    Último mensaje: 10-ago-2005, 18:51

Tags for this Thread

Marcadores

Normas de Publicación

  • No puedes crear nuevos temas
  • No puedes responder mensajes
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •