需求
从前,有一只萌奈,她有这样一个需求:
萌奈有一台家用的 NAS 服务器,每次萌奈要 ssh 连接到这台服务器上时,都需要自己手动选择一个合适的 IP 地址
在家的时候,需要选择NAS的内网IP直接连接;在户外的时候,又需要根据情况选择直接连接到NAS或者是通过FRP转发连接到NAS。
萌奈觉得这样太麻烦了,想用一个脚本来解决这个问题。
代码
萌奈酱双手一挥,写下了这段脚本:
#!/bin/bash
IP_LIST="192.168.1.161 example.moemona.com another.example.moemona.com"
declare -A PORT_MAP
PORT_MAP["192.168.1.161"]="22"
PORT_MAP["example.moemona.com"]="10022"
PORT_MAP["another.example.moemona.com"]="20022"
for ip in $IP_LIST; do #for循环遍历数组
if ping -c 1 -W 1 $ip > /dev/null
then
echo "$ip Ping is success, Connect." # if 判断如果ping通 则返回success
echo "ssh connect port is ${PORT_MAP[${ip}]}."
ssh userName@$ip -p ${PORT_MAP[${ip}]}
break
else
echo "$ip Ping is faild, pass."
fi
done
Windows Terminal 配置
使用基于WSL2的 bash shel 来运行本脚本
启动命令行:wsl.exe /home/user/path_to_shell_script.sh
文章评论