请参阅此link以了解我的所作所为。
简短说明
我需要在远程计算机上运行top命令并获取结果内容,然后将该文件保存在本地计算机
中test.yml
#!/bin/bash
top > system.txt
top.sh
stderr: top: failed tty get
<job 351267881857.24744> FAILED on 192.168.1.7
问题
top.sh 永远不会结束,所以我尝试每五秒轮询结果并复制到本地计算机但它不能正常工作。它会抛出错误。
class A {
protected void msg(){
System.out.println("-------------------asdfghjkl");
}
}
注意:仅当我包含async和poll选项
时才会出现此错误答案 0 :(得分:0)
您是否需要自行运行top
命令,或者这只是您要监控的长时间运行程序的示例?
您收到的错误:
顶部:失败tty get
...当top
命令未在真正的终端会话中运行时发生。 Ansible使用的ssh
模式不支持完整的终端会话所具有的所有控制台功能 - 这是top
所期望的。
答案 1 :(得分:0)
Hello Bilal我希望这对你有用
您的语法:使用民意调查:5 关注此链接http://docs.ansible.com/ansible/playbooks_async.html
民意调查正在使用等待任务来完成。但是top命令不会停止,直到使用停止或系统关闭。使用民意调查:0
“或者,如果您不需要等待任务完成,您可以通过指定轮询值0来”触发并忘记“:”
现在忘记任务,从远程收集顶级结果文件并在语法
下存储到本地使用 - hosts: webservers
remote_user: root
tasks:
- name: 'Copy top.sh to remote machine'
synchronize: mode=push src=top.sh dest=/home/raj
- name: collecting top result
command: sh /home/raj/top.sh
async: 45
poll: 0
- name: 'Copy top command result to local machine'
synchronize: mode=pull src=/home/raj/Top.txt dest=/home/raj2/Documents/Ansible
top.sh:
#!/bin/bash
top -b > /home/raj/Top.txt
这对我有用。如果你有任何问题,请告诉我。