Synchroniser le local vers un hebergement Web

Pas de serveur dédié ? 🙁

Si comme moi vous ne disposez pas d’un serveur dédié, vous pouvez quand même synchroniser un répertoire local vers votre site web ( et inversement ) via l’application lftp.

1 – Installer lftp via votre gestionnaire de paquet.

2 – on ouvre un terminal puis on lance la commande lftp :

3 – on quitte lftp en tapant la commande quit

Cette manipulation nous à permis de créer un lftp.conf.

Modification du /etc/lftp.conf

Si comme moi vous utilisez un certificat SSL non certifié par une autorité reconnu, vous allez surement avoir l’erreur suivante :

Erreur fatale: Certificate verification: Not trusted

Nous allons donc dire à lftp de ne pas faire de vérification.

ATTENTION : cette technique n’est applicable que sur des sites de confiance !

Bon, vu que c’est mon site et que j’ai payé la facture…je sais à qui il m’appartient 😉

Continuons…

En root nous ouvrons /etc/lftp.conf via vi afin d’inséré en fin de fichier la ligne suivante :

set ssl:verify-certificate no

Voilà, nous sommes près. Munissez vous de l’adresse ftp de votre site, l’identifiant ainsi que son mot de passe.

Allez, un p’tit script !

Ouvrez votre éditeur préféré, et copier-coller le script suivant ( en remplaçant bien entendu le contenu des variables par vos paramètres )

#!/bin/sh

ftp_user="votre_identifiant"
ftp_pass="votre_mot_de_passe"
ftp_host="l_adresse_de_votre_serveur_FTP"

sync() {

path_local="Le_chemin_de_votre_dossier_à_synchroniser_locale"
path_remote="Le_chemin_de_votre_dossier_à_synchroniser_distant"
excludes=(".git/")                ## type de fichiers à ne pas synchroniser

s_excludes=""
for (( i_exclude=0; i_exclude < ${#excludes[@]}; ++i_exclude ))
do
s_excludes="${s_excludes}-x ${excludes[$i_exclude]} "
done

lftp "ftp://${ftp_user}:${ftp_pass}@${ftp_host}" -e "mirror --verbose=3 -e -R ${s_excludes} ${path_local} ${path_remote} ; quit"
}
sync

Sauvegarder avec le nom que vous voulez dans le répertoire que vous voulez, pour moi ça sera syncho dans ~/.scripts

On rends le script exécutable via un :

 chmod -x ~/.scripts/syncho

Enjoy !

A noter que, pour la synchronisation d’autres dossiers, il suffit d’intégrer de copier-coller la fonction  sync, la renommer sync2 ( par exemple ), de modifier les paramètres path et enfin d’appeler la fonction.

@+++ 😉