Salve.
Nel mio server ho creato un piccolo script che esegue un backup ogni ora del db, usando sql-dump di drush.
Ecco lo script:
#!/bin/bash
day=$(date +%d)
month=$(date +%m)
year=$(date +%Y)
hour=$(date +%R)
# Aggiungere una riga per ogni Drupal di cui si vuole fare il backup
drush -r /home/dev/workspace/sito sql-dump > /home/dev/Backup/backup-$year'-'$month'-'$day'.'$hour.sql
Il problema è che se io eseguo il comando da shell, dando per esempio ./backup.sh, lo script funzione e il dump del db viene creato.
Ho invece configurato crontab con "crontab -e" per eseguire lo script una volta all'ora:
5 * * * * sh /home/dev/backup.sh
Il comando viene seguito, ma viene creato un file .sql vuoto.
Quale può essere il problema?
Presumo che cron esegua lo script con i permessi giusti..
Grazie,
Sergej
lascia avviare lo script a cron come lo fai tu da riga di comando, cioe' senza sh all'inizio (anche perche' nel tuo script nella prima riga definisci che deve utilizzare la bourne again shell (bash) e non la shell normale) e quindi diventa:
5 * * * * /home/dev/backup.sh > /dev/null 2>&1
il pezzo che ho aggiunto in coda (> /dev/null 2>&1) serve a redirigere sia l'output che gli eventuali error su dev/null e quindi non mostrarli. Puo' servire a non far andare in loop l'esecuzione dello script.
Se neanche cosi' funziona prova ad avviare crontab -e con sudo in modo da impostare il cronjob come se fossi l'utente root.
Follow me @DarthDrupal and @Dinamicamente.org
Dinamicamente.org