Script pour le transfert de fichier SSH

Je souhaite transférer certains types de fichiers du répertoire sur le serveur. Alors, voici la scène:

Structure des catalogues

Entreprises / compA / filedir /

Entreprises / compB / filedir /

Entreprises / compC / filedir /

Donc je veux déplacer des fichiers * .csv Des catalogues filedir De chaque entreprise à un autre serveur. je veux utiliser ssh Pour le transfert de fichier. Quelqu'un utilisé ssh Pour transférer des fichiers dans le script Shell? Comment faites-vous face à cette situation?
Invité:

Blanche

Confirmation de:

Utilisation

scp

ou

rsync

.


scp

Les usages ssh Copier des fichiers sur les ordinateurs connectés et d'eux. Exemple de syntaxe de copie de l'ordinateur local pour l'hôte distant:

scp -r companies/compA/filedir username@remote.host.address:/some/remote/directory

Vous devrez utiliser publiquement disponible. / Clés fermées pour simplifier le login si vous ne l'avez pas encore fait pour

ssh

.


rsync

peut utiliser ssh Se connecter à un autre serveur. L'exemple de syntaxe sera comme suit:

rsync -avz -e ssh remoteuser@remotehost:/remote/dir /companies/compA/filedir

Également obligatoire ouvert / Clés fermées.

Blanche

Confirmation de:

Vous voulez vraiment utiliser scp, qui utilise SSH. Si vous voulez utiliser à la place rsync, vous pouvez utiliser

-e ssh

argument.

Quant au script, vous allez probablement créer soit 1) cycle for, qui effectue une itération de matrice contenant une liste de tous les emplacements et lance la commande appropriée. scp / rsync, OU 2) Vous pouvez utiliser l'opérateur find, qui passe et effectue chaque scp / rsync pour vous.

Échantillon d'équipe find va chercher quelque chose comme ça (non vérifié):


find /dir/companies/*/filedir/ -type f -name \*.csv -exec scp {} username@otherserver.tld \;

Je suggère si vous utilisez SSH Pour tout type de transmission, vous avez installé une authentification à clé ouverte afin que vous ne puissiez pas entrer le mot de passe.

Si nécessaire, je peux rester plus en détail, essayez simplement de vous aider à démarrer et à spécifier la bonne direction.

Emilie

Confirmation de:

Vous n'utiliseriez pas le programme ssh - Tu dois utiliser scp ou sftp. Mais, disant que la meilleure solution serait de courir rsync plus de ssh, Pour éviter de copier des fichiers que vous avez déjà reçus, mais ce n'est qu'une option si rsync Disponible (Ou peut être installé dans un système distant).

Pour ne pas entrer le mot de passe, vous devez d'abord configurer une paire de clés, puis juste:

#!/bin/bash

scp somuser@server:/companies/compA/filedir/*.csv /local/compa/filedir
scp somuser@server:/companies/compB/filedir/*.csv /local/compb/filedir
scp somuser@server:/companies/compC/filedir/*.csv /local/compC/filedir

Christine

Confirmation de:

scp companies / comp? / filedir / *. csv 192.168.1.200:/remotedir - c'est 192.168.1.200 IP Serveur distant.

Si vous avez besoin d'un utilisateur et que vous avez passé, vous devez vérifier le manuel. scp (man scp), Mais je crois que vous ne pouvez pas les spécifier dans une équipe scp. Au lieu de cela, vous devez utiliser des clés.

Pour répondre aux questions, connectez-vous ou registre