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
Alternatively, you could develop a action_plugin that could accept the filename as a parameter and perform the logic in python by first calling the stat module on the file as it also returns the last modification time of the file via mtime.
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)