remove cron check for now

This commit is contained in:
Ryahn 2025-02-23 17:02:10 -06:00
parent b1e22b7590
commit 4194f676b5

144
setup.sh
View File

@ -157,96 +157,96 @@ npm install >> /dev/null 2>&1
log_info "Running migrations..." log_info "Running migrations..."
npx knex migrate:latest npx knex migrate:latest
CRON_FILE="$CURRENT_DIR/.cron" # CRON_FILE="$CURRENT_DIR/.cron"
echo "" > "$CRON_FILE" # echo "" > "$CRON_FILE"
echo "0 * * * * $CURRENT_DIR/scripts/delete_messages_24h.sh >> /var/log/temp_mail/cleanup.log 2>&1" >> "$CRON_FILE" # echo "0 * * * * $CURRENT_DIR/scripts/delete_messages_24h.sh >> /var/log/temp_mail/cleanup.log 2>&1" >> "$CRON_FILE"
echo "0 0 * * * $CURRENT_DIR/scripts/delete_emails_14d.sh >> /var/log/temp_mail/cleanup.log 2>&1" >> "$CRON_FILE" # echo "0 0 * * * $CURRENT_DIR/scripts/delete_emails_14d.sh >> /var/log/temp_mail/cleanup.log 2>&1" >> "$CRON_FILE"
TEMP_CRON="/tmp/temp_cron" # TEMP_CRON="/tmp/temp_cron"
mkdir -p /var/log/temp_mail # mkdir -p /var/log/temp_mail
# Check if .cron file exists # # Check if .cron file exists
if [ ! -f "$CRON_FILE" ]; then # if [ ! -f "$CRON_FILE" ]; then
log_error "Cron file not found at $CRON_FILE" # log_error "Cron file not found at $CRON_FILE"
exit 1 # exit 1
fi # fi
# Function to normalize cron entry (remove extra spaces) # # Function to normalize cron entry (remove extra spaces)
normalize_cron() { # normalize_cron() {
echo "$1" | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//' -e 's/[ \t]\+/ /g' # echo "$1" | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//' -e 's/[ \t]\+/ /g'
} # }
# Function to check if a cron job exists # # Function to check if a cron job exists
check_cron_job() { # check_cron_job() {
local cron_entry="$1" # local cron_entry="$1"
local normalized_entry=$(normalize_cron "$cron_entry") # local normalized_entry=$(normalize_cron "$cron_entry")
# Get current user's crontab # # Get current user's crontab
crontab -l > "$TEMP_CRON" 2>/dev/null # crontab -l > "$TEMP_CRON" 2>/dev/null
# Check if the normalized entry exists in current crontab # # Check if the normalized entry exists in current crontab
if grep -Fq "$normalized_entry" "$TEMP_CRON"; then # if grep -Fq "$normalized_entry" "$TEMP_CRON"; then
return 0 # Found # return 0 # Found
else # else
return 1 # Not found # return 1 # Not found
fi # fi
} # }
# Function to install cron jobs # # Function to install cron jobs
install_cron_jobs() { # install_cron_jobs() {
log_info "Installing cron jobs..." # log_info "Installing cron jobs..."
# Get current crontab # # Get current crontab
crontab -l > "$TEMP_CRON" 2>/dev/null # crontab -l > "$TEMP_CRON" 2>/dev/null
# Read each line from .cron file # # Read each line from .cron file
while IFS= read -r line || [ -n "$line" ]; do # while IFS= read -r line || [ -n "$line" ]; do
# Skip comments and empty lines # # Skip comments and empty lines
[[ $line =~ ^#.*$ ]] || [ -z "$line" ] && continue # [[ $line =~ ^#.*$ ]] || [ -z "$line" ] && continue
normalized_line=$(normalize_cron "$line") # normalized_line=$(normalize_cron "$line")
if ! grep -Fq "$normalized_line" "$TEMP_CRON"; then # if ! grep -Fq "$normalized_line" "$TEMP_CRON"; then
log_warn "Cron job not found, adding: $normalized_line" # log_warn "Cron job not found, adding: $normalized_line"
echo "$normalized_line" >> "$TEMP_CRON" # echo "$normalized_line" >> "$TEMP_CRON"
else # else
log_info "Cron job already exists: $normalized_line" # log_info "Cron job already exists: $normalized_line"
fi # fi
done < "$CRON_FILE" # done < "$CRON_FILE"
# Install new crontab # # Install new crontab
crontab "$TEMP_CRON" # crontab "$TEMP_CRON"
# Clean up # # Clean up
rm -f "$TEMP_CRON" # rm -f "$TEMP_CRON"
} # }
# Main execution # # Main execution
log_info "Checking cron jobs..." # log_info "Checking cron jobs..."
# Read .cron file and check each entry # # Read .cron file and check each entry
missing_jobs=0 # missing_jobs=0
while IFS= read -r line || [ -n "$line" ]; do # while IFS= read -r line || [ -n "$line" ]; do
# Skip comments and empty lines # # Skip comments and empty lines
[[ $line =~ ^#.*$ ]] || [ -z "$line" ] && continue # [[ $line =~ ^#.*$ ]] || [ -z "$line" ] && continue
if ! check_cron_job "$line"; then # if ! check_cron_job "$line"; then
log_warn "Missing cron job: $line" # log_warn "Missing cron job: $line"
missing_jobs=$((missing_jobs + 1)) # missing_jobs=$((missing_jobs + 1))
else # else
log_info "Found cron job: $line" # log_info "Found cron job: $line"
fi # fi
done < "$CRON_FILE" # done < "$CRON_FILE"
# If any jobs are missing, offer to install them # # If any jobs are missing, offer to install them
if [ $missing_jobs -gt 0 ]; then # if [ $missing_jobs -gt 0 ]; then
log_warn "Found $missing_jobs missing cron job(s)" # log_warn "Found $missing_jobs missing cron job(s)"
install_cron_jobs # install_cron_jobs
log_info "Cron jobs have been updated" # log_info "Cron jobs have been updated"
else # else
log_info "All cron jobs are up to date" # log_info "All cron jobs are up to date"
fi # fi
log_info "Installation complete!" log_info "Installation complete!"
log_info "You can now start the email server with: sudo systemctl start haraka" log_info "You can now start the email server with: sudo systemctl start haraka"