2017-08-30 1 views
-2

Ich muss eine Variable Zeichenfolge über SSHPASS (Bash-Skript) an eine vorhandene Datei in der Remote-Maschine angefügt.sshpass Append-Zeichenfolge an eine Remote-Datei

Ich versuchte

echo "$test" | sshpass -p $pass $host 'cat >> /remote/full/path/log/report.log' 

sshpass -p $pass $host "echo $test" >> /remote/full/path/log/report.log 

nichts funktioniert

+0

sshpass ist Ihr eigenes Bash-Skript? –

+0

https://linux.die.net/man/1/sshpass – DanieleO

+1

Ich denke, dass das Hauptproblem ist die Positionierung der schließenden doppelten Anführungszeichen und so sollte das folgende auch funktionieren: sshpass -p $ pass $ host "echo $ test >> /remote/full/path/log/report.log " –

Antwort

0

ich herausgefunden:

sshpass -p $pass' ssh -o StrictHostKeyChecking=no $host "cd /full/path/ && echo $test >> /full/path/report.log" 
0

Da in einem Skript ein Passwort zu speichern Fehler ist eine große Sicherheit, das ist sshpass Syntax:

sshpass -p 'your_pass_here' ssh [email protected] 'df -h' 
0

Sie müssen die 'StrictHostKeyChecking = keine Option zu ssh hinzuzufügen:

echo "$test" | sshpass -p $pass ssh - o StrictHostkeyChecking=0 $host 'cat >> /remote/full/path/log/report.log' 

Ich weiß nicht, warum dies funktioniert, aber die bash magics genießen. lol

ASIDE:

Wenn Sie das Kennwort des Benutzers festgelegt Sie sshing in als envar $ sshpass statt $ passieren, dann können Sie die sshpass Option -e verwenden.

SSHPASS=$pass 
echo "$test" | sshpass -e ssh - o StrictHostkeyChecking=0 $host 'cat >> /remote/full/path/log/report.log' 
Verwandte Themen