Perché questo script in cron.daily non verrà eseguito?

Ho scritto questo piccolo script Python per eseguire backup giornalieri di una directory contenente alcuni file (i backup dovrebbero ruotare dopo una settimana). Questo è:

$ cat /etc/cron.daily/file-store-backup.py #!/usr/bin/python3 import datetime import calendar import subprocess import os.path def main(): origin = '/var/file-store' today_name = calendar.day_name[datetime.date.today().weekday()] dest = '/var/file-store-backup/' + today_name if os.path.exists(dest): subprocess.call(['rm', '-rf', dest]) subprocess.call(['cp', '--reflink=always', '-a', origin, dest]) subprocess.call(['touch', dest]) last = open('/var/file-store-backup/LAST', 'w') print(today_name, file=last) if __name__ == "__main__": main() 

quando l'ho eseguito manualmente, funziona come previsto, creando una directory di backup chiamata dopo il giorno della settimana corrente, ma non viene eseguita quotidianamente: l'ho lasciato all'interno di /etc/cron.daily per 3 giorni e dopo che non è stata creata una directory di backup , il server era in qualsiasi momento.

  • Windows non è in grado di ricordare le credenziali di accesso per la condivisione della networking DAV
  • È sicuro cambiare il proprietario della radice del documento?
  • Puppet - esclude il file dalla gestione per la directory gestita
  • Nagios3: operatori condizionati per i controlli di servizio?
  • Che cosa è una buona soluzione per crittografare alcuni file in unix?
  • Linux: / sbin / dhclient per legarsi a un'interface specifica?
  • Le autorizzazioni sono corrette:

     $ ls -l /etc/cron.daily/file-store-backup.py -rwxr-xr-x 1 root root 553 Abr 11 17:19 /etc/cron.daily/file-store-backup.py 

    Il sistema è Ubuntu Server 12.04.2 LTS e la configuration cron non è stata manomessa dall'installazione.

    Perché lo script non viene eseguito?

  • Perché la scheda 1GBit ha output limitata a 80 MiB?
  • Imansible eliminare la directory Linux - ricorsione infinita
  • Come eseguire backup di rsnapshot in posizioni diverse?
  • Come rintracciare il file che un process viene eseguito da disco?
  • Come get le prese che ascoltano su una port specifica in Linux?
  • Differenze tra "riavvio" e "istanze di riavvio di ec2"
  • 2 Solutions collect form web for “Perché questo script in cron.daily non verrà eseguito?”

    Questo accade perché il tuo script ha un'estensione .py . I file in /etc/cron.daily vengono eseguiti dal command run-parts (8) ed è predefinito per ignorare i programmi che non corrispondono a varie regole. Devi solo rimuovere l'estensione .py .

    run-parts esegue tutti i file eseguibili denominati all'interno dei vincoli descritti di seguito, trovati nella directory directory. Altri file e directory vengono ignorati in silenzio.

    Se né l'opzione -lsbsysinit né l'opzione -regex vengono dati, i nomi devono essere costituiti interamente da lettere maiuscole e minuscole ASCII, cifre ASCII, sottolineature ASCII e segmenti minuscoli ASCII.

    Per esempio

     touch /etc/cron.daily/test.py chmod +x /etc/cron.daily/test.py run-parts --test /etc/cron.daily /etc/cron.daily/apache2 ... 

    nessun segno di test.py

     mv /etc/cron.daily/test.py /etc/cron.daily/test run-parts --test /etc/cron.daily /etc/cron.daily/apache2 ... /etc/cron.daily/test 

    ta da!

    Non dovrebbe apparire la voce cron 0 * * * 1-7 root /etc/cron.daily/file-store-backup.py

    Di solito non metto lo script effettivo nel file cron, di solito mi riferisco allo script nel file.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.