web:gzip
Скрипт для gzip сжатия ресурсов сайта
Файл compress.sh (gz.sh)
#! /bin/sh EXTENSIONS="html?|css|js|ttf|eot|svg" if [ -z "$1" ]; then DIR="`pwd`" else DIR="$1" fi find $DIR -type f -regextype posix-egrep -regex ".*\.($EXTENSIONS)\$" -exec `dirname $0`/do-gz.sh '{}' \; # if you want delete *.gz files # > find $DIR -name '*.gz' -delete
Файл do-compress.sh (do-gz.sh)
#! /bin/sh MINSIZE=100 GZIP="gzip -9 -c -n" AWK=awk TOUCH=touch if [ -n "$1" ]; then GZ_NAME="$1.gz" DATA_PLAIN=`stat --format "%s %Y" "$1"` PLAIN_SIZE=`echo "$DATA_PLAIN" | $AWK '{ print $1}'` PLAIN_MTIME=`echo "$DATA_PLAIN" | $AWK '{ print $2}'` if [ $PLAIN_SIZE -lt $MINSIZE ]; then echo "Ignoring file $1: its size ($PLAIN_SIZE) is less than $MINSIZE bytes" exit 0; fi if [ -f "$GZ_NAME" ]; then GZIPPED_MTIME=`stat --format "%Y" "$GZ_NAME"` if [ $GZIPPED_MTIME -eq $PLAIN_MTIME ]; then echo "Ignoring file $1: there is a compressed file $GZ_NAME with the same modification time" exit 0 fi fi $GZIP "$1" > "$GZ_NAME" $TOUCH -r "$1" "$GZ_NAME" echo "Compressed $1 to $GZ_NAME" fi
Как запускать
bash compress.sh [каталог]
Скрипт compress.sh
рекурсивно ищет файлы по заданным расширениям (переменная EXTENSIONS
). Далее каждый найденный файл передается скрипту do-compress.sh
, который уже делает .gz файл.
web/gzip.txt · Последнее изменение: 2017/08/09 16:09 — 127.0.0.1
Обсуждение