Mehrere Fenster und SSH in Server aufteilen, Befehl ausführen, Protokolle starten

344
Deuces

Ich verwende Ubuntu 18.04.1 und versuche folgendes zu erreichen.

Ich öffne mein Terminal und boote tmux. Ich führe dann mein Bash-Skript aus, um das Fenster in 4 verschiedene Bereiche aufzuteilen. Ich wähle dann jedes einzelne Fenster und ssh auf einem Server aus, cd in ein Verzeichnis, starte ein Programm und dann die Protokolle für das Programm.

Hier ist ein Beispiel, wie mein Bash-Skript aussieht.

tmux rename-window 'Logs'; tmux split-window -h; tmux split-window -v ; tmux select-pane -t 0; tmux split-window -v ; tmux select-pane -t 0 ; tmux send-keys 'ssh user@server.com' enter ; tmux send-keys 'p@sw0rd' enter ; tmux send-keys 'cd dir/' enter ; tmux send-keys './program/' enter ; tmux send-keys 'tail -f logs/program.log' enter ; 

wieder mache ich das für jeden Bereich. Wenn das Skript endet Die Fenster wurden erfolgreich geteilt und alle 4 Fenster zeigen Folgendes an.

bashFolder:$ ./tmuxBash (*this line is only shown on the original pane*) ssh user@server.com  p@sw0rd cd dir/ tail -f logs/program.log me@laptopname:~home/bashFolder$ ssh user@server.com user@server.com's password: 

dann erwarten alle 4 Fenster noch das Passwort, das ich nach dem ersten ssh-Aufruf senden wollte.

Diese Bash arbeitete auf einer Windows-Maschine, auf der Linux durch eine VM (Vagrant) ausgeführt wurde. Ich bin mir nicht sicher, ob ich das Skript gebrochen habe, bevor ich auf eine Linux-Box umgestiegen bin.

Ich freue mich über jede Hilfe und entschuldige mich für das Format. Dies ist mein erster Beitrag.

0
Sie müssen wahrscheinlich zwischen dem Senden des `ssh`-Befehls und dem Senden des Passworts warten, da ssh die Eingabe beim Start leert. Wenn Sie also" Vorausschreiben "eingeben, geht sie verloren. Versuchen Sie nach der Zeile tmux ... ssh "sleep 5" oder ähnliches. meuh vor 5 Jahren 0

0 Antworten auf die Frage