Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    11

    problema con Cron in Suse 9.3 Pro

    Ciao a tutti, da venerdì scorso ho iniziato la mia avventura (professionale) con Linux (Suse 9.3).
    Infatti ho installato un server aziendale con il suddetto SO, a parte che ci ho messo 20/22 ore in più rispetto a quando installo windows server 2003, cmq fa niente, sono riuscito, tutto configurato e funzionante, telnet, ftp, samba, ecc...
    Unico problema cron...
    Devo impostare il server per dei bakup automatici tutti i giorni verso le 23, e ogni backup deve creare un file nuovo (es. backup_2005-08-03.tar.gz, backup_2005-08-04.tar.gz, ecc.).
    Il comando giusto per fare questo dovrebbe essere:
    01 23 * * * tar -zcpf /percorso/destinazione/backup_`date +%F`.tar.gz /percorso/sorgente
    inserito con crontab -e

    il problema è che non funziona, continua a mandarmi questa mail di avvertimento:
    Date: Thu, 4 Aug 2005 19:36:01 +0200 (CEST)

    /bin/sh: -c: line 0: unexpected EOF while looking for matching ``'
    /bin/sh: -c: line 1: syntax error: unexpected end of file

    Ho provato a togliere `date +%F`, e infatti funziona, ma non me ne faccio nulla così.
    Eppure il comando con `date +%F` se dato da shell funziona...

    soluzioni, consigli?

    Grazie
    M7/7/

  2. #2
    Utente di HTML.it L'avatar di cacao74
    Registrato dal
    Jan 2005
    Messaggi
    2,570
    Se ci metti molto tempo è dovuto principalmente alla inesperienza con un sistema ed alla maggiore esperienza con un altro sistema.

    A parte questo, fai un copia-incolla della riga che hai messo in crontab e poi riportala qui utilizzando i tag [code]

    Altra cosa, il backup è fatto utilizzando cron a livello di sistema o da un utente normale?

    ciao
    slack? smack!

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    11
    codice:
    # (/tmp/crontab.XXXX8XF1vr installed on Thu Aug  4 19:37:29 2005)
    # (Cron version V5.0 -- $Id: crontab.c,v 1.12 2004/01/23 18:56:42 vixie Exp $)
    40 19 * * * tar -czpf /media/KINGSTON/Prove/bakup`date +%F`.tar.gz --directory=/ /windows/D/M77/Docs/Accounts
    crontab -e lo do da root.

    questa è la versione che funziona, ma mi è inutile:
    codice:
    # (/tmp/crontab.XXXX8XF1vr installed on Thu Aug  4 19:37:29 2005)
    # (Cron version V5.0 -- $Id: crontab.c,v 1.12 2004/01/23 18:56:42 vixie Exp $)
    40 19 * * * tar -czpf /media/KINGSTON/Prove/bakup.tar.gz --directory=/ /windows/D/M77/Docs/Accounts
    Quindi penso che il problema sia tutto nel `date +%F`, ho provato varie combinazioni 'date +%F', "date +%F", `date `+%F``, date `date '+%F'`, ecc... ma niente.

    Grazie

    P.S.
    Se ci metti molto tempo è dovuto principalmente alla inesperienza con un sistema ed alla maggiore esperienza con un altro sistema.
    Concordo, cmq se riesco a risolvere il problema della shedulazione, consiglierò sempre linux, perchè, anche con pìù pratica non credo di metterci meno tempo che con Win, quindi più ore più soldi
    M7/7/

  4. #4
    Non so se possa esserti utile, ma io faccio un backup normale due volte al mese e uno differenziale tutti gli altri giorni per alcune directories.
    Per farlo utilizzo dar e cron.
    Esattamente per il primo ho scritto due eseguibili come questi:

    Backup normale
    codice:
    #!/bin/sh
    
    DIR=/BackUps/backups
    
    mv -f ${DIR}/mysql/*.* ${DIR}/mysql/temporanea
    FILE=${DIR}/mysql/`/bin/date -I`_var_lib_mysql_directory
    # Commands
    dar -m 256 -y -s 600M -D -R /Dati/mario/mysql -c $FILE -Z "*.gz" -Z "*.bz2" -Z "*.zip" -Z "*.png" -Z "*.jpg" > /dev/null
    dar -t $FILE > /dev/null
    rm ${DIR}/mysql/temporanea/*.*
    Backup differenziale
    codice:
    #!/bin/sh
    
    DIR=/BackUps/backups
    
    # Commands
    FILE=${DIR}/mysql/`/bin/date -I`_var_lib_mysql_directory_diff
    PREV=`/bin/ls $DIR/mysql/*.dar|/usr/bin/tail -n 1|/usr/bin/awk -F '.' '{print $1;}'`
    # Commands
    dar -m 256 -y -s 600M -D -R /Dati/mario/mysql -c $FILE -Z "*.gz" -Z "*.bz2" -Z "*.zip" -Z "*.png" -Z "*.jpg" -A $PREV > /dev/null
    dar -t $FILE > /dev/null
    e per cron:
    codice:
    # dar_backup
    0 19 1,15 * *	root	/var/lib/Backups/dar_backup
    # dar_backup_diff
    0 19 2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31 * *	root	/var/lib/Backups/dar_backup_diff
    mcz
    Linux:come e perchè Il mio blog Salviamo Konqueror!
    Retta azione, Verità, Amore, Pace e Non violenza.
    ------------
    Powered by Chakra 64bit & Chakra 64bit & OpenSuse 64bit

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    11
    Grandioso!!! Ci sono riuscito, funzia!!!

    Prima usando il tuo sistema `date -I`, ho visto che tornava a funzionare il comando, quindi il cerchio si è ristretto sul %, quindi mettendo un \ davanti al % tutto OK!

    es:
    codice:
    tar -zcpf Backup_`date +\%F_\%k-\%M-\%S`.tar.gz /dir
    probabilmente % vinene interpretato da cron in qualche altro modo...

    Grazie mille!

    Ciao
    M7/7/

  6. #6
    Utente di HTML.it L'avatar di cacao74
    Registrato dal
    Jan 2005
    Messaggi
    2,570
    Originariamente inviato da m1001101
    probabilmente % vinene interpretato da cron in qualche altro modo...
    Esatto.
    Viene interpretato come new-line, se non viene protetto.
    Dopo il primo '%', il resto della riga viene inviato al comando su stdin.

    man 5 crontab

    Purtroppo mi ero scordato di tale comportamento.

    ciao
    slack? smack!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.