#!/bin/bash set -e BASE_URL="${BASE_URL:?BASE_URL env not set}" FILE_LIST="${FILE_LIST:?FILE_LIST env not set}" CRON_EXPR="${CRON_EXPR:-0 */12 * * *}" USER_AGENT="${USER_AGENT:-Mozilla/5.0}" ACCEPT_ENCODING="${ACCEPT_ENCODING:-br,gzip}" echo "$(date) - Starting cache warmer for $BASE_URL$FILE_LIST" echo "Cron schedule: $CRON_EXPR" cat << EOF > /app/warm_files.sh #!/bin/sh set -e BASE_URL="$BASE_URL" FILE_LIST="$FILE_LIST" USER_AGENT="$USER_AGENT" ACCEPT_ENCODING="$ACCEPT_ENCODING" echo "\$(date) - Fetching file list from \$BASE_URL\$FILE_LIST" # WAŻNE: --compressed automatycznie dekompresuje odpowiedź FILES=\$(curl -s --compressed -A "\$USER_AGENT" "\$BASE_URL\$FILE_LIST") if [ -z "\$FILES" ]; then echo "\$(date) - File list empty" exit 1 fi echo "\$FILES" | while read -r url; do if [ -n "\$url" ]; then echo "\$(date) - Warming \$BASE_URL/\$url" curl -s -o /dev/null -A "\$USER_AGENT" -H "Accept-Encoding: \$ACCEPT_ENCODING" "\$BASE_URL/\$url" fi done echo "\$(date) - Warming completed" EOF chmod +x /app/warm_files.sh touch /var/log/cron.log echo "$(date) - Running initial warming..." /app/warm_files.sh echo "$CRON_EXPR /app/warm_files.sh >> /var/log/cron.log 2>&1" > /etc/crontabs/root echo "$(date) - Starting crond..." crond -f -l 2 & tail -f /var/log/cron.log