2010-08-31 13 views
0

Je suis très nouveau avec ssh, j'ai donc besoin d'aide pour écrire des scripts. L'idée est que j'ai des fichiers répartis dans différents dossiers sur un serveur distant. Je veux copier certains dossiers dans un autre nouveau dossier également sur le même serveur. Supposons, je connais tout le nom des dossiers que je veux copier et je peux les lister dans un fichier texte. Comment écrire un script qui va automatiquement transférer tous ces dossiers dans l'endroit dont j'ai besoin? Supposons également qu'il existe un fichier dans chaque dossier qui est chiffré avec un mot de passe individuel. Tous les mots de passe sont connus par moi. Comment puis-je écrire un script pour les décrypter automatiquement?Besoin d'aide avec le script ssh

Si vous n'avez pas de réponse directe, pouvez-vous me donner un lien vers un tutoriel sur l'écriture de scripts ssh?

Un grand merci

Répondre

2

Je pense que vous pourriez être un peu confus. SSH est l'outil que vous utilisez pour accéder au serveur distant.

Une fois que vous êtes connecté à ce serveur distant, l'invite que vous voyez et l'interface de ligne de commande est appelée "sh" ou "bash", généralement, et est un shell. Ce que vous cherchez est shell scripting tutorial. Vous pouvez google pour les autres, mais celui-ci semble raisonnable.

La chose la plus simple à faire serait de simplement transformer votre liste de fichiers en un script. Il pourrait ressembler à ceci:

#!/bin/sh 
for file in a, b, c, d; do 
    cp $file firstFolderName 
done 
for file in e, f, g, h; do 
    cp -v $file secondFolderName 
done 
decrypt secondFolderName/c "myPassword" 

De toute évidence, la commande pour décrypter dépend de ce que vous avez utilisé l'outil de cryptage.

Vous pouvez enregistrer ceci dans un fichier appelé myscript.sh et l'exécuter avec sh myscript.sh à partir de la ligne de commande. Vous devrez peut-être en apprendre davantage sur nano, vi, ou emacs, ou sur un autre éditeur afin d'éditer ce script à partir d'une session de terminal ssh.

+0

+1, a pris les mots de ma bouche! –

1

En supposant que par SSH vous voulez dire bash accessible via SSH.

En supposant que la liste des fichiers est comme ceci:

/path/tofile1 
/path/to/file/2 

Vous pouvez faire:

$ cp `cat listOfInputFiles | xargs` destinationDirectory 
+0

Super, merci beaucoup aux gars d'expliquer. Merci spécial à Easel pour l'explication de shell. Oui, j'étais confus avec le terme. – chepukha