To get the literal backslashes in the crontab file, you need to escape
the backslashes ("\\") in your double-quoted YAML string.
Alternatively, you could change your double-quoted string to a
single-quoted string, because backslashes aren't "special" in
single-quoted strings. If you do that, you'll also need to double the
single quotes to get literal single quotes — i.e. '*.gz' becomes
''*.gz'' etc. (Double-quoted strings and single-quoted strings have
completely different rules.)
Another alternative is to change your string to a "block scalar"
(https://yaml-multiline.info/) where all quotes and backslashes are not
"special":
line: |
{{ 23|random }} * * * find /var/ossec/logs/ \( -name '*.gz' -o -name
'*.json' -o -name '*.log' \) -type f -mtime +2 -delete; find /var/ossec/logs
-type d -empty -delete
On 1/23/24 6:10 AM, Kathy L wrote:
Good morning. I am updating a cron job by replacing a line in the
crontab file. My error comes when I use the "\" (see below) to escape
the "(". Using the escape character works on the command line but
Ansible keeps giving me a syntax error. Here is my code:
- name: Check for cron job to remove wazuh logs
lineinfile:
path: "{{ cron_job_path[ansible_distribution] }}"
regexp: "find /var/ossec/logs"
line: "{{ 59|random }} {{ 23|random }} * * * find /var/ossec/logs/
\( -name '*.gz' -o -name '*.json' -o -name '*.log' \) -type f -mtime
+2 -delete; find /var/ossec/logs -type d -empty -delete"
state: present
With this code, Ansible states "this one looks like it might be an
issue with missing quotes".
I need to escape the "(" for it to work in crontab/bash command line.
When I delete the "\" characters the Ansible error goes away, but of
course it does not work in crontab/bash.
I've tried using " around each of the commands but that doesn't work
either.
Does anyone see where I have gone wrong?
--
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 [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/ansible-project/f429e6ef-61e7-481a-90e1-69dd0504c63an%40googlegroups.com
<https://groups.google.com/d/msgid/ansible-project/f429e6ef-61e7-481a-90e1-69dd0504c63an%40googlegroups.com?utm_medium=email&utm_source=footer>.
--
Todd
--
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 [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/ansible-project/c00fb20a-2796-4e46-9b40-38645d9ba622%40gmail.com.