feat: add crontab function to automatically run services

This commit is contained in:
2026-03-01 14:45:07 +01:00
parent 3d5eedbe00
commit 19964de3e5
3 changed files with 25 additions and 18 deletions

View File

@@ -8,24 +8,13 @@ PROJECT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
readonly PROJECT_DIR 2>/dev/null readonly PROJECT_DIR 2>/dev/null
source $PROJECT_DIR/utils.sh 2>/dev/null source $PROJECT_DIR/utils.sh 2>/dev/null
source $ENV_FILE
INSTALLED=$1 INSTALLED=$1
if [[ "--install" == $INSTALLED ]]; then if [[ "--install" == $INSTALLED ]]; then
log_info "disk-monitor Installation" log_info "disk-monitor Installation"
CMD="0 3 * * 1 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin $PROJECT_DIR/disk-monitor.sh"
if ! command -v crontab >/dev/null 2>&1; then add_crontab "$CMD"
log_error "Error: crontab not found." exit
exit 1
fi
CRON_JOB="0 3 * * 1 $PROJECT_DIR/disk-monitor.sh"
crontab -l | grep -F "$CRON_JOB" > /dev/null 2>&1
if ! crontab -l | grep -Fq "$CRON_JOB"; then
(crontab -l 2>/dev/null; echo "$CRON_JOB") | crontab -
log_success "Cron job added."
fi
exit 0;
fi fi
usage=80 usage=80

View File

@@ -12,8 +12,12 @@ if [[ "--install" == $1 ]]; then
if [[ -f "$COMPOSE_FILE" ]]; then if [[ -f "$COMPOSE_FILE" ]]; then
docker compose -f "$COMPOSE_FILE" up -d --force-recreate --remove-orphans && \ docker compose -f "$COMPOSE_FILE" up -d --force-recreate --remove-orphans && \
log_success "$COMPOSE_FILE is running."; log_success "$COMPOSE_FILE is running.";
CMD="0 0 * * * PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin /usr/bin/docker compose --env-file $ENV_FILE -f $PROJECT_DIR/docker-compose.yml pull -q && /usr/bin/docker compose --env-file $ENV_FILE -f $PROJECT_DIR/docker-compose.yml up -d --remove-orphans"
else log_error "no docker-compose.yml found at $PROJECT_DIR"; add_crontab "$CMD"
else
log_error "no docker-compose.yml found at $PROJECT_DIR";
fi fi
exit 0; exit
fi fi
COMPOSE_FILE="$(realpath "$PROJECT_DIR/docker-compose.yml")"
docker compose -f "$COMPOSE_FILE" up -d --force-recreate --remove-orphans

View File

@@ -68,4 +68,18 @@ function env_variable() {
echo "$key=$value" >> "$ENV_FILE" echo "$key=$value" >> "$ENV_FILE"
log_success "$key created." log_success "$key created."
fi fi
}
function add_crontab() {
if ! command -v crontab >/dev/null 2>&1; then
log_error "Error: crontab not found."
fi
CRON_JOB=$1
crontab -l 2>/dev/null | grep -F "$CRON_JOB" > /dev/null 2>&1
if ! crontab -l 2>/dev/null | grep -Fq "$CRON_JOB"; then
(crontab -l 2>/dev/null; echo "$CRON_JOB") | crontab -
log_success "Cron job added."
fi
} }