<>rsync
从远程机器同步到本地并删除目标比源目录多余的文件 rsync -avzP --delete -e 'ssh -p port' root@{remoteHost
}:{remoteDir} {localDir} --exclude=dirname 从本地机器同步到远程并删除目标比源目录多余的文件 rsync -avzP
--delete -e 'ssh -p port' {localDir} root@{remoteHost}:{remoteDir} --exclude=
dirname
<>ssh隧道使用(-R)

运维的过程中间,如果碰到一个内网的机器,ip为内网的dhcp自动获取(可能ip在未来的一次重启的时候发生了变化),都可以通过在一个公网的机器上面打一个反向隧道
方案一:(配合crontab使用) #!/bin/bash #
公网做转发到内网,在公网上面创建一个隧道到内网机器上面,并对该隧道进行监控,配合crontab使用,该脚本执行前首先创建内网机器到公网机器的免密隧道
ROMOTE_USERNAME="root" ROMOTE_SERVER_IP="154.9.157.30" # 公网ip ROMOTE_PORT=22
TUNNEL_PORT=5022 LOCALHOST_IP=`/sbin/ifconfig -a|grep inet|grep -v 127.0.0.1|
grep -v inet6|awk '{print $2}'|tr -d "addr:"` LOCALHOST_PORT=22 PID=$(
/usr/bin/ssh -l ${ROMOTE_USERNAME} ${ROMOTE_SERVER_IP} -p ${ROMOTE_PORT} netstat
-nptl| grep ${TUNNEL_PORT} | grep sshd | awk '{print $NF}' | cut -d '/' -f 1)
PID=${PID%%/*} if [ -n "$PID" ];then IS_LISTEN=$(/usr/bin/ssh -l ${
ROMOTE_USERNAME} ${ROMOTE_SERVER_IP} -p ${ROMOTE_PORT} netstat -nptl | grep ${
PID} | grep sshd | grep LISTEN | wc -l) if [ "$IS_LISTEN" -ne "0" ];then exit 0
else /usr/bin/ssh -l ${ROMOTE_USERNAME} ${ROMOTE_SERVER_IP} -p ${ROMOTE_PORT}
kill -9 ${PID} /usr/bin/ssh -CqTfnN -R 0.0.0.0:${TUNNEL_PORT}:${LOCALHOST_IP}:
${LOCALHOST_PORT} ${ROMOTE_USERNAME}@${ROMOTE_SERVER_IP} -p ${ROMOTE_PORT} fi
else /usr/bin/ssh -CqTfnN -R 0.0.0.0:${TUNNEL_PORT}:${LOCALHOST_IP}:
${LOCALHOST_PORT} ${ROMOTE_USERNAME}@${ROMOTE_SERVER_IP} -p ${ROMOTE_PORT} fi
方案二:(内网机器启动之后执行,while死循环)#!/bin/bash # 公网做转发到内网,在公网上面创建一个隧道到内网机器上面,并对该隧道进行监控
while [ true ] do ROMOTE_USERNAME="root" ROMOTE_SERVER_IP="154.9.187.30" #公网ip
ROMOTE_PORT=22 TUNNEL_PORT=5022 LOCALHOST_IP=`/sbin/ifconfig -a|grep inet|grep
-v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"` LOCALHOST_PORT=22 PID
=$(/usr/bin/ssh -l ${ROMOTE_USERNAME} ${ROMOTE_SERVER_IP} -p ${ROMOTE_PORT}
netstat -nptl | grep ${TUNNEL_PORT} | grep sshd | awk '{print $NF}' | cut -d '/'
-f 1) PID=${PID%%/*} if [ -n "$PID" ];then IS_LISTEN=$(/usr/bin/ssh -l ${
ROMOTE_USERNAME} ${ROMOTE_SERVER_IP} -p ${ROMOTE_PORT} netstat -nptl | grep ${
PID} | grep sshd | grep LISTEN | wc -l) if [ "$IS_LISTEN" -ne "0" ];then sleep
30else /usr/bin/ssh -l ${ROMOTE_USERNAME} ${ROMOTE_SERVER_IP} -p ${ROMOTE_PORT}
kill -9 ${PID} /usr/bin/ssh -CqTfnN -R 0.0.0.0:${TUNNEL_PORT}:${LOCALHOST_IP}:
${LOCALHOST_PORT} ${ROMOTE_USERNAME}@${ROMOTE_SERVER_IP} -p ${ROMOTE_PORT} fi
else /usr/bin/ssh -CqTfnN -R 0.0.0.0:${TUNNEL_PORT}:${LOCALHOST_IP}:
${LOCALHOST_PORT} ${ROMOTE_USERNAME}@${ROMOTE_SERVER_IP} -p ${ROMOTE_PORT} fi
done

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:637538335
关注微信