Halo Michael,
schreib es doch bitte ins Anwenderwiki.
Wenn es besser passt verlinke ich es auch direkt statt der
Übersichtsseite LINBO im Anwenderwiki.
Sag Bescheid.
Grüße, Tobias
Am 13.02.2015 um 20:19 schrieb Michael Hagedorn:
Hallo.
Wenn man einen Raum synchronisiert und _viele_ screen-Sessions per
linbo-remote laufen hat, ist es wünschenswert, dass man zwischendurch
mal kurz nachsehen kann, wie weit die Übertragungen im einzelnen bereits
fortgeschritten sind; oder auch einfach nur, was die Clients gerade tun
bzw nicht tun. Das musste man bisher mit "screen -r <PID>"
machen, wobei man die <PID> per Hand eintippen musste, was ich schon
immer umständlich fand!
Daher habe ich mich vorhin an die Aufgabe gemacht, ein passendes Script
zu diesem Zweck zu schreiben. Da ich erst kürzlich auf den Befehl
"dialog" gestoßen bin, wollte ich den unbedingt mal ausprobieren und
herausgekommen ist ein Script, welches nun automatisch die laufenden
screen-Sessions ausliest und ein "grafisches" Menu anbietet, um die
entsprechende Session "zurückzuholen". Das ganze funktioniert bereits
ganz gut; es liefert im Moment jedoch _auch_ die Sessions der laufenden
Bittorrent-Screens mit an (was ich aber nicht so schlimm finde).
Wer das ganze ausprobieren möchte: Ich habe es screen-manager.sh getauft
(chmod +x nicht vergessen). Wie üblich kommt man mit STRG+A+D wieder aus
der Session heraus (Detached) und landet automatisch wieder im Hauptmenu!
Viel Spaß -- und hoffentlich viele Rückmeldungen :)
Michael
P.S.: Ich hoffe übrigens, dass in der eMail keine Zeilenumbrüche
auftauchen, die da nicht hingehören?
P.S.2: Ich wollte bereits die Seite im Wiki
http://www.linuxmuster.net/wiki/dokumentation:handbuch:linbo:linbo.remote
ergänzen; habe dort aber keine Schreibrechte. Kann das jemand mit den
passenden Rechten übernehmen?
----------------------------------------------------------
#!/bin/bash
# screen-manager.sh -- Version vom 13.02.2015
# Geeignet für linuxmuster 6.x
# von Michael Hagedorn
# nach einer Vorlage von
#
http://nixcraft.com/showthread.php/15048-Passing-menu-arguments-from-file-to-cdialog-xdialog
VER=1.0
#Wieviele Sessions laufen?
lines=$(screen -ls | grep -F Detached |awk -F\ '{print $1} ' |cut -d
"." -f 1 |wc -l);
#echo $lines;
for((j=1;j<$lines+1;j++)); do
#Welche zugehörigen Namen der screens? (werden in Datei geschrieben)
NAME=$(screen -ls | grep -F Detached |awk -F\ '{print $1} ' |cut -d
"." -f 2 |head -n $j |tail -n 1);
#Das "dialog"-Menu erwartet drei Optionen; die letzte davon lautet
"off" für alle Menueintraege!
echo $NAME /off >>/tmp/names.$$
done
i=1
while read line
do
#Welche PIDs gehören zu den Namen? (werden ebenfalls in Datei geschrieben)
PID=$(screen -ls | grep -F Detached |awk -F\ '{print $1} ' |cut -d
"." -f 1 |head -n $i |tail -n 1);
echo $PID $line >>/tmp/options.$$
i=`expr $i + 1`
done </tmp/names.$$
OPTIONS=`cat /tmp/options.$$`
#Menu erzeugen:
main_menu() {
dialog --backtitle "Screen-Session-Manager $VER" \
--radiolist "Welche Session soll beobachtet werden?" 20 40 15
${OPTIONS} 2>/tmp/ans.$$
opt=${?}
if [ $opt != 0 ]; then echo "Ende!"; exit 0; fi
#Auswahl merken:
result=`cat /tmp/ans.$$`
if [ $result ]
then
screen -r $result
else echo "Keine Auswahl getroffen! Nochmal...";
fi
# clean up
rm -f /tmp/names.$$
rm -f /tmp/options.$$
rm -f /tmp/ans.$$
}
while true; do
main_menu
done
#EOF
-------------------------------------------------------------------------------
_______________________________________________
linuxmuster-user mailing list
[email protected]
https://mail.lehrerpost.de/mailman/listinfo/linuxmuster-user
_______________________________________________
linuxmuster-user mailing list
[email protected]
https://mail.lehrerpost.de/mailman/listinfo/linuxmuster-user