2017-03-16 5 views
0

ich einen einfachen Bash-Skript erstellen wollte IPs aus einer Textdatei zu lesen und den folgenden Befehl ausführen, um rsync-Dienst aktivierte IPs zu entdecken:rsync: failed zu 1.2.3.4 # 015 verbinden: Connection refused

rsync -av 1.2.3.4:: . 

Das ist, was ich bisher getan habe:

#!/bin/bash 
filename="$1" 
while read -r line 
do 
    name="$line" 
    echo "Target: $name" 
    rsync -av $name:: . 
done < "$filename" 

Es ist nicht zu funktionieren scheint. Beide oben genannte Skripte gab die folgenden Fehler:

rsync: failed to connect to 1.2.3.4\#015: Connection refused (111) 
rsync error: error in socket IO (code 10) at clientserver.c(122) [Receiver=3.0.7] 
+1

'\ 015' # sind möglicherweise die Schlitten return-Symbol, das Sie beim Lesen aus der Datei an das Ende der IP-Adresse geklammert haben. Können Sie sicherstellen, dass die Datei die korrekte UNIX-Zeile mit 'dos2unix' beendet? –

+0

Ich habe Ihre Frage bearbeitet, um mich besser auf das eigentliche Problem zu konzentrieren. Lesen Sie bitte. Auch was meinst du mit "beiden obigen Skripten"? – tripleee

Antwort

1

ich zum ersten Wagenrücklauf entfernen vorschlagen:

dos2unix "$filename" 

oder -nutzung:

dos2unix < "$filename" | while read -r line 
do 
    ... 
done 
Verwandte Themen