PDA

Visualizza la versione completa : problema con Cron in Suse 9.3 Pro


m1001101
04-08-2005, 20:55
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

cacao74
04-08-2005, 21:02
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

m1001101
05-08-2005, 10:34
# (/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:


# (/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 :fighet:

mcz
05-08-2005, 14:56
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


#!/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


#!/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:


# 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,2 2,23,24,25,26,27,28,29,30,31 * * root /var/lib/Backups/dar_backup_diff


mcz :ciauz:

m1001101
05-08-2005, 17:04
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:

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

Grazie mille!

Ciao

cacao74
05-08-2005, 18:21
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. :dhò:

ciao

Loading