Yeah, you can register the output of a shell command as a fact, below is simple example. Matts reply looks much nicer though, i would use his so you are not dependent on shell commands.
from the man page of date: > -r, --reference=FILE > display the last modification time of FILE working example (replace filenametocheck with your actual filename) > > - hosts: localhost > connection: local > tasks: > - shell: "echo $((($(date +%s) - $(date +%s -r 'filenametocheck')) / > 86400))" > register: file_check > - set_fact: > file_days: "{{ file_check.stdout |int }}" > - debug: > msg: "file is {{ file_days }} days old" On Tuesday, April 30, 2019 at 7:47:04 PM UTC-7, Andy Magana wrote: > > So I really have been racking my melon on this so your saying I can echo > with the shell module what is the -r any way ? > > > > On Tue, Apr 30, 2019 at 12:42 PM Adam E <abed...@gmail.com <javascript:>> > wrote: > >> You could run a "shell" command and register the output to a variable >> using a command something like the following: >> >> echo $((($(date +%s) - $(date +%s -r "$filename")) / 86400)) >> >> >> Alternatively, you could develop a action_plugin >> <https://docs.ansible.com/ansible/latest/plugins/action.html> that could >> accept the filename as a parameter and perform the logic in python by first >> calling the stat >> <https://docs.ansible.com/ansible/latest/modules/stat_module.html> >> module on the file as it also returns the last modification time of the >> file via mtime. >> >> On Monday, April 29, 2019 at 2:43:07 PM UTC-7, Andy Magana wrote: >>> >>> So I created a simple bash script to compare dates of the current date >>> and last date of a directory that was last modified. >>> >>> What I am looking for is something done in Ansible that can take the >>> converted date string of two variables and subtract the difference. >>> >>> We have these DAT MacAfee files, I just don’t like the bash script I >>> created and looking for something that can be done with a yaml playbook. >>> >>> So here is my script: >>> >>> >>> #!/bin/bash >>> # TO PRINT THE NUMBER OF DAYS SINCE LAST AV UPDATE >>> past_date=$(du -h --time testdate | grep -Eo >>> '[[:digit:]]{4}-[[:digit:]]{2}-[[:digit:]]{2}') >>> >>> >>> # Perform a subtraction of past_date string >>> # from today's string divided by seconds times 12 hour days >>> diff=$((($(date +%s)-$(date +%s --date "$past_date"))/(3600*24))) >>> echo It has been $diff days since the last AV DAT update >>> >>> >>> >>> Thanks in advance. >>> >>> Andy Magana >>> >>> Oklahoma, City OK >>> >> -- >> You received this message because you are subscribed to the Google Groups >> "Ansible Project" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to ansible...@googlegroups.com <javascript:>. >> To post to this group, send email to ansible...@googlegroups.com >> <javascript:>. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/ansible-project/577a669c-0e52-4716-9cbf-cabd07d942ac%40googlegroups.com >> >> <https://groups.google.com/d/msgid/ansible-project/577a669c-0e52-4716-9cbf-cabd07d942ac%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> For more options, visit https://groups.google.com/d/optout. >> > -- You received this message because you are subscribed to the Google Groups "Ansible Project" group. To unsubscribe from this group and stop receiving emails from it, send an email to ansible-project+unsubscr...@googlegroups.com. To post to this group, send email to ansible-project@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/1b0f7e60-4b49-4df1-9dad-493826f5cda8%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.