мое требование я буду иметь набор команд, которые должны быть выполнены в текстовом файле. Мой скрипт оболочки должен прочитать каждую команду, Выполнить и сохранить результаты в отдельном файле.
вот фрагмент, который выполняет вышеуказанное требование.
while read command
do
echo 'Command :' $command >> "$OUTPUT_FILE"
redirect_pos=`expr index "$command" '>>'`
if [ `expr index "$command" '>>'` != 0 ];then
redirect_fn "$redirect_pos" "$command";
else
$command
state=$?
if [ $state != 0 ];then
echo "command failed." >> "$OUTPUT_FILE"
else
echo "executed successfully." >> "$OUTPUT_FILE"
fi
fi
echo >> "$OUTPUT_FILE"
done < "$INPUT_FILE"
Sample Commands.txt
будет такой ...
tar -rvf /var/tmp/logs.tar -C /var/tmp/ Commands_log.txt
gzip /var/tmp/logs.tar
rm -f /var/tmp/list.txt
это прекрасно работает для команд, которые должны быть выполнены в локальной машине. Но когда я пытаюсь выполнить следующие команды СШ выполняется только 1-я команда.
вот некоторые команды ssh, добавленные в мой текстовый файл.
ssh uname@hostname1 tar -rvf /var/tmp/logs.tar -C /var/tmp/ Commands_log.txt
ssh uname@hostname2 gzip /var/tmp/logs.tar
ssh .. etc
когда я выполняю это в cli, он работает нормально. Кто-нибудь может мне в этом помочь?