Script de création de sauvegardes d’un site web via FTP

Nous disposons d’un site web et nous souhaitons créer un script Shell qui permettra de créer la sauvegarde locale de tous les fichiers qui se trouve sur le site web. Le script rapatriera tous les fichiers sur la machine locale et compressera ces derniers dans le but d’en faire une archive.

Installation de NcFTP Client

Le script pour fonctionner aura besoin d’utiliser la commande ncftpget, donc avant de commencer à programmer en shell, préalablement il est nécessaire d’installer le paquet ncftp.

Pour savoir si vous disposez ou non de la commande, taper directement ncftpget dans votre terminal. Si, la commande n’est pas présente, alors vous devez procéder à son l’installation.

Sur les systèmes dérivés de la distribution Debian, pour installer le paquet ncftp taper la commande suivante :

Pour les distributions utilisant les paquets RPM, si vous ne trouvez pas le paquet ncftp dans vos dépots, vous pouvez éventuellement télécharger le paquet sur le site www.rpmfind.net.

Une autre solution plus ardue pour installer ncftp, consiste à aller sur le site www.ncftp.com afin de télécharger les sources du client NcFTP et de les compiler.

Notification à l’écran

Ceci n’est pas obligatoire, le script peut marcher sans, mais vous n’aurez pas les notifications à l’écran, ce qui est fortement dommage. Les notifications permettent de savoir quand ont lieux les sauvegardes, et permettent d’être au courant un éventuel problème d’archivage.
Nous sommes sous Gnome, et nous souhaitons envoyer des notifications à l’utilisateur concernant le processus de sauvegarde.
Pour cela nous avons besoin d’installer libnotify-bin. Sous les distributions issues de Debian, utilisez la commande suivante :

Faites un test de notification :

Création script

Nous appellerons le script save_auto.sh. Nous créons le fichier avec la commande touch :

Ensuite nous rendons le fichier executable avec la commande chmod :

Ensuite éditer le fichier avec l’éditeur de texte de votre choix. Copier coller le script ci-dessous. Modifiez dans les variables d’initialisation, l’adresse FTP, mettez la votre. Modifier egalement le login, mot de passe et le répertoire local où sera fabriquée l’archive.

Tester le script

Maintenant que vous avez copié ce script vous pouvez le lancer manuellement pour le tester de la manière suivante :

Récupération Xauthority depuis crontab

Pour pouvoir afficher les messages (notify-send) depuis un script lancé depuis crontab, il est nécessaire de fabriquer un script supplémentaire qu’on appelera make_dbus.sh.
C’est grâce à ce dernier qu’on pourra avoir les messages d’informatrions qui s’afficheront sur l’ecran (notify-send).

Voici les sources du script make-dbus.sh, vous n’avez pas besoin de modifier le modifier. Copiez le simplement:

Ajouter le au démarrage de la session de l’utilisateur via le menu Gnome suivant Système -> préférences -> Applications au démarrage. Ce script se lancera au démarrage, et créera un fichier .Xdbus, ce dernier contiendra les variables d’environnements XAUTHORITY et DBUS_SESSION_BUS_ADRESS à jour. On pourra alors les récupérer facilement depuis crontab. Afin de créer une première fois le fichier .Xdbus, lancer le script que vous venez de copier :

Édition du fichier crontab

Éditez le fichier crontab via la commande :

Ajoutez-y la ligne suivante (n’oubliez pas de modifier « nom_utilisateur » par votre nom d’utilisateur Linux) :

Voila c’est fini !

Informations sur le fonctionnement du script

Le script se lancera toutes les 40 minutes, le téléchargement via FTP et la compression sous forme d’archive ne se fera que si aucune archive récente n’est présente. Une archive sera considérée récente si elle a moins de 24h. Vous n’aurez pas besoin de supprimer les anciennes archives. Le script écrasera automatiquement les anciennes archives existantes.
Une rotation sur 7 fichiers est faite.
Il peut existé au maximum jusqu’à 7 archives ayant chacune un suffixe différent correspondant au jour de la semaine.
Les archives ressembleront à cela :
archive-1.tar.gz pour lundi
archive-2.tar.gz pour mardi
archive-3.tar.gz pour mercredi

Commentaires
  • agatzebluz dit :

    Hello

    Je regarde à droite à gauche pour un script de sauvegarde et je pense que je vais utiliser des parties du tiens. Merci donc.

    Par contre, il y a une petite coquille dans les premières lignes sur la commande pour installer ncftp. Il manque un « -« .

Laisser un commentaire