-
Notifications
You must be signed in to change notification settings - Fork 0
Bash Shell script Sample
jaeseok.an edited this page Apr 27, 2021
·
1 revision
Script Header
#!/bin/sh
# Copyright (C) 2021 Hyperlounge, All rights reserved.
#
#
# @file create_tunnel.sh
# @brief make ssh tunnel between private service and remote ssh server
# @author Jaeseok Ahn <jaeseok.an@hyperlounge.ai>
#
base dir 설정
BASE_DIR="$( cd "$( dirname "$0" )" && pwd -P )"
exit help message
exit_with_usage() {
cat << EOF
Usage$ $0 [OPTIONS] REMOTE_PORT
OPTIONS:
-h, --help show this help message and exit
-s, --ssh-server remote ssh server
EOF
exit 1
}
Argument 파싱
###########################
######## Arguments ########
###########################
ssh_server="34.64.84.46"
private_addr=
while [ 1 ]; do
cnt=$#
case $1 in
(-h|--help) exit_with_usage;;
(-s|--ssh-server) shift; ssh_server=$1; shift;;
(--) shift; break;;
esac
[ $# -eq $cnt ] && { break; }
done
[ $# -lt 1 ] && { exit_with_usage; }
[ -z "$ssh_server" ] || [ -z "$private_addr" ] || [ -z "$private_port" ] || [ -z "$user_id" ] && { exit_with_usage; }
remote_port=$1
function 실행
gcloud compute networks create $vpc_name --project=$project
[ $? -ne 0 ] && { exit 1; }
함수
check_tunnel() {
echo >&2 "check_tunnel"
$(ps -ef| grep -v grep | grep -q "ssh.* $remote_port:$private_addr:$private_port")
exist=$?
[ $exist -eq 0 ] && { echo >&2 "tunnel already exist"; }
echo "$exist"
}
함수 실행 결과 체크
[ $(check_tunnel) != "0" ] && { make_tunnel; }
test