From 4e58c6b36021b962a095bf88bab808aee168d07f Mon Sep 17 00:00:00 2001
From: jurgenhaas <juergen.haas@lakedrops.com>
Date: Wed, 5 Jun 2024 13:57:00 +0200
Subject: [PATCH] ansible-inventories/lakedrops#93 Add borgmatic compact cron
 job once a month

---
 tasks/app.yml    |  1 +
 tasks/config.yml | 12 ++++++++++++
 2 files changed, 13 insertions(+)

diff --git a/tasks/app.yml b/tasks/app.yml
index a5d8f9b..85315b2 100644
--- a/tasks/app.yml
+++ b/tasks/app.yml
@@ -51,6 +51,7 @@
         content: |
           55 */6 * * * PATH=$PATH:/usr/bin /usr/local/bin/borgmatic --stats -v 0 2>&1 && {{ lookup('healthchecks', '', user='root', jobname=['Backup', application, application_id]|join(' '), schedule='55 */6 * * *', disabled=crons_disabled|default(false)) }}
           30 23 1 * * PATH=$PATH:/usr/bin /usr/local/bin/borgmatic check -v 0 2>&1 && {{ lookup('healthchecks', '', user='root', jobname=['Check Backup', application, application_id]|join(' '), schedule='30 23 1 * *', disabled=crons_disabled|default(false)) }}
+          30 23 5 * * PATH=$PATH:/usr/bin /usr/local/bin/borgmatic compact -v 0 2>&1 && {{ lookup('healthchecks', '', user='root', jobname=['Compact Backup', application, application_id]|join(' '), schedule='30 23 5 * *', disabled=crons_disabled|default(false)) }}
         dest: '{{ application_root }}/borgconfig/crontab.txt'
         owner: root
         group: root
diff --git a/tasks/config.yml b/tasks/config.yml
index b85f3f0..bea1ca1 100644
--- a/tasks/config.yml
+++ b/tasks/config.yml
@@ -72,6 +72,18 @@
   tags:
     - cron
 
+- name: Add cron job for compact
+  cron:
+    name: borgmatic-check
+    day: 5
+    hour: 23
+    minute: 30
+    cron_file: borgmatic
+    user: root
+    job: systemd-inhibit --why="Backup Compact is running" --who="Borg Compact" /usr/local/bin/borgmatic -v 1 compact > /var/log/borg-compact.log 2>&1 && {{ lookup('healthchecks', '', user='root', jobname='borgmatic-compact', schedule=['30','23','5','*','*']|join(' '), duration=7200) }}
+  tags:
+    - cron
+
 - name: Set PATH for borgmatic cron job.
   cron:
     cron_file: '{{ item }}'
-- 
GitLab