web-dev-qa-db-fra.com

Comment transférer des fichiers unidirectionnels toutes les x minutes depuis une machine distante?

Voici ma configuration:

  • Dell Dimension avec Ubuntu Server 12.10 fonctionnant 24 heures sur 24 et 7 jours sur 7 sur un site distant en dehors de mon réseau interne

    • 1 To ext HD connecté au serveur, téléchargement en cours de films/télévision
  • Raspberry Pi avec OpenELEC et XBMC s'exécutant localement

    • 4 To HD attaché à Pi, espérons recevoir le contenu du serveur

J'aimerais transférer les fichiers vidéo du serveur vers le disque dur externe de mon Pi toutes les x minutes/heures, une fois le téléchargement terminé. Je n'ai pas besoin de les supprimer automatiquement de l'emplacement distant, mais si je les nettoie, je ne souhaite pas de synchronisation bidirectionnelle.

Quelqu'un a-t-il des suggestions pour un script, un langage de script ou un protocole de transfert que je pourrais utiliser du côté du Pi?

3
Noah

Je suggère rsync de copier les fichiers et cron d'exécuter la commande rsync régulièrement. Pour vous connecter à la machine distante (distante du point de vue du Pi) sans avoir à taper manuellement un mot de passe chaque fois que vous devez pouvoir vous connecter à la machine distante avec des clés publiques/privées .

Par défaut, rsync ne supprime pas les fichiers du répertoire de destination qui ont été supprimés du répertoire source (cela vient de le tester).

2
Nobody

Je voudrais simplement exécuter rsync sur un travail cron. Exécutez crontab -e sur Ubuntu et:

*/5 * * * *  rsync -a user@raspi:/path/to/files /local/path

Cela va essayer de synchroniser à deux endroits toutes les cinq minutes. Cela risque de ne pas être assez long et la synchronisation sera indéterminée (que quelque chose soit encore écrit, par exemple en cours de téléchargement), vous devrez donc faire attention ici.


Non, c'est un mensonge ... Je ferais l'une des choses suivantes ...

  • Installez un serveur NFS sur la machine Ubuntu et montez-le à partir de Raspi (je le fais en fait) et diffusez simplement des contenus sur le réseau. Vous aurez besoin d'au moins 12 Mo/s (96 Mbps) pour obtenir un contenu 1080p de meilleure qualité.
  • Installez un serveur NFS sur le Raspi et téléchargez-le directement sur le Raspi. Compte tenu de la lenteur USB IO et de la mise en réseau du Raspi, ceci est moins idéal.
  • Téléchargez les fichiers directement vers un emplacement centralisé dédié (par exemple, en connectant un disque dur à mon routeur ou en ajoutant une autre forme de stockage connecté au réseau) et en les diffusant sur le Pi à partir de là.

Ils ont tous un léger avantage par rapport à une copie automatisée maladroite.

2
Oli