Hallo.
Bezugnehmend auf diesen Beitrag
habe ich gerade festgestellt, dass mein screen-manager
-Script unter v7.1 v7.2 nicht mehr läuft, da die torrents nun nicht mehr mit dem Befehl screen
sondern mit tmux
im Hintergrund laufen.
Kurzerhand habe ich das Script angepasst und poste es hier nochmal – vielleicht kann’s ja weiterhin jemand gebrauchen? Die Bedienung von tmux
ist nicht schwer aber das dialog
-Menu macht’s vielleicht noch übersichtlicher
Hier nochmal die Quick-Reference der Tastatur-Shortcuts
und hier der screen-manager
in Version 1.2 (eigentlich müsste man das jetzt in tmux-manager
umtaufen, aber das lasse ich jetzt … Macht der Gewohnheit):
#!/bin/bash
# screen-manager.sh
# Geeignet für linuxmuster >= 7.2 (mit tmux anstelle von screen)
# von Michael Hagedorn
# nach einer Vorlage von
# http://nixcraft.com/showthread.php/15048-Passing-menu-arguments-from-file-to-cdialog-xdialog
VER=1.2
# Wieviele Sessions laufen?
lines=$(tmux ls |awk -F":" '{print $1} '|wc -l);
# echo $lines;
for((j=1;j<$lines+1;j++)); do
# alt: Welche zugehörigen Namen der screens? (werden in Datei geschrieben)
# mit tmux reicht es, die laufenden Nummern mit ausgeben zu lassen:
NAME=$(tmux ls |awk -F":" '{print "("NR")"} ' |head -n $j |tail -n 1);
# Die Optionen für das "dialog"-Menu werden in eine Datei geschrieben
# ("off" bedeutet: Alle Menupunkte per default inaktiv)
echo $NAME /off >>/tmp/names.$$
done
i=1
while read line
do
# Welche PIDs gehören zu den Namen? (werden ebenfalls in Datei geschrieben)
# Hat sich mit tmux vereinfacht, da ebenfalls die Namen verwendet werden können, anstatt die PIDs zu verwenden:
# sed streicht das Wort _torrent aus den Menueinträgen:
PID=$(tmux ls |awk -F":" '{print $1} ' |sed s/_torrent//g | head -n $i |tail -n 1);
echo $PID $line >>/tmp/options.$$
i=`expr $i + 1`
done </tmp/names.$$
OPTIONS=`cat /tmp/options.$$`
cleanup(){
rm -f /tmp/names.$$
rm -f /tmp/options.$$
rm -f /tmp/ans.$$
}
# Hauptmenu erzeugen:
main_menu() {
dialog --backtitle "Screen-Session-Manager $VER" \
--radiolist "Welche Session soll beobachtet werden? (Ctrl + b + d für Detach)" 20 40 15 ${OPTIONS} 2>/tmp/ans.$$
# Abbruch-Bedingung:
opt=${?}
if [ $opt != 0 ]; then echo "Ende!"; cleanup; exit 0; fi
# Auswahl merken:
result=`cat /tmp/ans.$$`
if [ $result ]
then
tmux attach-session -t $result
else echo "Keine Auswahl getroffen! Nochmal...";
fi
cleanup;
}
while true; do
main_menu
done
#EOF
Viele Grüße,
Michael