Progetto

Generale

Profilo

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
  • 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 {} \;