如何解决Ansible grep多个文件,然后将输出发送到邮件使用了错误的清单-已解决
我正在尝试获取多个目录中的某些文本,然后发送输出,当我在机器上使用相同的shell时,它可以正常工作并发送请求的输出,但是当尝试在其中使用ansible时遇上我出错了。
- name: Extract logs from server
hosts: all
tasks:
- name: execute
shell: grep -ir {{ my_var }} /var/log/folder/folder/* | mailx -s "Findings" {{ email }}
my_var:1234-abcd-1a2b3c3d
fatal: [10.54.229.13]: Failed! => {"changed": true,"cmd": "grep -ir 37f624c3-c898-4e2b-958a-ab78d20a03fe /var/log/3ds/components/* > /tmp/log","delta": "0:00:00.005845","end": "2020-10-05 17:28:17.509948","msg": "non-zero return code","rc": 2,"start": "2020-10-05 17:28:17.504103","stderr": "grep: /var/log/3ds/components/*: No such file or directory","stderr_lines": ["grep: /var/log/3ds/components/*: No such file or directory"],"stdout": "","stdout_lines": []}
我还尝试过grep> /tmp/tmp.file,然后从那里开始管理tmp.file | mailx内容。 并且可以在机器本身上使用时正常工作,但不能扔掉。
尝试时:
"find /var/log/folder/components/* -type f -exec grep 37f624c3-c898-
{} \; > /tmp/log "
获得以下信息:
ERROR! Syntax Error while loading YAML.
found unkNown escape character
The error appears to have been in '/tmp/awx_730_htsr76go/project/v2_log_extraction.yml': line 9,column 103,but may
be elsewhere in the file depending on the exact Syntax problem.
The offending line appears to be:
- name: execute
shell: "find /var/log/folder/components/* -type f -exec grep 37f624c3-c898 {} \; > /tmp/log "
^ here
在剧本中使用var时
- name: Extract logs from server
hosts: all
become: yes
tasks:
- name: execute
shell: "find /var/log/folder/components/* -type f -exec grep "{{ my_var}}" {} \; | mailx -s "log" {{ email }}"
args:
executable: /bin/sh
出现以下错误:
The error appears to have been in '/tmp/awx_733_qiog0f53/project/v2_log_extraction.yml': line 9,column 64,but may
be elsewhere in the file depending on the exact Syntax problem.
The offending line appears to be:
- name: execute
shell: "find /var/log/3ds/components/* -type f -exec grep {{ my_var}} {} \; | mailx -s "log" {{ email }}"
^ here
We Could be wrong,but this one looks like it might be an issue with
missing quotes. Always quote template expression brackets when they
start a value
请建议获得结果的最佳方法
嗨, 第一个代码运行完美。 问题出在椅子和电脑之间:D 我在错误的服务器上使用了错误的清单,实际上是/ var / log / folder / folder
感谢每个人的帮助
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。