Add some tunnels script; not sure what this is
I'll look at it later
This commit is contained in:
parent
fdd9bf1a1f
commit
5c4658d39e
1 changed files with 60 additions and 0 deletions
60
bin/tunnels.sh
Executable file
60
bin/tunnels.sh
Executable file
|
@ -0,0 +1,60 @@
|
|||
#!/bin/bash
|
||||
|
||||
readonly PROGRAM_NAME=$(basename $0)
|
||||
readonly PROGRAM_LOC=$(readlink -m $(dirname $0))
|
||||
readonly ARGS="$@"
|
||||
|
||||
usage() {
|
||||
echo usage: $PROGRAM_NAME LOCAL_PORT REMOTE_PORT REMOTE_HOST
|
||||
exit 1
|
||||
}
|
||||
|
||||
create_tunnel() {
|
||||
local readonly local_port=$1; shift
|
||||
local readonly remote_port=$1; shift
|
||||
local readonly remote_host=$1; shift
|
||||
|
||||
ssh -f -N $remote_host -R $remote_port":localhost:"$local_port
|
||||
}
|
||||
|
||||
tunnel_not_present() {
|
||||
local readonly remote_port=$1; shift
|
||||
|
||||
ps ax \
|
||||
| grep ssh \
|
||||
| grep $remote_port \
|
||||
| grep -v grep >> /dev/null
|
||||
|
||||
[[ $? -ne 0 ]]
|
||||
}
|
||||
|
||||
maintain_tunnel() {
|
||||
local readonly local_port=$1; shift
|
||||
local readonly remote_port=$1; shift
|
||||
local readonly remote_host=$1; shift
|
||||
|
||||
if tunnel_not_present $remote_port; then
|
||||
create_tunnel $local_port $remote_port $remote_host
|
||||
fi
|
||||
}
|
||||
|
||||
is_empty() {
|
||||
local readonly string=$1; shift
|
||||
|
||||
[[ -z "$string" ]]
|
||||
}
|
||||
|
||||
main() {
|
||||
local readonly local_port=$1; shift
|
||||
local readonly remote_port=$1; shift
|
||||
local readonly remote_host=$1; shift
|
||||
|
||||
if is_empty $local_port || is_empty $remote_port || is_empty $remote_host
|
||||
then
|
||||
usage
|
||||
fi
|
||||
|
||||
maintain_tunnel $local_port $remote_port $remote_host
|
||||
}
|
||||
|
||||
main
|
Loading…
Reference in a new issue