Bash файл вывода сценария не читается - PullRequest
0 голосов
/ 27 апреля 2020

Я новичок в bash сценариях. Я просто набрал скрипт, чтобы проверить, есть ли пользователь на удаленном сервере, и напечатал IP-адрес удаленных серверов, на которых этот пользователь существует, в файле с именем exist.txt.

Вывод команды "cat exist.txt" показывает мне IP-адрес, который я ожидал получить.

[root@controlnode script]# cat exist.txt

10.52.85.214

но когда я выполняю команду,

for i in `cat exist.txt` ; do ssh a@$i; done

я получаю сообщение об ошибке ": Имя или служба не известны 10.52.85.214"

Но вручную я могу s sh на сервер 10.52.85.214 и он работает нормально. Может кто-нибудь помочь мне, как решить эту проблему. Я думаю, что есть проблема с файлом, который генерируется из сценария. (exist.txt)

Сценарий как ниже

#!/bin/bash
pass=XXXXXXX
loginuser=a
testuser=jose

#Check whether the user exsists in the remove server and collect a list of servers where the user is available
> exist.txt
> non_exist.txt
for server in `cat serverlist`
do
        echo "Checking server" $server
        sshpass -p$pass ssh -t $loginuser@$server ' if [[ $(getent passwd' "$testuser"') ]];  then echo `hostname -I`; fi ' >> exist.txt
        sshpass -p$pass ssh -t $loginuser@$server ' if ! [[ $(getent passwd' "$testuser"') ]];  then echo `hostname -I`; fi ' >> non_exist.txt
        echo "Server $server Checked"
        echo ".........................................................................................................................................."
        echo " "

done



...