LINUX.ORG.RU

Сообщения everlast737

 

Скрипт на Bash:ошибка в логике

Добрый день!

Задача: скрипт создает на удаленных машинах бэкап,присваивает ему имя в виде ip+нынешняя дата,и копирует его.

Имеется список с ip,где есть как доступные,так и недоступные ip. При отрабатывании цикла,скрипт доходит до первого доступного ip,проделывает с ним нужные действия (архивирование нужных файлов и копирование с удаленного сервера),и дальше по списку ip скрипт не отрабатывает. Код прикладываю:

#!/bin/bash
rm -f /pingFailed.log
passwd=$(head -1 passwd)
while read ip
 do   
  mkdir -p  /zzz/$ip/
  ping -c 1 $ip &>>/dev/null
   if [ "$?" = "0" ];then         
    #echo "Good $ip" >> /pingFailed.log
    sshpass -p $passwd  ssh root@$ip 'DATE=$(date +%d-%m-%y); ADDR=$(ip addr | grep -oP "([\d]{1,3}[\.]){3}102"); tar -vcf /tmp/"$ADDR"_"$DATE".tar /media/'
 
    sshpass -p $passwd scp root@$ip:/tmp/*.tar /zzz/$ip/    
sshpass -p $passwd ssh root@$ip 'rm -f /tmp/*.tar'
    else  
     echo "Недоступен $ip" >> /pingFailed.log
   fi
done < iplist

Подскажите, что я делаю не так?

 

everlast737
()

RSS подписка на новые темы