Ausführen eines SSH-Befehls mit einem anderen Befehl gleichzeitig in einem Bash-Skript

Ausführen eines SSH-Befehls mit einem anderen Befehl gleichzeitig in einem Bash-Skript

Ich habe das folgende Skript

#!/bin/bash
for (( c=0; c<=9; c++ ))
do  
    ssh -t 192.168.30.11 "tshark -i eth1 -f 'src host 192.168.31.10 and tcp' -w shared_folder/results/bbb_var_4_exp_pcaps/capture-output-$c.pcap -a duration:205" &
    python ~/shared_folder/tapas/play.py -u http://192.168.31.10/video-content/mm_videos/bbb_var_4/bbb_var_4.m3u8 -m fake -l my-exp-logs/bbb_var_4_exp_logs 
    sleep 210
done

sshIch versuche, den Befehl im Hintergrund auszuführen, damit der zweite Befehl pythonden ersten Befehl nicht ausführen kann. Aber wenn ich am Ende der SSH-Befehlszeile ein & hinzufüge, bleibt es einfach hängen.

Irgendwelche Ideen?

Antwort1

Ich glaube nicht, dass das Argument mit dem Senden des Befehls in den Hintergrund -tkompatibel ist .ssh

Option 1

Lassen Sie Folgendes weg -t:

ssh remote-machine 'command' &

Option 2

Sende dasFernbedienungProzess in den Hintergrund. Möglicherweise müssen SieTrennen Sie den Remote-Prozess von stdin, stdout, stderrum ssheine sofortige Rückkehr zu ermöglichen:

ssh -t remote-machine 'command < /dev/null &> /dev/null &'

verwandte Informationen