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
You must be logged in to post a comment Login