Pour commencer ouvrez un terminal et tapez : vim sauvegardeFTP
Cela à pour effet de lancer vim (éditeur de texte en ligne de commande) et créer le fichier sauvegardeFTP
Un fois dans vim, tappez "i" pour le mettre en mode "Insertion".
Tapez ensuite : #! /bin/sh
Cette ligne indiquera au système que c'est un fichier script SH (Shell).
Allez à la ligne puis saisissez ce texte :
#Configuration du script
#Serveur
serveurFTP="ftp.mon_domain.tld"
#Port du serveur
serveurFTPPort="21"
#Utilisateur
serveurFTPUser="moi"
#Mot de Passe
serveurFTPPass="mon mot de passe"
#dossier de destination sur le serveur FTP. Attention il doit exister!
serveurFTPDossier="sauvegarde/"
#Nom de l'archive, n'oublier pas de mettre les extensions ".tar.gz"
fichierSortie="Sauvegarde.tar.gz"
Ce paragraphe à pour but de créer des variables pour une utilisation ultérieur dans le script. Maintenant nous allons commencer par indiquer à l'utilisateur que le script ce lance bien. Comme le dossier à compresser et à envoyer sur le serveur est indiqué en argument du script, il faut commencer par tester l'existence du dossier.
#Test de l'existence du dossier passé en argument
if [ "$1" = "" ] ; then
echo Veuillez indiquer le nom du dossier à sauvegarder en argument.
echo Usage : $0 NomFichier
exit 1
fi
#Test de l'existence du dossier
if [ -e $1 ] ; then
#Le code en cas ou le chemin est bon
else
echo "Le dossier '$1' n'existe pas"
exit 1
fi
Maintenant que l'on est sûr du chemin qui est en argument il est possible de passé à la compression du dossier. Pour cela nous utiliseron l'outils UNIX tar qui est est dans toutes bonnes distributions (Même sur Mac Os X). Les options "czf" de tar lui indique que l'on veut compresser au format TAR puis GZ et que le dossier à compresser est après les options. Voici le code à mettre à la place de "#Le code en cas ou le chemin est bon" du code précédent.
echo Script de Sauvegarde FTP
if [ -e $fichierSortie ] ; then
echo "Suppresion de l'ancienne Archive!"
rm $fichierSortie
fi
echo Compression du dossier : $1
tar -czf $fichierSortie $1
echo Envoi du fichier sur le serveur FTP : $serveurFTP
ftp -i -n $serveurFTP $serveurFTPPort <<END_SCRIPT
quote USER $serveurFTPUser
quote PASS $serveurFTPPass
pwd
cd $serveurFTPDossier
binary
put $fichierSortie
pwd
quit
END_SCRIPT
echo "Fin de l'envoi sur le serveur"
echo Suppression du fichier de sauvegarde
rm $fichierSortie
echo "Fin de la sauvegarde !"
Vous avez du remarquer que la commande FTP est terminé par "<< END_SCRIPT". Le texte contenu entre ce symbole et le symbole "END_SCRIPT" est envoyé a la commande durant son exécution. Il permet l'identification de l'utilisateur, le changement de dossier, l'envoi du fichier et la déconnexion du serveur FTP.
Maintenant, il faut sortir et enregistrer notre travail. Pour cela commencer par appuyer sur "echap" ("esc" sur Mac) pour sortir du mode insertion puis tapez ":wq". Le "w" demandera à vim d'enregistrer le fichier et le "q" lui demandera de quitter.
Pour l'utilisation du script, tapez dans le terminal : ./sauvegardeFTP monDossier
Après avoir validé, vous verrez l'exécution du script avec la compression et l'envoi sur le serveur FTP.
Niveau : Expérimenté
Compatibilité : Tous serveur FTP (Windows inclu)
Aucun commentaire:
Enregistrer un commentaire