linux shell 通过nc编写的服务端和客户端
程序员文章站
2022-01-13 10:57:10
...
在运维中总是需要对多台服务器进行服务的启停操作,通过预先编写的脚本执行,但是如何远程调用就是一个比较头疼的问题。
现在很多Linux服务器都自带了nc命令可以进行服务器间的信息交流。于是就有了打算通过nc工具来执行预定的命令,好处是不用输入保存密码,在很多嵌入式设备上也可以使用。
首先是测试nc是否可以监听端口,因为很多嵌入式Linux系统并不能监听。
执行以下命令测试:
nc -l -d 10356
能执行就可以运行服务端
#!/bin/bash
while true ;do
ret=`nc -l -d 10356`
echo ret=$ret
if [[ $ret == "exit" ]]; then
break
fi
case $ret in
"yes")
echo `date +%F-%T`" You choose yes"
;;
"no")
echo `date +%F-%T`" You choose no"
;;
*)
echo `date +%F-%T`" You choose none"
;;
esac
done
一个while循环直接可以处于后台模式的监听执行操作
而一个选择代码块则可以直接执行对应的代码
当客户端输入exit时退出这个脚本,当然很多时候没有必要。
这样可以直接把里面的执行代码改为需要执行的命令和脚本就可以了。
客户端代码
#!/bin/sh
HOST=192.168.20.66
PORT=10356
send(){
echo $1|nc $2 $3
if [[ $? <> 0 ]];then
echo "发送未成功!"
fi
}
send yes $HOST $PORT
send no $HOST $PORT
send test $HOST $PORT
对于客户端的代码就没有这么多要求了,基本上是个Linux都能用上。
这个也只是简化了一些自定义的代码。
后期应该会基于此编写能互相传输和执行命令的脚本。
推荐阅读
-
Linux系统如何安装和使用shell编写的工具supportconfig
-
详细介绍php编写TCP服务端和客户端程序的代码案例
-
详细介绍php编写TCP服务端和客户端程序的代码案例
-
Linux系统如何安装和使用shell编写的工具supportconfig
-
Linux 多路I/O复用转接的Select模型的服务端和客户端
-
linux & windows tcp客户端和服务端,发送和接收文件(公网测试通过)
-
linux网络中编写一个TCP的客户端和服务端的流程总结
-
Linux系统下通过TCP可下载文件的客户端、服务端
-
linux下socket的TCP服务端和客户端双向通信程序笔记
-
基于Linux的客户端与服务端的传输和信息交互