OXIESEC PANEL
- Current Dir:
/
/
var
/
www
/
cream
/
weeklyEmail
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
06/17/2025 10:17:24 AM
rwxrwxr-x
📄
1.php
2.62 KB
06/12/2025 02:54:56 PM
rw-r--r--
📄
2.php
2.73 KB
06/12/2025 02:48:34 PM
rw-r--r--
📁
PHPMailer
-
05/19/2025 10:07:13 AM
rwxr-xr-x
📄
TEST.php
31.55 KB
06/16/2025 11:44:55 AM
rw-r--r--
📁
email_logs
-
06/18/2025 12:44:25 AM
rwxrwxrwx
📄
unsubscribe.php
7.32 KB
05/19/2025 10:07:13 AM
rw-r--r--
📄
weekly_email_cron_wrapper.sh
2.27 KB
05/12/2025 05:22:24 AM
rwxr-xr-x
📄
weeklyemail.php
30.67 KB
06/17/2025 04:15:00 AM
rw-r--r--
Editing: weekly_email_cron_wrapper.sh
Close
#!/bin/bash # Configuration PHP_BIN="/usr/bin/php" EMAIL_SCRIPT_PATH="/var/www/cream/weeklyEmail/weeklyemail.php" BASE_LOG_DIR="/var/www/cream/weeklyEmail/email_logs" PROGRESS_FILE="${BASE_LOG_DIR}/progress.json" LOCK_FILE="${BASE_LOG_DIR}/weekly_email.lock" TODAY=$(date +%Y-%m-%d) LOG_FILE="${BASE_LOG_DIR}/cron_weekly_email_${TODAY}.log" # Create log directory if it doesn't exist mkdir -p "$BASE_LOG_DIR" # Log start of execution echo "=======================================" >> "$LOG_FILE" echo "Weekly email cron started: $(date)" >> "$LOG_FILE" # Check if another instance is running if [ -f "$LOCK_FILE" ]; then LOCK_PID=$(cat "$LOCK_FILE") if ps -p "$LOCK_PID" > /dev/null; then echo "Another instance is already running with PID $LOCK_PID. Exiting." >> "$LOG_FILE" exit 1 else echo "Found stale lock file. Previous process may have crashed." >> "$LOG_FILE" rm -f "$LOCK_FILE" fi fi # Create lock file echo $$ > "$LOCK_FILE" # Function to clean up lock file on exit function cleanup { rm -f "$LOCK_FILE" echo "Lock file removed, process completed: $(date)" >> "$LOG_FILE" echo "=======================================" >> "$LOG_FILE" } # Register cleanup function trap cleanup EXIT # Determine if we need to process emails if [ -f "$PROGRESS_FILE" ]; then # We have a progress file, meaning there are pending emails echo "Found progress file. Resuming interrupted email sending..." >> "$LOG_FILE" $PHP_BIN -f "$EMAIL_SCRIPT_PATH" >> "$LOG_FILE" 2>&1 EXIT_CODE=$? if [ $EXIT_CODE -ne 0 ]; then echo "Email script encountered an error (exit code: $EXIT_CODE)." >> "$LOG_FILE" fi else # No progress file exists. Check if it's Monday to start a new batch CURRENT_DAY=$(date +%u) if [ "$CURRENT_DAY" -eq 1 ]; then echo "It's Monday. Starting new weekly email batch..." >> "$LOG_FILE" $PHP_BIN -f "$EMAIL_SCRIPT_PATH" >> "$LOG_FILE" 2>&1 EXIT_CODE=$? if [ $EXIT_CODE -ne 0 ]; then echo "Email script encountered an error (exit code: $EXIT_CODE)." >> "$LOG_FILE" fi else echo "No pending emails and it's not Monday. Nothing to do." >> "$LOG_FILE" fi fi # Log completion echo "Weekly email cron completed: $(date)" >> "$LOG_FILE"