Bonjour,
Je souhaite automatiser des tâches pour le transfert des fichiers d'un serveur à un autre. Je ne suis pas un habitué de linux. on m'a conseiller d'utitiliser le protocole SCP pour synchroniser l'export de mes fichier.
Je suppose que je doit avoir une commande pour me connecter au serveur distant et une autre pour automatiser l'export des fichiers.
Pouvez vous m'aider pour les commandes SVP?

1 réponse


bonjour, en effet tu as SCP ou rsync. Les deux s'appuient sur le protocole SSH (entre autres). Il te faut donc une connection ssh entre les deux serveurs pour pouvoir exploiter ces deux logiciels.

exemple SCP : pour envoyer tout les fichiers de façon recursive présent dans le dossier :/path/to/folder/have/to/be/sync vers le dossier /path/on/my/remote/server/storage du serveur myserver.ltd via l'utilisateur myuser

scp -r /path/to/folder/have/to/be/sync myuser@myserver.ltd:/path/on/my/remote/server/storage

exemple Rsync : même chose que ci-dessus mais de façon incrémentale et différentiel (comme Git), il n'envoie que les fichiers qui on changé (create/update/delete). Ce qui est moins gourmand en ressource.

rsync -avHe ssh /path/to/folder/have/to/be/sync myuser@myserver.ltd:/path/on/my/remote/server/storage 

Maintenant pour que ça soit automatique, tu dois t'authentifier avec une clé RSA ssh :
1/ suivre ce tuto : https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/
2/ utiliser le fichier config pour ssh :
Créé un fichier dans ~/.ssh/config

Host        myserver
Hostname    mydomain-or-ip.com
User        myuser
IdentityFile    ~/.ssh/id_rsa_mykey

adapter le fichier ci-dessus avec dans l'ordre :

  • un nom que tu veux donner, peut importe.
  • hostname : un domaine ou une ip de ton serveur.
  • User : l'user sur lequel tu veux être authentifié
  • identityFile : chemin vers ta clé privé !

sur le serveur distant : ajoute ta clé publique à la fin du fichier ~/.ssh/config/authorized_keys2 où ~ et le répertoire home de ton user.

Voilà ! j'espère que tu vas t'en sortir :)