Connect with us

VPS

VPS建立圖片優化

Step 1:建立批次優化腳本

bash
sudo nano /usr/local/bin/optimize-images.sh

貼入以下內容:

bash
#!/bin/bash
TARGET_DIR="/var/www/hualien.persuit.cc/htdocs/wp-content/uploads"
LOG="/var/log/image-optimizer.log"

echo "========================================" >> "$LOG"
echo "批次優化開始:$(date)" >> "$LOG"

find "$TARGET_DIR" -type f \( -name "*.jpg" -o -name "*.jpeg" \) | while read img; do
    webp_file="${img%.*}.webp"
    if [ ! -f "$webp_file" ]; then
        jpegoptim --max=82 --strip-all "$img" >> "$LOG" 2>&1
        cwebp -q 80 "$img" -o "$webp_file" >> "$LOG" 2>&1
        echo "已處理:$img" >> "$LOG"
    fi
done

find "$TARGET_DIR" -type f -name "*.png" | while read img; do
    webp_file="${img%.*}.webp"
    if [ ! -f "$webp_file" ]; then
        optipng -o3 "$img" >> "$LOG" 2>&1
        cwebp -q 80 "$img" -o "$webp_file" >> "$LOG" 2>&1
        echo "已處理:$img" >> "$LOG"
    fi
done

echo "批次優化完成:$(date)" >> "$LOG"

Ctrl+X → Y → Enter 儲存,然後:

bash
sudo chmod +x /usr/local/bin/optimize-images.sh

Step 2:建立即時監聽腳本

bash
sudo nano /usr/local/bin/watch-uploads.sh

貼入以下內容:

bash
#!/bin/bash
LOG="/var/log/image-optimizer.log"

echo "圖片監聽服務啟動:$(date)" >> "$LOG"

DIRS=(
    "/var/www/hualien.persuit.cc/htdocs/wp-content/uploads"
)

inotifywait -m -r -e close_write --format '%w%f' "${DIRS[@]}" 2>/dev/null | \
while read filepath; do
    filename=$(basename "$filepath")
    ext="${filename##*.}"
    ext=$(echo "$ext" | tr '[:upper:]' '[:lower:]')
    webp_file="${filepath%.*}.webp"

    if [[ "$ext" != "jpg" && "$ext" != "jpeg" && "$ext" != "png" ]]; then
        continue
    fi

    sleep 1

    if [[ "$ext" == "jpg" || "$ext" == "jpeg" ]]; then
        jpegoptim --max=82 --strip-all "$filepath" >> "$LOG" 2>&1
        cwebp -q 80 "$filepath" -o "$webp_file" >> "$LOG" 2>&1
    elif [[ "$ext" == "png" ]]; then
        optipng -o3 "$filepath" >> "$LOG" 2>&1
        cwebp -q 80 "$filepath" -o "$webp_file" >> "$LOG" 2>&1
    fi

    echo "即時優化完成:$filepath$webp_file [$(date)]" >> "$LOG"
done

Ctrl+X → Y → Enter 儲存,然後:

bash
sudo chmod +x /usr/local/bin/watch-uploads.sh

Click to comment

You must be logged in to post a comment Login

Leave a Reply