screenify
This commit is contained in:
parent
8348e58edb
commit
254be9abef
@ -14,3 +14,8 @@ debug 0
|
|||||||
# Hostname 123.45.67.90
|
# Hostname 123.45.67.90
|
||||||
# User ubuntu
|
# User ubuntu
|
||||||
# LocalForward 10002 127.0.0.1:22
|
# LocalForward 10002 127.0.0.1:22
|
||||||
|
|
||||||
|
[passwords]
|
||||||
|
# Use this section at your own risk, because the passwords are stored in plaintext.
|
||||||
|
|
||||||
|
#server1 p@$$w0rd
|
||||||
24
tunnelkeeper
24
tunnelkeeper
@ -12,6 +12,7 @@ fi
|
|||||||
|
|
||||||
SSHCONF="$BASEDIR/var/[ssh].conf"
|
SSHCONF="$BASEDIR/var/[ssh].conf"
|
||||||
TKCONF="$BASEDIR/var/[settings].conf"
|
TKCONF="$BASEDIR/var/[settings].conf"
|
||||||
|
PWCONF="$BASEDIR/var/[passwords].conf"
|
||||||
|
|
||||||
function ruroot () {
|
function ruroot () {
|
||||||
if [[ $UID -ne 0 ]]; then
|
if [[ $UID -ne 0 ]]; then
|
||||||
@ -34,9 +35,29 @@ function dbg () {
|
|||||||
case "$1" in
|
case "$1" in
|
||||||
FORKSTART )
|
FORKSTART )
|
||||||
echo -n $$ > "$BASEDIR/var/${2}.connected"
|
echo -n $$ > "$BASEDIR/var/${2}.connected"
|
||||||
|
if [[ grep -c "^$2" $PWCONF ]]; then
|
||||||
|
pass=$(awk "/^$2/ {print \$2}" ${PWCONF})
|
||||||
|
screen -d -m -S "tk${2}" "$0 FORKSCREEN $2"
|
||||||
|
while [[ -e "$BASEDIR/var/${2}.connected" ]]; do
|
||||||
|
sleep 5
|
||||||
|
if [[ -f "$BASEDIR/var/${2}.screen" ]]; then
|
||||||
|
screen -S "tk${2}" -X stuff "$pass
|
||||||
|
"
|
||||||
|
rm -f "$BASEDIR/var/${2}.screen"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
else
|
||||||
|
while [[ -e "$BASEDIR/var/${2}.connected" ]]; do
|
||||||
|
# passwordless auth
|
||||||
|
ssh -F "${SSHCONF}" $dbgopt -N $2 2>&1 | dbg
|
||||||
|
sleep 5
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
FORKSCREEN )
|
||||||
while [[ -e "$BASEDIR/var/${2}.connected" ]]; do
|
while [[ -e "$BASEDIR/var/${2}.connected" ]]; do
|
||||||
|
echo $$ > "$BASEDIR/var/${2}.screen"
|
||||||
ssh -F "${SSHCONF}" $dbgopt -N $2 2>&1 | dbg
|
ssh -F "${SSHCONF}" $dbgopt -N $2 2>&1 | dbg
|
||||||
sleep 5
|
|
||||||
done
|
done
|
||||||
;;
|
;;
|
||||||
FORKKILL ) kill $(sudo netstat -tnlp | grep "127[0-9\.]*:${2}" | grep -o '[0-9]*/ssh' | grep -o '[0-9]*') &>/dev/null ;;
|
FORKKILL ) kill $(sudo netstat -tnlp | grep "127[0-9\.]*:${2}" | grep -o '[0-9]*/ssh' | grep -o '[0-9]*') &>/dev/null ;;
|
||||||
@ -60,6 +81,7 @@ case "$1" in
|
|||||||
;;
|
;;
|
||||||
install )
|
install )
|
||||||
ruroot
|
ruroot
|
||||||
|
which screen &>/dev/null || yum install -y screen || apt install -y screen
|
||||||
mkdir -p /opt/tunnelkeeper/var
|
mkdir -p /opt/tunnelkeeper/var
|
||||||
mkdir -p /opt/tunnelkeeper/etc
|
mkdir -p /opt/tunnelkeeper/etc
|
||||||
if [[ "$BASEDIR" != '/opt/tunnelkeeper/' ]]; then
|
if [[ "$BASEDIR" != '/opt/tunnelkeeper/' ]]; then
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user