Надеюсь, на этот раз это не дубликат.Я ничего не нашел.
Мой код:
#!/bin/bash
FILE=/home/user/srv.txt
TICKET=task
while read LINE; do
ssh -nT $LINE << 'EOF'
touch info.txt
hostname >> info.txt
ifconfig | grep inet | awk '$3 ~ "cast" {print $2}' >> info.txt
grep -i ^server /etc/zabbix/zabbix_agentd.conf >> info.txt
echo "- Done -" >> info.txt
EOF
ssh -nT $LINE "cat info.txt" >> $TICKET.txt
done < $FILE #End
Моя проблема:
- , если я использую только
ssh $LINE
, это будет только ssh кхост в первой строке, а также отображать ошибку Pseudo-terminal will not be allocated because stdin is not a terminal.
- с помощью
ssh -T
, исправьте приведенное выше сообщение об ошибке, и он создаст файл info.txt - с помощью
ssh -nT
, исправьтеошибка, при которой ssh читает только первую строку, но я получаю сообщение об ошибке cat: info.txt: No such file or directory
.Если я отправлю ssh на хосты, я могу подтвердить, что в моей домашней папке нет файла info.txt.и с ssh -T
у меня есть этот файл в моей домашней папке.
Я попытался с опцией -t, также ЗДЕСЬ, EOF без '...', но не повезло
Я что-то пропустил?Спасибо за вашу помощь, Джули