Un des gros problème des sites pour le moment est que quand leur serveur plante ou que leur méchant hébergeur bloque leur compte, leur dernier backup remonte à 2-3 semaine voir plus !
Résultats, membres mécontent, et données perdues !
Mais voilà la solution :
Description
Je vais faire 2 scripts en bash qui après avoir récupéré les données, vont les compresser et ensuite les envoyer par email, mais vous pouvez modifier les scripts selon vos besoins
PS: Il faut au préalable avoir configurer l'envoie de mail sur votre serveur
Pour les débutants: ssmtp
Pour les experts: Postfix
Et créez le dossier backup dans /root
# mkdir /root/backup
Les paquets nécessaires et mise à jour
# apt-get update # Mise à jour des paquets
# apt-get install bzip2 # Programme de compression/décompression
# apt-get install mutt # Programme d'envoie de mail
Le backup du FTP
# nano backupftp.sh
Code :
#!/bin/bash
NOW="$(date +"%d-%m-%Y_%Hh%M")" # Récupère la date et l'heure
tar -cf VotreNomDeFichier.$NOW.tar /var/www/ 2>/dev/null # Fait une archive du dossier
bzip2 -9 VotreNomDeFichier.$NOW.tar.bz2 # Compresse
echo "Backup du FTP
Date: $NOW
Serveur: NomDeVotreServeur" | mutt -s "[Backup du FTP] $NOW" -a "VotreNomDeFichier.$NOW.tar.bz2" votrenom@email.com
# Envoie l'email avec le fichier
mv VotreNomDeFichier.$NOW.tar.bz2 /root/backup/ # Déplace le fichier dans un répertoire prévu à cette effetFaites CTRL+X pour quitter
Cliquez ensuite sur O pour accepter ou Y si vous êtes sur une machine en anglais
Terminez par Entrer
# chmod +x backupftp.sh # Pour rendre votre fichier exécutable
# ./backupftp.sh # Pour executer le fichier
Le backup de MySQL
# nano backupsql.sh
Code :
#!/bin/bash
NOW="$(date +"%d-%m-%Y_%Hh%M")" # Récupère la date et l'heure
mysqldump -uNomUtilisateur -pMotDePasse --opt NomDeLaBase > VotreNomDeFichier.$NOW.sql # Récupère la base
bzip2 -9 VotreNomDeFichier.$NOW.sql # Compresse
echo "Backup de MySQL
Date: $NOW
Site: NomDeVotreServeur" | mutt -s "[Backup de MySQL] $NOW" -a "VotreNomDeFichier.$NOW.sql.bz2" votrenom@email.com
# Envoie l'email avec le fichier
mv VotreNomDeFichier.$NOW.sql.bz2 /root/backup/ # Déplace le fichier dans un répertoire prévu à cette effetFaites CTRL+X pour quitter
Cliquez ensuite sur O pour accepter ou Y si vous êtes sur une machine en anglais
Terminez par Entrer
# chmod +x backupsql.sh # Pour rendre votre fichier exécutable
# ./backupsql.sh # Pour exécuter le fichier
Dès que tous fonctionnent vous pouvez utiliser crontab pour que les scripts s'exécutent tous seuls.
# nano /etc/crontab
Ajoutez à la suite du fichier :
00 2 * * * root /etc/cron.d/backupftp.sh
00 1 * * * root /etc/cron.d/backupsql.sh
Ceci exécutera en tant que root le script backupftp.sh à 2h du matin chaque jour et à 1h du matin le script backupsql.sh