Fix cron with multiple profiles

This commit is contained in:
Erik Westrup
2022-02-06 14:36:41 +01:00
parent 21bb0535ee
commit 1ee0e2c919
2 changed files with 18 additions and 4 deletions
+16 -2
View File
@@ -15,7 +15,7 @@
#### Non-file targets ######################################################### #### Non-file targets #########################################################
.PHONY: all help clean uninstall \ .PHONY: all help clean uninstall \
install install-scripts install-conf install-systemd install install-scripts install-conf install-systemd install-cron
#### Macros ################################################################### #### Macros ###################################################################
NOW := $(shell date +%Y-%m-%d_%H:%M:%S) NOW := $(shell date +%Y-%m-%d_%H:%M:%S)
@@ -40,11 +40,13 @@ MKDIR_PARENTS=sh -c '\
DIR_SCRIPT = sbin DIR_SCRIPT = sbin
DIR_CONF = etc/restic DIR_CONF = etc/restic
DIR_SYSTEMD = usr/lib/systemd/system DIR_SYSTEMD = usr/lib/systemd/system
DIR_CRON = etc/cron.d
# Source files. # Source files.
SRCS_SCRIPT = $(filter-out %cron_mail, $(wildcard $(DIR_SCRIPT)/*)) SRCS_SCRIPT = $(filter-out %cron_mail, $(wildcard $(DIR_SCRIPT)/*))
SRCS_CONF = $(wildcard $(DIR_CONF)/*) SRCS_CONF = $(wildcard $(DIR_CONF)/*)
SRCS_SYSTEMD = $(wildcard $(DIR_SYSTEMD)/*) SRCS_SYSTEMD = $(wildcard $(DIR_SYSTEMD)/*)
SRCS_CRON = $(wildcard $(DIR_CRON)/*)
# Local build directory. Sources will be copied here, # Local build directory. Sources will be copied here,
# modified and then installed from this directory. # modified and then installed from this directory.
@@ -52,23 +54,28 @@ BUILD_DIR := build
BUILD_DIR_SCRIPT = $(BUILD_DIR)/$(DIR_SCRIPT) BUILD_DIR_SCRIPT = $(BUILD_DIR)/$(DIR_SCRIPT)
BUILD_DIR_CONF = $(BUILD_DIR)/$(DIR_CONF) BUILD_DIR_CONF = $(BUILD_DIR)/$(DIR_CONF)
BUILD_DIR_SYSTEMD = $(BUILD_DIR)/$(DIR_SYSTEMD) BUILD_DIR_SYSTEMD = $(BUILD_DIR)/$(DIR_SYSTEMD)
BUILD_DIR_CRON = $(BUILD_DIR)/$(DIR_CRON)
# Sources copied to build directory. # Sources copied to build directory.
BUILD_SRCS_SCRIPT = $(addprefix $(BUILD_DIR)/, $(SRCS_SCRIPT)) BUILD_SRCS_SCRIPT = $(addprefix $(BUILD_DIR)/, $(SRCS_SCRIPT))
BUILD_SRCS_CONF = $(addprefix $(BUILD_DIR)/, $(SRCS_CONF)) BUILD_SRCS_CONF = $(addprefix $(BUILD_DIR)/, $(SRCS_CONF))
BUILD_SRCS_SYSTEMD = $(addprefix $(BUILD_DIR)/, $(SRCS_SYSTEMD)) BUILD_SRCS_SYSTEMD = $(addprefix $(BUILD_DIR)/, $(SRCS_SYSTEMD))
BUILD_SRCS_CRON = $(addprefix $(BUILD_DIR)/, $(SRCS_CRON))
# Destination directories # Destination directories
DEST_DIR_SCRIPT = $(PREFIX)/$(DIR_SCRIPT) DEST_DIR_SCRIPT = $(PREFIX)/$(DIR_SCRIPT)
DEST_DIR_CONF = $(PREFIX)/$(DIR_CONF) DEST_DIR_CONF = $(PREFIX)/$(DIR_CONF)
DEST_DIR_SYSTEMD = $(PREFIX)/$(DIR_SYSTEMD) DEST_DIR_SYSTEMD = $(PREFIX)/$(DIR_SYSTEMD)
DEST_DIR_CRON = $(PREFIX)/$(DIR_CRON)
# Destination file targets. # Destination file targets.
DEST_TARGS_SCRIPT = $(addprefix $(PREFIX)/, $(SRCS_SCRIPT)) DEST_TARGS_SCRIPT = $(addprefix $(PREFIX)/, $(SRCS_SCRIPT))
DEST_TARGS_CONF = $(addprefix $(PREFIX)/, $(SRCS_CONF)) DEST_TARGS_CONF = $(addprefix $(PREFIX)/, $(SRCS_CONF))
DEST_TARGS_SYSTEMD = $(addprefix $(PREFIX)/, $(SRCS_SYSTEMD)) DEST_TARGS_SYSTEMD = $(addprefix $(PREFIX)/, $(SRCS_SYSTEMD))
DEST_TARGS_CRON = $(addprefix $(PREFIX)/, $(SRCS_CRON))
INSTALLED_FILES = $(DEST_TARGS_SCRIPT) $(DEST_TARGS_CONF) $(DEST_TARGS_SYSTEMD) INSTALLED_FILES = $(DEST_TARGS_SCRIPT) $(DEST_TARGS_CONF) \
$(DEST_TARGS_SYSTEMD) $(DEST_TARGS_CRON)
#### Targets ################################################################## #### Targets ##################################################################
@@ -106,6 +113,8 @@ install-scripts: $(DEST_TARGS_SCRIPT) $(BUILD_SRCS_SCRIPT)
install-conf: $(DEST_TARGS_CONF) $(BUILD_SRCS_CONF) install-conf: $(DEST_TARGS_CONF) $(BUILD_SRCS_CONF)
# target: install-systemd - Install systemd timer and service files. # target: install-systemd - Install systemd timer and service files.
install-systemd: $(DEST_TARGS_SYSTEMD) $(BUILD_SRCS_SYSTEMD) install-systemd: $(DEST_TARGS_SYSTEMD) $(BUILD_SRCS_SYSTEMD)
# target: install-cron - Install cronjob.
install-cron: $(DEST_TARGS_CRON) $(BUILD_SRCS_CRON)
# Copies sources to build directory & replace "$INSTALL_PREFIX". # Copies sources to build directory & replace "$INSTALL_PREFIX".
$(BUILD_DIR)/% : % $(BUILD_DIR)/% : %
@@ -127,3 +136,8 @@ $(DEST_DIR_CONF)/%: $(BUILD_DIR_CONF)/%
$(DEST_DIR_SYSTEMD)/%: $(BUILD_DIR_SYSTEMD)/% $(DEST_DIR_SYSTEMD)/%: $(BUILD_DIR_SYSTEMD)/%
${MKDIR_PARENTS} $@ ${MKDIR_PARENTS} $@
install -m 0644 $< $@ install -m 0644 $< $@
# Install destination cron files.
$(DEST_DIR_CRON)/%: $(BUILD_DIR_CRON)/%
${MKDIR_PARENTS} $@
install -m 0644 $< $@
+2 -2
View File
@@ -4,5 +4,5 @@ PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin/:$INSTALL_PREFIX/sbin/
# minute hour mday month wday command # minute hour mday month wday command
# Reference: https://www.freebsd.org/doc/handbook/configtuning-cron.html # Reference: https://www.freebsd.org/doc/handbook/configtuning-cron.html
# Reference: crontab(5). # Reference: crontab(5).
@midnight root cron_mail restic_backup.sh @midnight root . $INSTALL_PREFIX/etc/restic/default.sh && cron_mail restic_backup.sh
@monthly root cron_mail restic_check.sh @monthly root . $INSTALL_PREFIX/etc/restic/default.sh && cron_mail restic_check.sh