schedulazione [RISOLTO]
schedulazione [RISOLTO]
Ciao, ho fatto uno script per eseguire il backup giornaliero su postgres,
se lancio lo script da riga di comando tutto ok, se invece provo ad inserirlo sul file di configurazione di crontab niente non parte
qualcuno può aiutarmi ?
grazie d
se lancio lo script da riga di comando tutto ok, se invece provo ad inserirlo sul file di configurazione di crontab niente non parte
qualcuno può aiutarmi ?
grazie d
Ultima modifica di daddo il venerdì 22 giugno 2012, 18:43, modificato 1 volta in totale.
- rpadovani
- Imperturbabile Insigne
- Messaggi: 3434
- Iscrizione: lunedì 8 dicembre 2008, 19:49
- Desktop: GNOME Shell
- Distribuzione: Ubuntu 18.04 x86_64
- Sesso: Maschile
- Località: Munich, Germany
- Contatti:
Re: schedulazione
In che senso l'hai inserito nel file di configurazione di crontab?
Hai creato un nuovo crontab come spiegato nella documentazione?
Hai creato un nuovo crontab come spiegato nella documentazione?
Re: schedulazione
esatto,
crontab -e
00 19 * * * utente /percorso/script.sh
salvo
verifico con contab -l
crontab -e
00 19 * * * utente /percorso/script.sh
salvo
verifico con contab -l
- rpadovani
- Imperturbabile Insigne
- Messaggi: 3434
- Iscrizione: lunedì 8 dicembre 2008, 19:49
- Desktop: GNOME Shell
- Distribuzione: Ubuntu 18.04 x86_64
- Sesso: Maschile
- Località: Munich, Germany
- Contatti:
Re: schedulazione
Scusami, utente cos'è?
Lo script ha i permessi di esecuzione?
Devi essere root per eseguire lo script?
Lo script ha i permessi di esecuzione?
Devi essere root per eseguire lo script?
Re: schedulazione
Utente root
permessi su script -rwxrwxrwx 1 root root
permessi su script -rwxrwxrwx 1 root root
- tomm
- Scoppiettante Seguace
- Messaggi: 796
- Iscrizione: lunedì 15 ottobre 2007, 10:16
- Desktop: Gnome
- Distribuzione: Ubuntu 16.04
Re: schedulazione
Dove vendono salvati i backup? il percorso è indicato come relativo o assoluto?
mi sembra di ricordare che cron non trova i percorsi relativi.
mi sembra di ricordare che cron non trova i percorsi relativi.
Re: schedulazione
relativo /backup/vari
comunque il percorso viene indicato nello script, che crea una dir per ogni giorno della settimana
comunque il percorso viene indicato nello script, che crea una dir per ogni giorno della settimana
- tomm
- Scoppiettante Seguace
- Messaggi: 796
- Iscrizione: lunedì 15 ottobre 2007, 10:16
- Desktop: Gnome
- Distribuzione: Ubuntu 16.04
Re: schedulazione
prova a scrivere il percorso assoluto e posta il risultato esatto di crontab -l.
Come dice WebbyIT, la sintassi che hai che hai indicato sopra sembra essere sbagliata.
Come dice WebbyIT, la sintassi che hai che hai indicato sopra sembra essere sbagliata.
- rpadovani
- Imperturbabile Insigne
- Messaggi: 3434
- Iscrizione: lunedì 8 dicembre 2008, 19:49
- Desktop: GNOME Shell
- Distribuzione: Ubuntu 18.04 x86_64
- Sesso: Maschile
- Località: Munich, Germany
- Contatti:
Re: schedulazione
Non devi specificare l'utente nello script.
Se deve avere i permessi di root, dai
e inserisci
Se deve avere i permessi di root, dai
Codice: Seleziona tutto
sudo crontab -e
Codice: Seleziona tutto
00 19 * * * /percorso/script.sh
Re: schedulazione
:~# sudo crontab -l
# m h dom mon dow command
# backup db
# 50 11 * * * root /etc/init.d/backup_postgresql.sh --dated
00 19 * * * /etc/init.d/backup_postgresql.sh
# restart tomcat
00 23 * * * root /etc/init.d/tomcat stop
05 23 * * * root /etc/init.d/tomcat start
# m h dom mon dow command
# backup db
# 50 11 * * * root /etc/init.d/backup_postgresql.sh --dated
00 19 * * * /etc/init.d/backup_postgresql.sh
# restart tomcat
00 23 * * * root /etc/init.d/tomcat stop
05 23 * * * root /etc/init.d/tomcat start
- rpadovani
- Imperturbabile Insigne
- Messaggi: 3434
- Iscrizione: lunedì 8 dicembre 2008, 19:49
- Desktop: GNOME Shell
- Distribuzione: Ubuntu 18.04 x86_64
- Sesso: Maschile
- Località: Munich, Germany
- Contatti:
Re: schedulazione
E quindi?
Sai, se magari dicessi anche qualcosa, magari riusciremmo a darti una mano!
Sai, se magari dicessi anche qualcosa, magari riusciremmo a darti una mano!
Re: schedulazione
Scusami, ma a parte dirti che non funziona e postare il risultato cosa ti posso dire !
- rpadovani
- Imperturbabile Insigne
- Messaggi: 3434
- Iscrizione: lunedì 8 dicembre 2008, 19:49
- Desktop: GNOME Shell
- Distribuzione: Ubuntu 18.04 x86_64
- Sesso: Maschile
- Località: Munich, Germany
- Contatti:
Re: schedulazione
Quindi neanche dopo che l'hai inserita con
funziona?
Come lanci normalmente lo script?
Codice: Seleziona tutto
sudo crontab -e
Come lanci normalmente lo script?
Re: schedulazione
no continua a non partire
mentre se lancio il comando
./backup_postgres
parte e nelle cartella indicata, se non presente mi crea quella del giorno ad esempio mar altrimenti scrive il file nella cartella del giorno
mentre se lancio il comando
./backup_postgres
parte e nelle cartella indicata, se non presente mi crea quella del giorno ad esempio mar altrimenti scrive il file nella cartella del giorno
- tomm
- Scoppiettante Seguace
- Messaggi: 796
- Iscrizione: lunedì 15 ottobre 2007, 10:16
- Desktop: Gnome
- Distribuzione: Ubuntu 16.04
Re: schedulazione
hai messo il percorso assoluto alla cartella del backup? magari posta anche lo script.
Inoltre puoi loggare quello che fa lo script reindirizzando l'output in un file di log.
Ad es:
PS: /etc/init.d/ non sarebbe il posto adatto per uno script di backup
Inoltre puoi loggare quello che fa lo script reindirizzando l'output in un file di log.
Ad es:
Codice: Seleziona tutto
00 19 * * * /etc/init.d/backup_postgresql.sh > /var/log/backup.log
Re: schedulazione
Eccolo, ho provato anche altri percorsi, /etc/init.d/ era per prova
#!/bin/bash
export PGPASSWORD="11111111"
DATABASE_NAME="DB2010"
USERNAME="postgres"
HOST="localhost"
WORKING_DIR="/backup/vari/"
RUNNING_MODE=$5
PG_DUMP=/usr/local/APT/pgsql84/bin/pg_dump
if [ "$RUNNING_MODE" = "--dated" ]
then
DATA=`date +'%h_%d_%y'`
WORKING_DIR="${WORKING_DIR}"/"${DATABASE_NAME}"
OUTFILE="${DATABASE_NAME}_${DATA}.sql"
else
DATA=`date +'%a'`
if [ "$RUNNING_MODE" = "--isolated" ]
then
WORKING_DIR="${WORKING_DIR}"/"${DATABASE_NAME}/${DATA}"
OUTFILE="${DATABASE_NAME}.sql"
else
# data = giorno della settimana
WORKING_DIR="${WORKING_DIR}"/"${DATA}"
OUTFILE="${DATABASE_NAME}.sql"
fi
fi
# Creo la directory se non esiste
if ! test -d "$WORKING_DIR"
then
mkdir "$WORKING_DIR" > /dev/null 2>&1
if [ $? -ne 0 ]
then
echo "Errore nella creazione della directory $WORKING_DIR"
exit
fi
fi
# entro nella directory di lavoro
cd "$WORKING_DIR"
START_TIME=`date` # istante di inizio
# esecuzione del backup effettivo
$PG_DUMP --create --column-inserts -f $OUTFILE --encoding=UTF8 -U $USERNAME -h $HOST $DATABASE_NAME
END_TIME=`date`
#!/bin/bash
export PGPASSWORD="11111111"
DATABASE_NAME="DB2010"
USERNAME="postgres"
HOST="localhost"
WORKING_DIR="/backup/vari/"
RUNNING_MODE=$5
PG_DUMP=/usr/local/APT/pgsql84/bin/pg_dump
if [ "$RUNNING_MODE" = "--dated" ]
then
DATA=`date +'%h_%d_%y'`
WORKING_DIR="${WORKING_DIR}"/"${DATABASE_NAME}"
OUTFILE="${DATABASE_NAME}_${DATA}.sql"
else
DATA=`date +'%a'`
if [ "$RUNNING_MODE" = "--isolated" ]
then
WORKING_DIR="${WORKING_DIR}"/"${DATABASE_NAME}/${DATA}"
OUTFILE="${DATABASE_NAME}.sql"
else
# data = giorno della settimana
WORKING_DIR="${WORKING_DIR}"/"${DATA}"
OUTFILE="${DATABASE_NAME}.sql"
fi
fi
# Creo la directory se non esiste
if ! test -d "$WORKING_DIR"
then
mkdir "$WORKING_DIR" > /dev/null 2>&1
if [ $? -ne 0 ]
then
echo "Errore nella creazione della directory $WORKING_DIR"
exit
fi
fi
# entro nella directory di lavoro
cd "$WORKING_DIR"
START_TIME=`date` # istante di inizio
# esecuzione del backup effettivo
$PG_DUMP --create --column-inserts -f $OUTFILE --encoding=UTF8 -U $USERNAME -h $HOST $DATABASE_NAME
END_TIME=`date`
- tomm
- Scoppiettante Seguace
- Messaggi: 796
- Iscrizione: lunedì 15 ottobre 2007, 10:16
- Desktop: Gnome
- Distribuzione: Ubuntu 16.04
Re: schedulazione
ho testato il tuo script direttamente da linea di comando e con cron, usando esattamente la tua configurazione e funziona perfettamente in entrambi i casi.
L'unica cosa che mi viene in mente è che u lanci lo script da linea di comando con l'utente postgres, mentre cron lo lancia con l'utente root e che postgres è configurato per accettare connessioni dall'utente postgres solo con il metodo ident.
Se questa ipotesi è giusta allora devi solo configurare postgres per fargli accettare connessioni dall'utente postgres con il metodo md5.
Sennò ci dev'essere un altro problema. Hai configurato cron in modo di loggare quello che fa lo script?
Poi potrai vedere nel file /var/log/backup.log l'eventuale messaggio di errore.
L'unica cosa che mi viene in mente è che u lanci lo script da linea di comando con l'utente postgres, mentre cron lo lancia con l'utente root e che postgres è configurato per accettare connessioni dall'utente postgres solo con il metodo ident.
Se questa ipotesi è giusta allora devi solo configurare postgres per fargli accettare connessioni dall'utente postgres con il metodo md5.
Sennò ci dev'essere un altro problema. Hai configurato cron in modo di loggare quello che fa lo script?
Codice: Seleziona tutto
00 19 * * * /etc/init.d/backup_postgresql.sh > /var/log/backup.log
Re: schedulazione
su postgres ho configurato il file pg_hba.conf in modo da accettare tutto di tutti "host all all 0.0.0.0/0 md5"
ora provo a configurare cron per lo script, poi lo posto
ora provo a configurare cron per lo script, poi lo posto
Re: schedulazione
possible file backup.log completamente vuoto ?
- rpadovani
- Imperturbabile Insigne
- Messaggi: 3434
- Iscrizione: lunedì 8 dicembre 2008, 19:49
- Desktop: GNOME Shell
- Distribuzione: Ubuntu 18.04 x86_64
- Sesso: Maschile
- Località: Munich, Germany
- Contatti:
Chi c’è in linea
Visualizzano questa sezione: 0 utenti iscritti e 25 ospiti