ssh隧道暴露端口給另一台機子兼自動檢測腳本
Java代碼
#!/bin/bash
PIDS=`ps -ef| grep ssh |grep 9222 | awk '{print $2}'`
if [ -z "$PIDS" ]; then #查看服務是否開了
ssh -C -f -N -g -R 9222:127.0.0.1:22
[email protected]
echo "start ssh exporter:`date`" >> /home/deploy/autocheck/log.txt
else
nc -w 3 -z 42.121.119.100 9222 > /dev/null 2>&1
if [ $? -ne 0 ]; then #查看端口是否通
kill -9 $PIDS
ssh -C -f -N -g -R 9222:127.0.0.1:22
[email protected]
echo "kill and start ssh exporter:`date`" >> /home/deploy/autocheck/log.txt
fi
fi
因為ssh 隧道有時會自動關閉,所以需要crontab 添加每分鐘檢測一次
Java代碼
*/1 * * * * /home/deploy/autocheck/e.sh
此腳本是暴露本地22端口給42.121.119.100的9222,這樣通過ssh 42.121.119.100 -p 9222就可以連進本機。還有一步是開通本機到42.121.119.100免密碼登陸。