agent

安装在所有被控制机上的agent

简述

agent是一个脚本,处理了密码和插件调用的问题。agent使用tools/tcpserver启动成tcp服务把输入输出绑定到tcp服务中。
tcp的输入称为agent脚本的输入,agent的输出成为tcp的输出。
agent脚本把压缩的tcp输数解压后生成yaml格式的数据以标准输入的方式提供给插件。同时收集插件的标准输出和返回码
另外tcpserver使用bootstrap来做守护服务。
以上综合形成了agent服务。

关于插件

每一个插件是一个处理脚本,放在agent的code目录下,插件名前缀是free时将跳过权限验证,插件后缀是.mx时将做互斥操作,一个时间子运行一个该插件的实例。当前存在的插件如下:

exec: 执行sh命令
 例:
    ./dan/tools/rcall -r 10.10.10.1 exec "cd /tmp/;ls -l" #在10.10.10.1上执行"cd /tmp/;ls -l"命令

dump:把文件dump到远程机器
 例:
    ./dan/tools/rcall -r 10.10.10.1 dump /tmp/test #把/tmp/test复制到10.10.10.1机器上的/tmp/test
    ./dan/tools/rcall -r 10.10.10.1 dump /tmp/test -path /tmp/x -chown mydan -chmod 600 #把/tmp/test复制到10.10.10.1机器上,目标路径为/tmp/x,目标文件的own为mydan,目标用户的权限为600

apps: 调用服务命令

deploy:发布一个程序到某个机器