подключение к нескольким коммутаторам из /etc/hosts и экспорт вывода нескольких команд в файл

Послушайте, я также не знаю, как это сделать с опциями find , но вы также можете использовать сценарий оболочки в своем find :

Сначала удалите файлы:

 find . -type f -exec bash -c \
    ' [[ "{}" == "./test/folder1/file2.txt" || \
         "{}" == "./test/folder1/subfolder1/file3.txt" ]] \
      || rm "{}" ' \;

А затем удалите все непустые папки:

find .  -type d -exec rmdir {} \; 2>/dev/null
0
09.03.2019, 14:20
1 ответ

Ниже я отправляю облегченное обновление, которое почти работает, но выходные файлы пусты, мы получаем вывод команд только на экран. Если бы кто-нибудь мог помочь, как получить результаты внутри каждого файла.

#!/bin/bash
#=================================================================
# Variables
#=================================================================
DATE=$(date +"%Y%m%d")
DIR=/logs/cisco/$DATE
INPUT=/etc/hosts
SW=$(sed -e '1,/#ETHERNET SWITCHES/d' -e '/#END SWITCHES/,$d' $INPUT | awk '{print $2}')
#=================================================================
# Check if log directory exists
#=================================================================
if [ ! -d "$DIR" ]; then
   mkdir -p /logs/cisco/"$DATE";
fi
echo "$SW" | while IFS= read -r line
 do
  mkdir -p -- "$DIR/$line"
done <<<"$SW"
#================================================================
# Main
#================================================================
for ip in $(cat $INPUT | sed -e '1,/#ETHERNET SWITCHES/d' -e '/#END SWITCHES/,$d' $INPUT | awk '{print $1}')
   do
   for line in $(cat $INPUT | sed -e '1,/#ETHERNET SWITCHES/d' -e '/#END SWITCHES/,$d' $INPUT | awk '{print $2}')
   do
    sshpass -p kkk ssh admin@"$ip" 'sho int fo1/1' > "$DIR/$line"/port.log
   done
done
0
29.04.2021, 00:13

Теги

Похожие вопросы