I want to execute 2 commands on ssh within a shell script and retrieve the output to my local machine
example
ssh user@host "command1" > /local/1.txt
ssh user@host "command2" > /local/2.txt
I want this but with a single connection is it possible
please don't answer with "Expect" solutions...
If you don't mind to use the same file for storing the output; then:
ssh user@host "command1; command2" > /local/1-2.txt
If it matters, then try something like this:
ssh user@host "command1 > /somepath/1.txt; command2 > /somepath/2.txt; ..."
scp user@host:/somepath/*.txt somelocalpath/
If you still want just a single connection, maybe this might work for you:
ssh user@host "command1; echo "this_is_a_separator"; command2" > /local/1-2.txt
sed -n '1,/this_is_a_separator/ {p}' /local/1-2.txt > /local/1.txt
sed -n '/this_is_a_separator/,$ {p}' /local/1-2.txt > /local/2.txt
The local file splitting can be done in several other ways, that was just one of them.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With