Created
November 13, 2016 01:08
-
-
Save ruehowl/c239a5ee671b9d5948b6e3605b045b6c to your computer and use it in GitHub Desktop.
cash_ssh_and_manage_your_servers
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
option=$1 | |
function new_server { | |
server_name=$1 | |
user=$2 | |
ip=$3 | |
port=$4 | |
user_pass=$5 | |
root_pass=$6 | |
if [ ! -e metssh.txt ] ; | |
then | |
cat > metssh.txt << EOF | |
{ | |
"metclouds" : { | |
"server name": "metclouds", | |
"server ip": "127.0.0.1", | |
"ssh port": "22", | |
"ssh user": "user", | |
"ssh user password": "user123", | |
"root password": "user123" | |
} | |
} | |
EOF | |
fi | |
sed -i '$ d' metssh.txt | |
sed -i '$ d' metssh.txt | |
cat >> metssh.txt << EOF | |
}, | |
"$server_name": { | |
"server name": "$server_name", | |
"server ip": "$ip", | |
"ssh port": "$port", | |
"ssh user": "$user", | |
"ssh user password": "$user_pass", | |
"root password": "$root_pass" | |
} | |
} | |
EOF | |
} | |
function search { | |
searchfor=$1 | |
server=`python <<END | |
import sys, json; | |
data = open("metssh.txt"); | |
obj = json.load(data, strict=False); | |
def search(values, searchFor ): | |
for k in values: | |
for v in values[k]: | |
if searchFor in values[k][v]: | |
return k | |
return None | |
k = search(obj, "$searchfor") | |
print k | |
END` | |
user=`cat metssh.txt | python -c "import sys, json; obj=json.load(sys.stdin, strict=False);print obj['$server']['ssh user'];"` | |
server_ip=`cat metssh.txt | python -c "import sys, json; obj=json.load(sys.stdin, strict=False);print obj['$server']['server ip'];"` | |
ssh_port=`cat metssh.txt | python -c "import sys, json; obj=json.load(sys.stdin, strict=False);print obj['$server']['ssh port'];"` | |
user_pass=`cat metssh.txt | python -c "import sys, json; obj=json.load(sys.stdin, strict=False);print obj['$server']['ssh user password'];"` | |
root_pass=`cat metssh.txt | python -c "import sys, json; obj=json.load(sys.stdin, strict=False);print obj['$server']['root password'];"` | |
echo "user pass : $user_pass" | |
echo "root pass : $root_pass" | |
ssh $user@$server_ip -p $ssh_port | |
} | |
if [ "$option" == '-a' ] || [ "$option" == "add" ] ; | |
then | |
new_server $2 $3 $4 $5 $6 $7 | |
search $2 | |
elif [ "$option" == '-l' ] || [ "$option" == "list" ] ; | |
then | |
python <<END | |
import sys, json; | |
data = open("metssh.txt"); | |
obj = json.load(data, strict=False); | |
for k in obj: | |
print k, obj[k]['server ip'] | |
END | |
elif [ "$option" == "-r" ] || [ "$option" == "remove" ] ; | |
then | |
python <<END | |
import sys, json; | |
data = open("metssh.txt"); | |
obj = json.load(data, strict=False); | |
for i in obj: | |
if i == "$2": | |
obj.pop(i) | |
break | |
open("metssh.txt", "w").write( | |
json.dumps(obj, sort_keys=True, indent=4, separators=(',', ': ')) | |
) | |
END | |
elif [ "$option" == "-s" ] || [ "$option" == "ssh" ] ; | |
then | |
search $2 | |
else | |
echo "provide an option" | |
fi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment