2010-07-09 4 views
0

Voici mon code:SSH machine différente pour trouver le nombre de fichiers

echo "`${BOLD}` ***** Checking CoreFile Creation *****`${UNBOLD}`" 
    echo "========================================================" 

    IFS='|' 
     cat configMachineDetails.txt | grep -v "^#" | while read MachineType UserName MachineName 
     do 
     export CHK_COREFILE=`ssh -f -T ${UserName}@${MachineName} ls ~/corefiles | wc -l|sed 's/ //g'` 
     if [ $CHK_COREFILE -gt 0 ] 
     then  
      echo "CHK_COREFILE $CHK_COREFILE number of core files are created" 
      echo "     "  
      export CHK_COREFILES_NAME=`ls -lrt ~/corefiles` 
      echo " Name of the Files $CHK_COREFILES_NAME " 
      echo "MachineType $MachineType UserName $UserName MachineName $MachineName" 

      echo "-----------------------------------------------------" 
     fi 
    done  

Après SSH différente machine, il ls sur le chemin de la machine sur laquelle le code est en cours d'exécution. D'où il est dit que le chemin n'a pas été trouvé.

export CHK_COREFILE=`ssh -f -T ${UserName}@${MachineName} ls ~/corefiles | wc -l|sed 's/ //g'` 

Comment gérer cela? Travailler sur (ksh) Solaris.

+0

Il est pas nécessaire de 'export' les variables dans le contexte que vous semblez les utiliser dans –

Répondre

1

La commande ssh qui définit CHK_COREFILE exécute uniquement sa propre ligne sur le serveur distant, qui n'inclut pas ls -lrt ~/corefiles. La solution simple est de modifier l'affectation CHK_COREFILES_NAME à

export CHK_COREFILES_NAME=`ssh -f -T ${UserName}@${MachineName} ls -lrt ~/corefiles`
+0

thnks, d'erreur stupide – Joice

+1

@Joice. « Thnks » est le meilleur exprimé comme une coche verte à gauche de la réponse. – Johnsyweb

Questions connexes