Wiki¶
Informazioni relative al nostro server web che fornisce i servizi per il blog (wordpress), i progetti (redmine) e la mailing list (mailman). Il server è una macchina virtuale con Ubuntu Linux nel cloud di Leaseweb.
Procedura automatica di backup¶
- Scrittura bash script (backup.sh) per achiviazione directory importanti (redmine, wordpress, mailman) e dump database nella directory /root/backup
- Creazione account su Copy per hacklabterni@gmail.com
- Installazione del client Copy command line (CopyConsole) sul server
- Installazione di CopyConsole in init.d (parte da solo al riavvio)
- Esecuzione automatica, tutti i giorni alle 5, dello script backup.sh (crontab)
Ogni giorno alle 05:00 parte lo script che crea gli archivi delle directory importanti, li nomina con la data e il percorso (es: 2015-11-12-usr_share_redmine.tar.gz) e cancella quelli più vecchi di 4 giorni.
Contestualmente la cartella che contiene i backup viene sincronizzata tramite Copy, quindi una copia degli archivi di backup degli ultimi 4 giorni rimane sul nostro server e una sui server di Copy.
backup.sh¶
#!/bin/bash
# Daily backup script
# Create some needed variable
day=$(date +%F)
folder="/usr/share/redmine"
file="/root/backup/$day-usr_share_redmine.tar.gz"
tar czf $file $folder
folder="/usr/share/wordpress"
file="/root/backup/$day-usr_share_wordpress.tar.gz"
tar czf $file $folder
folder="/var/lib/redmine"
file="/root/backup/$day-var_lib_redmine.tar.gz"
tar czf $file $folder
folder="/var/lib/mailman"
file="/root/backup/$day-var_lib_mailman.tar.gz"
tar czf $file $folder
folder="/var/www/wp-uploads"
file="/root/backup/$day-var_www_wp-uploads.tar.gz"
tar czf $file $folder
mysqldump --user=root --password="nonèquesta" --all-databases | gzip > $day-backup.sql.gz
# Remove backup files older than 4 days
find /root/backup/ -mtime +4 -name '*.gz' -exec rm {} \;