Bonjour,

Je souhaiterais exécuter un script en local. Ce script exécuterait quelques commandes et puis se connecterait sur une machine distante qui héberge hadoop. Là j'aimerais faire une requête sur ce hadoop et puis quitter la machine distante. Ensuite le script continuerait a executer d'autres commandes sur ma machine locale.

J'aimerais que les différentes étapes soient le plus automatisées possibles.

Pour le moment voici ce que j'ai implementé comme test et qui bien sûr ne fonctionne pas .

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
#!/bin/bash
function cleanFoldersHDFS(){
        #TODO command scp to call HDFS
        ssh user@10.15.232.122
        hadoop fs -ls /ecps-logs
}
 
cleanFoldersHDFS
 
echo "ca peut continuer"
Le resultat que j'ai est : le script se connecte sur la machine distante est me demande le mot de passe de cette machine. Je rentre le mot de passe et la commande hadoop ne s'execute pas. Je dois entrer la commande "exit" pour que la commande hadoop s'execute. Ensuite mon script affiche le echo

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
./test.sh
 
usr@10.15.232.122's password:
Last login: Thu Jul  3 03:39:47 2014 from
ecpsusr@ilabecpsvm01:~ $ exit
logout
Connection to 10.15.232.122 closed.
Found 3 items
drwx------   - ecpsusr gpadmin          0 2014-05-07 22:16 /ecps-logs/ecps-logs
drwx------   - ecpsusr ecpsgrp          0 2014-07-03 01:55 /ecps-logs/ingestion
-rw-------   3 ecpsusr ecpsgrp          0 2014-07-02 00:00 /ecps-logs/metrics.csv
hehehe
ecpsusr@localMachine$
Mes questions seraient.
Comment faire pour rentrer automatiquement le mot de passe? Petite précision tous les environements ont le même user et mdp donc la sécurité n'est pas du tout une question (oui c'est mal mais que voulez-vous ça arrive).

Comment faire pour avoir les commandes s'exécutant automatiquement sur la machine distante et que mon script ferme cette connexion et ensuite continue en local comme si de rien n'était?

Merci pour vos reponses