Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- varSSHPORT=''
- varHTTPPORT=''
- varHTTPSPORT=''
- varHOST=''
- varLOG=""
- fnSSH () {
- varCHECK="$(ps aux | grep 0.0.0.0:$varSSHPORT | grep -v 'grep')"
- echo $varCHECK
- if [[ -z $varCHECK ]]; then
- unset varDATE; fnTIMESTAMP
- ssh -N -R 0.0.0.0:$varSSHPORT:localhost:22 $varHOST & echo "$1 $! $varDATE" >> $varLOG
- fi
- unset varCHECK
- exit
- }
- fnHTTP () {
- varCHECK="$(ps aux | grep 0.0.0.0:$varHTTPPORT | grep -v 'grep')"
- echo $varCHECK
- if [[ -z $varCHECK ]]; then
- unset varDATE; fnTIMESTAMP
- ssh -N -R 0.0.0.0:$varHTTPPORT:localhost:80 $varHOST & echo "$1 $! $varDATE" >> $varLOG
- fi
- unset varCHECK
- exit
- }
- fnHTTPS () {
- varCHECK="$(ps aux | grep 0.0.0.0:$varHTTPSPORT | grep -v 'grep')"
- echo $varCHECK
- if [[ -z $varCHECK ]]; then
- unset varDATE; fnTIMESTAMP
- ssh -N -R 0.0.0.0:$varHTTPSPORT:localhost:443 $varHOST & echo "$1 $! $varDATE" >> $varLOG
- fi
- unset varCHECK
- exit
- }
- fnCHECK () {
- ps aux | grep -v grep | grep --color=auto -E "(0.0.0.0:$varSSHPORT|0.0.0.0:$varHTTPPORT|0.0.0.0:$varHTTPSPORT|PID)"
- }
- fnTIMESTAMP () {
- varDATE="$(date --rfc-3339=seconds)"
- }
- fnKILL () {
- if [[ $1 = "all" ]]; then
- unset arKILL
- arKILL+=($(fnCHECK | grep -v PID | awk '{print $2}'))
- if [[ ${#arKILL[@]} -ge 1 ]]; then
- for i in ${arKILL[@]}; do
- kill -9 $i
- done
- fi
- elif [[ $1 = "ssh" ]]; then
- unset varKILL
- varKILL="$(ps aux | grep -v grep | grep $varSSHPORT | awk '{print $2}')"
- if [[ ! $varKILL = "" ]]; then
- kill -9 $varKILL
- exit
- fi
- exit
- elif [[ $1 = "http" ]]; then
- unset varKILL
- varKILL="$(ps aux | grep -v grep | grep $varHTTPPORT | awk '{print $2}')"
- if [[ ! $varKILL = "" ]]; then
- kill -9 $varKILL
- exit
- fi
- exit
- elif [[ $1 = "https" ]]; then
- unset varKILL
- varKILL="$(ps aux | grep -v grep | grep $varHTTPSPORT | awk '{print $2}')"
- if [[ ! $varKILL = "" ]]; then
- kill -9 $varKILL
- exit
- fi
- exit
- fi
- }
- if [[ -n $1 ]]; then
- if [[ $1 = "ssh" ]]; then
- fnSSH $1
- exit
- elif [[ $1 = "http" ]]; then
- fnHTTP $1
- exit
- elif [[ $1 = "https" ]]; then
- fnHTTPS $1
- exit
- elif [[ $1 = "check" ]]; then
- fnCHECK $1
- exit
- elif [[ $1 = "date" ]]; then
- fnTIMESTAMP $1
- exit
- elif [[ $1 = "kill" ]]; then
- if [[ -z $2 ]]; then
- echo -e "Need argument. Valid Responses are:\nall\nssh\nhttp\nhttps"
- elif [[ $2 = "all" ]]; then
- fnKILL $2
- exit
- elif [[ $2 = "ssh" ]]; then
- fnKILL $2
- exit
- elif [[ $2 = "http" ]]; then
- fnKILL $2
- exit
- elif [[ $2 = "https" ]]; then
- fnKILL $2
- exit
- else
- echo -e "Valid Responses are:\nall\nssh\nhttp\nhttps"
- exit
- fi
- else
- echo -e "Valid entries are:\nhttp\nhttps\nssh\ncheck\ndate\nkill"
- fi
- else
- echo "I need an argument"
- exit
- fi
- exit
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement