Shell:script.sh正在编写空文件

时间:2016-12-05 19:47:37

标签: shell ansible ansible-playbook

我有一本剧本:

---
- name: Preparing the diff file (show | compare)
  hosts: 127.0.0.1
  gather_facts: no
  connection: local

  tasks:
  - name: "Creating a diff file"
    shell: "{{config_dir}}/diff.sh"

一个剧本:

#!/bin/sh
#find . -size +0 -name diff -printf "\n%p\n" -exec cat {} \; > $HOME/diff.all
#find . -size +0 -name diff -printf "\n%p\n" -exec cat {} \; > mytest.beep
more */diff | less > doop

任务启动脚本,脚本抓取所有名为" diff"的文件。并将其内容推送到test.txt。

当我在shell中运行此命令时,它可以工作。

当我运行此脚本时,它可以正常工作。

当我运行此playbook时,它会创建text.txt,但文件始终为空。

我尝试了具有相同目标的不同脚本。

我尝试通过Ansible而不是脚本内部添加文件创建:

  tasks:
  - name: "Creating a diff file"
    shell: "{{config_dir}}/diff.sh > test.txt" (Also tried with >>)

我尝试添加了:true

每次,我的playbook成功运行,test.txt都已创建,但它始终为空。

我错过了什么?

谢谢,

1 个答案:

答案 0 :(得分:1)

脚本在错误的目录中运行。通过在ansible-playbook命令中添加-v可以很容易地进行调试。