Ho provato molti script per il backup del database ma non sono riuscito a farlo. Voglio fare il backup del mio database ogni ora.
Ho aggiunto i file alla cartella "/etc/cron.hourly/", ho cambiato il suo chmod in 755, ma non è stato eseguito. Almeno scrivo il mio pseudo codice.Script di shell Linux per il backup del database
Sarei felice se tu possa scrivere uno script per questa operazione e dimmi cosa devo fare di più? Dopo aver aggiunto questo file di script alla cartella /etc/cron.hourly/
.
- Get data corrente e creare una variabile,
date=date(d_m_y_H_M_S)
- creare una variabile per il nome del file,
filename="$date".gz
- Prendi il dump del mio database come questo
mysqldump --user=my_user --password=my_pass --default-character-set=utf8 my_database | gzip > "/var/www/vhosts/system/example.com/httpdocs/backups/$("filename")
- Eliminare tutti i file nella cartella
/var/www/vhosts/system/example.com/httpdocs/backups/
che sono più vecchi di 8 giorni - Al file
"/var/www/vhosts/system/example.com/httpdocs/backup_log.txt"
, questo testo sarà scritto:Backup is created at $("date")
- Cha nge i proprietari di file (chown) da root a "my_user". Perché voglio aprire il backup e registrare i file dall'account FTP "my_user".
- Non voglio un'e-mail dopo ogni cron.
>/dev/null 2>&1
sarà aggiunto.
Nice - ma per i neofiti, devi creare esplicitamente il file di log (coz non puoi accodare a un file che non esiste) o controllarlo e crearlo – fezfox
Qual è la rotazione su questo, quanti backup giornalieri fa conservare? – alimack
Avviso di sicurezza: l'uso dell'argomento --password rende la password rilevabile cercando la riga di comando del processo in/proc. Non utilizzare su un sistema multiutente a meno che non siano state applicate le varie patch di sicurezza del kernel che impediscono agli utenti di guardare le informazioni sui processi di altri utenti. – Perkins