aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSilvio Rhatto <rhatto@riseup.net>2018-07-07 01:15:42 -0300
committerSilvio Rhatto <rhatto@riseup.net>2018-07-07 01:15:42 -0300
commit007a86a6467da934b19be9b6b365dc443e503432 (patch)
tree28d308438617b5f15000a03ced9be4a32a9c2948
parent2742ec14894137949c8252fa396302c7c375c2e2 (diff)
downloadscripts-007a86a6467da934b19be9b6b365dc443e503432.tar.gz
scripts-007a86a6467da934b19be9b6b365dc443e503432.tar.bz2
Adds a vnc wrapper
-rwxr-xr-xvnc42
1 files changed, 42 insertions, 0 deletions
diff --git a/vnc b/vnc
new file mode 100755
index 0000000..b29136d
--- /dev/null
+++ b/vnc
@@ -0,0 +1,42 @@
+#!/bin/bash
+#
+# Wrapper around ssh and vncviewer
+#
+
+# Parameters
+BASENAME="`basename $0`"
+SERVER="$1"
+
+# Check
+if [ -x "$SERVER" ]; then
+ echo "usage: $BASENAME <server>"
+ exit 1
+fi
+
+# Check if vncserver is running in the remote server and start otherwise
+ssh $SERVER <<EOF
+ HOSTNAME="\$(cat /etc/hostname)"
+
+ if [ -e "\$HOME/.vnc/\$HOSTNAME:1.pid" ]; then
+ PID="\$(cat \$HOME/.vnc/\$HOSTNAME:1.pid)"
+
+ if ! ps \$PID &> /dev/null; then
+ /usr/bin/vncserver -alwaysshared -dpi 96 -localhost :1
+ fi
+ else
+ /usr/bin/vncserver -alwaysshared -dpi 96 -localhost :1
+ fi
+EOF
+
+# See http://www.g-loaded.eu/2006/11/24/auto-closing-ssh-tunnels/
+# Optional SSH compression
+#ssh -C -c blowfish -f -L 5901:127.0.0.1:5901 $SERVER sleep 10
+ssh -f -L 5901:127.0.0.1:5901 $SERVER sleep 10
+
+# Run VNC client
+# Copy $SERVER:~/.vnc/passwd into $HOME/.vnc/$SERVER.passwd for passwordless login
+if [ -e "$HOME/.vnc/$SERVER.passwd" ]; then
+ vncviewer -passwd $HOME/.vnc/$SERVER.passwd localhost:5901
+else
+ vncviewer localhost:5901
+fi