#!/bin/sh # superscreen: open a screen session with ssh connections to some servers window=0 session="default" servers="db dns ftp mail web" # wipe dead screens screen -wipe if screen -list | grep -q "$session" then echo "Error: session \"$session\" already exists; please kill it first." echo "type \"screen -X -S $session quit\" to do so." exit 1 fi # main screen (physical host) screen -d -m -S $session -t `hostname -s` # servers' screens : open a ssh connexion from the host to them, then rename it for server in $servers do window=$(( window + 1 )) screen -S $session -X screen ssh $server screen -S $session -p $window -X title $server done # do not attach screen if "-d" option is set if [ ! -z "$1" ] then if [ $1 == "-d" ] then exit 0 fi fi # dirty hack for unhappy services for jail in `seq 0 6`; do screen -p $jail -X stuff "/usr/local/bin/nrpe2 restart^M"; done screen -p ftp -X stuff "service vsftpd_ipv6 start^M" screen -p mail -X stuff "service qmailsmtpd start^M" # attach to freshly-created screen screen -r $session -p 0