- Modifié

L'objectif de ce script est de rapatrier automatiquement les fichiers présents dans un dossier précis de votre serveur dédié vers un autre dossier sur votre NAS ou tout autre serveur fonctionnant sur un système Unix.
Ce script basé sur le rsync a été en grande partie écrit par 4r3, un ami. J'ai participé aux dernières modifications et corrections ainsi qu'à la mise en place du script d'installation.
Pré-requis
- Un serveur dédié sous Debian (ou autre système Linux)
- Un NAS (de préférence Synology)
- Un peu d'huile de coude et de patience
1) Configuration du client torrent
Nous allons tout d'abord configurer notre client torrent. L'exemple sera fait ici avec ruTorrent mais reste valable pour les autres clients torrents.
Dans le menu puis dans "Autotools", nous allons configurer de telle sorte que les torrents téléchargés dans le dossier /home/<user>/torrents/<votre_dossier> soient déplacés dans le dossier /home/<user>/torrents/complete/<votre_dossier>.
Nous sommes obligés de procéder de cette façon, car si nous synchronisions tous les torrents, le script pourrait se lancer alors que les téléchargements ne sont pas finis. De plus, nous pouvons donc sélectionner les fichiers à synchroniser.

Pour bien comprendre cette capture : ruTorrent va déplacer les fichiers et dossiers téléchargés en respectant l'arborescence.
Par exemple : si dans le script vous avez spécifié que le dossier a surveiller est "/home/user/torrents/complete/synchro", alors il suffit de configurer autotools comme sur la capture et de placer les nouveaux téléchargements dans "/home/user/torrents/synchro".
Ainsi, une fois le téléchargement terminé, un lien dur sera créé dans "/home/user/torrents/complete/synchro" et la synchronisation se lancera.
"/home/user/torrents/complete/synchro" sera donc le dossier à spécifier lors de l'installation du script. Libre à vous d'en choisir un autre mais veillez à configurer ruTorrent en conséquence.
2) Configuration du NAS
Depuis la mise à jour de DSM en version 5.1, diverses modifications ont été apportées au fonctionnement des accès extérieurs au NAS. Nous allons donc effectuer quelques modifications dans la configuration du NAS afin de permettre le fonctionnement optimal de la synchronisation.
Dans le dossier qui sera la destination de la synchronisation, vous devez impérativement créer un dossier /tmp sinon la synchronisation ne fonctionnera pas. Ce dernier est utilisé pour placer les fichiers en cours de synchro et pouvoir les reprendre si jamais la connexion se coupe.
Ensuite, nous devons activer les services SSH et rsync.
Pour le service SSH, il faut vous rendre dans le panneau de configuration du NAS puis dans "Terminal & SNMP" cochez la case correspondante et précisez un port (le même que lors de l'installation du script).


3) Utilisation de la clé publique de votre serveur
Le but ici est de faire en sorte que notre NAS ne demande pas de mot de passe au lancement du script, sinon rien d'automatique...
Tapez donc :
ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub "root@<adresse_de_votre_NAS> -p <port_SSH_du_NAS>"
Vous pouvez tout de suite tester que cela fonctionnement en lançant cette commande :ssh root@<adresse_de_votre_NAS> -p <port_SSH_du_NAS>
Aucun mot de passe ne devrait vous être demandé.4) Installation du script
Le script va vous demander les informations suivantes :
- Le nom de l'utilisateur sur le serveur
- Le dossier à surveiller
- Les infos sur votre NAS
- La vitesse de la synchronisation (en Ko/s)
Il va ensuite créer l'arborescence, déplacer les fichiers, les éditer et ajouter une tâche cron pour le lancement automatique.
cd /tmp
git clone -b alpha https://github.com/4r3/synchro-seedbox
cd synchro-seedbox
chmod +x makeinstall.sh
./makeinstall.sh
5) Paramétrage de la page web
La page web a été installée dans /var/www/syncnas. Nous allons paramétrer nginx afin que vous puissiez accéder à cette page.
nano /etc/nginx/sites-enabled/rutorrent.conf
Et ajouter ceci :
location ^~ /syncnas {
root /var/www;
include /etc/nginx/conf.d/php.conf;
include /etc/nginx/conf.d/cache.conf;
index index.html index.php;
}
Enfin on redémarre nginx pour que les changements soit pris en compte.
service nginx restart
Vous pouvez maintenant accéder à la page via [url=http://votre_ip/syncnas/]http://votre_ip/syncnas/[/url]
6) Utilisation
Tout est maintenant configuré. Le script synchronisera automatiquement les fichiers qu'il trouvera dans le dossier renseigné lors de l'installation. Vous pouvez suivre l'avancement de la synchronisation à l'adresse [url=http://votre_ip/syncnas/]http://votre_ip/syncnas/[/url].
--------------------------------------------------------------------------------------------------------------------
En cas de problème, vous pouvez arrêter le script de cette façon :
crontab -e
Et commentez la ligne correspondant au script :
#* * * * * cd /home/edouard/synchro && ./synchro.sh > /dev/null
Ceci évitera le lancement automatique du script.Pour le stopper, il suffit de lancer cette commande :
rm /tmp/synchro
--------------------------------------------------------------------------------------------------------------------