RexCommandsRun 执行一个远程命令
来源:互联网 发布:mac rar解压软件下载 编辑:程序博客网 时间:2024/05/21 17:08
RexCommandsRun 执行一个远程命令:使用这个模块 你可以运行一个命令: task "ppm", group=>"myservers", sub { my $output = run "pwd;ls -l"; say $output; };[root@node01 Rex]# rex ppm[2017-05-01 11:52:46] INFO - Running task ppm on 192.168.137.3/root导出的函数:这个格式 会执行 $command 使用给定的参数$arguments. 参数必须是一个数组引用,参数run($command_description, command => $command, %options)run($command_description, command => $command, %options)此函数会执行给定的命令和返回输出,在标量上下文 它返回原始输出,在一个列表上下文 他返回列表输出 命令的退出值是存在$?变量 task "uptime", group=>"myservers", sub { say run "uptime"; run "uptime", sub { my ($stdout, $stderr) = @_; my $server = Rex::get_current_connection()->{server}; say "[$server] $stdout\n"; }; print "---------------\n"; print $?; print "---------------\n"; };[root@node01 Rex]# rex uptime[2017-05-01 12:00:28] INFO - Running task uptime on 192.168.137.3 03:02:48 up 2 days, 23:30, 2 users, load average: 0.00, 0.00, 0.00[192.168.137.3] 03:02:48 up 2 days, 23:30, 2 users, load average: 0.00, 0.00, 0.00---------------0---------------[2017-05-01 12:00:39] INFO - All tasks successful on all hosts task "uptime", group=>"myservers", sub { say run "uptime"; run "xx", sub { my ($stdout, $stderr) = @_; my $server = Rex::get_current_connection()->{server}; say "[$server] $stdout\n"; }; print "---------------\n"; print $?; print "---------------\n"; };[root@node01 Rex]# rex uptime[2017-05-01 12:01:15] INFO - Running task uptime on 192.168.137.3 03:03:35 up 2 days, 23:30, 2 users, load average: 0.00, 0.00, 0.00[192.168.137.3] ---------------127---------------[2017-05-01 12:01:26] INFO - All tasks successful on all hosts例子:如果你要运行一个命令在指定的情况下, 你可以队列命令行 当你需要运行它时通知它如果你要运行一个命令如果另外的命令成功或者失败,你可以使用only_if或者unless 选项: task "ppm", group=>"myservers", sub { my $count= run "ps -ef | grep -i mysql | wc -l"; say $count; };[root@node01 Rex]# rex ppm[2017-05-01 12:15:19] INFO - Running task ppm on 192.168.137.34[2017-05-01 12:15:30] INFO - All tasks successful on all hosts[root@node01 Rex]# can_run($command)这个函数检查如果一个命令行在一个path是可用的,你可以指定多个命令行,第一个找到的命令会被返回; task "uptime",group=>"myservers", sub { if( my $cmd = can_run("xx", "uname -a") ) { say run $cmd; } };[root@node01 Rex]# rex uptime[2017-05-01 12:22:05] INFO - Running task uptime on 192.168.137.3Linux[2017-05-01 12:22:16] INFO - All tasks successful on all hosts[root@node01 Rex]#
阅读全文
0 0
- RexCommandsRun 执行一个远程命令
- ssh 远程执行命令
- 命令远程执行小结
- ssh远程执行命令
- 远程执行命令
- newlisp远程执行命令
- linux 执行远程命令
- 远程执行命令
- 远程执行命令
- ssh 远程执行命令
- golang远程执行命令
- Rex 远程执行命令
- 远程主机执行命令
- paramiko 远程执行命令
- zabbix执行远程命令
- 远程telnet并执行命令
- Windwos远程执行Linux命令
- linux 远程命令执行不
- 共祖系数、相关系数和近交系数
- grunt-contrib-connect自动刷新html页面
- 关于ajaxupload.js实现文件上传内容
- centos7下nginx自动启动配置
- js改变宽高字体大小透明度多物体模块运动
- RexCommandsRun 执行一个远程命令
- AppStore算法再次升级,运营如何在ASO中破冰?
- Windows 系统下文件(夹)名过长如何删除
- 物化视图
- getActivity,Context为空解决办法
- context:component-scan 组件扫描配置详解
- bootstrap 弹出框ui
- 运用kinect相机运行pcl自带的kinectfusion程序
- Kotlin在AndroidStudio上的配置