如何在Ansible中比较文件的最后修改时间

时间:2019-07-29 10:30:28

标签: time ansible

我有一个文件的最后修改时间显示为“ 1563886751.38”(带有stat和mtime)。我想检查运行剧本的时间是否相同。

我已将变量定义为file_time:1563872351。 我想检查一下mtime中是否存在该值。

vars: 
file_date: 1563872351

- name: test
    stat:
     path: /tmp/logrotate/testx1
    register: sym

- debug:
   msg: "{{same}}"
  when: sym.stat.mtime.find(file_date) != -1

但是出现以下错误:

'dict object' has no attribute 'find'

我看到没有属性查找,但是有某种方法可以做到吗?我需要检查它是否包含值,不等于。

1 个答案:

答案 0 :(得分:0)

这可以通过将两个值都转换为字符串并使用in运算符来实现:

    - debug:
        msg: same
      when: file_date|string in sym.stat.mtime|string

我不确切知道您将用它做什么,但这也许对您来说是一种更好的方法:

    - debug:
        msg: same
      when: sym.stat.mtime|int == file_date