通常的咱们想经过端口来绑定一个小程序, 当触发端口的时候就执行程序, 同时输出执行的message, 或者说是远程执行某个程序。html
有人说ssh远程执行不久OK啦, 可是在权限要求很严格的机器上, ssh就失去了的做用. 固然也能够规避这个问题. 今天不说ssh, 而是想说说tcpserver nginx
-
tcpserver小程序
tcpserver就是对一个proj启动一个tcp server. 监听端口响应程序,回写程序输出, 同是它还有不少其余的配置,好比执行权限---经过制定cdb文件来控制权限, 实现Net Wrapper功能。bash
cat /home/t/reload_nginx #!/bin/bash /home/t/nginx/sbin/nginx -s reload sleep(5) ps -ef | grep nginxa
192.168.101.10# tcpserver 0.0.0.0 10001 /home/q/reload_nginx
上述的一个script叫作reload_nginx, 它的功能是实现nginx配置文件的reload功能, 同是想看看reload以后nginx的进程状态。而后在所在的机器上把这个script绑定在了10001端口上。app
这样我就能够经过telnet来执行远端的程序啦ssh
$ telnet 192.168.101.10 10001
-
tcprules tcp
tcprules就是来生成cdb文件的。记住cdb是二进制文件, tcpserver能够识别。 spa
具体的语法:rest
tcprules /home/q/rules.cdb tmp < input_file
rules.cdb是要生成的cdb文件code
tmp文件是临时文件, tcprules在执行的时候, 先把生成的数据放在temp中, 等tcpserver空闲了在copy到cdb文件中去。
input_file是咱们制定的能够看得懂的规则, 好比:
cat /home/t/input_file 192.168.101.1:allow :deny
这样是说明, 只是容许192.168.101.1能够访问,其余都是拒绝的。
执行规则: 他是从上到下一条一条的判断, 符合就执行、退出, 不然判断下一条。
-
带IP限制的tcpserver
#tcpserver -x /home/t/rules.cdb 0.0.0.0 10001 /home/t/reload_nginx
-
tcpserver daemon启动
方法一: initd方式, 把tcpserver的程序包装一下,实现(start, stop, status, restart等)功能, 而后放在/etc/init.d/tcp_serverd下面。
方法二: daemontools管理
-
Download
http://cr.yp.to/ucspi-tcp.html