mirror of
https://github.com/guezoloic/serverconfig.git
synced 2026-03-28 18:03:49 +00:00
feat: add crontab function to automatically run services
This commit is contained in:
@@ -8,24 +8,13 @@ PROJECT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
|
||||
readonly PROJECT_DIR 2>/dev/null
|
||||
|
||||
source $PROJECT_DIR/utils.sh 2>/dev/null
|
||||
source $ENV_FILE
|
||||
|
||||
INSTALLED=$1
|
||||
if [[ "--install" == $INSTALLED ]]; then
|
||||
log_info "disk-monitor Installation"
|
||||
|
||||
if ! command -v crontab >/dev/null 2>&1; then
|
||||
log_error "Error: crontab not found."
|
||||
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;
|
||||
CMD="0 3 * * 1 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin $PROJECT_DIR/disk-monitor.sh"
|
||||
add_crontab "$CMD"
|
||||
exit
|
||||
fi
|
||||
|
||||
usage=80
|
||||
|
||||
@@ -12,8 +12,12 @@ if [[ "--install" == $1 ]]; then
|
||||
if [[ -f "$COMPOSE_FILE" ]]; then
|
||||
docker compose -f "$COMPOSE_FILE" up -d --force-recreate --remove-orphans && \
|
||||
log_success "$COMPOSE_FILE is running.";
|
||||
|
||||
else log_error "no docker-compose.yml found at $PROJECT_DIR";
|
||||
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"
|
||||
add_crontab "$CMD"
|
||||
else
|
||||
log_error "no docker-compose.yml found at $PROJECT_DIR";
|
||||
fi
|
||||
exit 0;
|
||||
fi
|
||||
exit
|
||||
fi
|
||||
COMPOSE_FILE="$(realpath "$PROJECT_DIR/docker-compose.yml")"
|
||||
docker compose -f "$COMPOSE_FILE" up -d --force-recreate --remove-orphans
|
||||
14
utils.sh
14
utils.sh
@@ -68,4 +68,18 @@ function env_variable() {
|
||||
echo "$key=$value" >> "$ENV_FILE"
|
||||
log_success "$key created."
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user