我最近发现的一个惊喜是Bash本身支持tcp连接作为文件描述符。使用方法:
exec 6<>/dev/tcp/ip.addr.of.server/445echo -e "GET / HTTP/1.0n" >&6cat <&6
我使用6作为文件描述符,因为0,1,2是stdin,stdout和stderr。Bash有时会将5用作子进程,因此3,4,6,7,8和9应该是安全的。
根据下面的注释,要测试是否在脚本中侦听 本地服务器 :
exec 6<>/dev/tcp/127.0.0.1/445 || echo "No one is listening!"exec 6>&- # close output connectionexec 6<&- # close input connection
要确定是否有人在监听,请尝试通过环回连接。如果失败,则说明该端口已关闭或不允许我们访问。然后,关闭连接。
针对您的用例进行修改,例如发送电子邮件,在失败时退出脚本或启动所需的服务。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)