2014-05-20 1 views
0

J'essaie de faire un script bash qui se connecte aux commutateurs Cisco et d'imprimer la sortie dans un fichier créé avec le nom -> TimestampDeviceXX_Check.txt et après comparer les sorties pour voir s'il y a des différences dans le fichiers de sortie. (Ils doivent être identiques car leur config doit être alignée). J'ai déjà les scripts pour se connecter aux commutateurs, donc je n'ai qu'à lancer xxx.sh pour me connecter à l'appareil.Script Bash pour les périphériques Cisco

ici est l'idée que je veux créer et je ll apprécier si vous me aider:

Je suis nouveau script bash et certanly je sais que je l'ai fait quelques erreurs .... j'espère que vous ll me aider

Merci, Cordialement T. :)

#!/bin/bash 

devices=" 
./Shop1/Sw1-ab2.sh 
./Shop2/Sw1-cd1.sh 
./Shop3/Sw1-ef1.sh 
" 


outdir=$(./Check/$(date +%Y%m%d)/Check_$(date +%Y%m%d%H%M%S).dir) 

for device in $devices; do 

     logfile=${outdir}/$(basename ${device} .sh).txt 
     if[! -e $logfile] ; then 
       touch $logfile 
     fi 
     expect <<- END > ${logfile} 
       spawn "${device}" 
       expect "#" 
       send "terminal length 0\r" 
       expect "*#" 
       send "show running-config | begin mac access-list extended \n" 
       expect "#" 
       send "show mac address-table vlan xx\n" 
       expect "#" 
       send "show mac address-table vlan xx\n" 
       expect "#" 
       send "exit\r" 
       expect closed 

     END 

     echo ${device} 
     echo "===================================" 
     echo 
>done 
+0

quelle est la sortie de votre script? des erreurs? – Tiago

+0

je reçois le message "répertoire n'existe pas" – user3658105

+0

pouvez-vous éditer votre question avec la sortie? – Tiago

Répondre

0

Vous essayez de créer des fichiers dans un répertoire qui n'existe pas encore. Vous pouvez résoudre ce problème en utilisant mkdir pour créer le répertoire avant d'essayer d'y écrire des fichiers. Ajouter un appel mkdir -d ${outdir} après la ligne outdir=... dans votre script, comme suit:

outdir=$(./Check/$(date +%Y%m%d)/Check_$(date +%Y%m%d%H%M%S).dir) 
mkdir -p ${outdir} 
+0

Merci je vais éditer le script que je vais poster de nouvelles mises à jour à ce sujet – user3658105

+0

ligne 11: ./Check/20140521/Check_20140521100217.dir: Mcdir: opérande absent Essayez 'mkdir --help 'pour plus d'informations. ./script.sh: ligne 17: erreur de syntaxe près du jeton inattendu 'then ' ./script.sh: ligne 17:' if [! -e $ logfile]; puis' – user3658105

0

Ceci est la sortie:

ligne 11: ./Check/20140521/Check_20140521100217.dir: Aucun fichier ou répertoire mkdir : opérande manquant Essayez mkdir --help 'pour plus d'informations. ./script.sh: ligne 17: erreur de syntaxe près du jeton inattendu puis './script.sh: ligne 17: `if [! -e $ logfile]; alors