Dans cet article, je vais vous fournir un script qui permet de faire une sauvegarde de votre serveur sur un ftp distant.
Prérequis
- Un serveur dédié sous Linux (ubuntu/debian)
- Un accès FTP sur un serveur distant.
Contexte
Vous souhaitez sauvegarder le dossier de votre site internet sur un FTP Distant.
La plupart des fournisseurs de serveur (Dédibox/OVH/…) donnent accès à un espace FTP quand vous louez un serveur.
Solution
Pour fonctionner le script a besoin du paquet lftp
Le script
#!/bin/sh
#
# @auteur : Romain Drouche
# @web : https://rdr-it.com
#
# prerequis : lftp
#
# Ce script archive et envoie un dossier sur un FTP distant.
# Utile pour sauvegarder vos vos serveurs dedie (debibox/ovh...)
#
cd /
bkname=$(date +%Y%m%d%H%M)
dirlocal="/var/www/"
echo $bkname
echo "Dossier a sauvegarde:$dirlocal"
echo "Creation de l archive"
tar zcf $bkname.tar.gz $dirlocal
echo "Archive OK"
echo "Connexion au FTP et transfert"
lftp ftp://IDENTIFIANT:MOTDEPASSE@SERVEUR-FTP EOF
cd /
put $bkname.tar.gz
#dir
bye
EOF
echo "Sauvegarde termine"
rm $bkname.tar.gz
echo "Archive supprimee"
Personnalisation
Il faut maintenant personnaliser deux lignes pour adapter le script à vos besoins.
Dossier à sauvegarder
dirlocal="/var/www/"
Renseigner le chemin du dossier que vous souhaitez sauvegarder.
FTP Distant
lftp ftp://IDENTIFIANT:MOTDEPASSE@SERVEUR-FTP EOF
Adapter la ligne avec vos informations de connexion.
Mise en place
Il ne reste plus qu’à faire un CRON qui s’exécute.
Améliorations possibles
Quand j’aurais un peu de temps, je vais essayer d’apporter les améliorations suivantes :
- Sauvegarder avant dans le dossier votre base de données de façon à l’avoir également dans l’archive.
- Ajouter une notification email.
- Rotation des sauvegardes sur le serveur FTP en supprimant les anciennes.