From 77fa1e8aecece81906ae6ec6b1007cd017452e93 Mon Sep 17 00:00:00 2001 From: VirtuBox Date: Tue, 7 Aug 2018 15:27:37 +0200 Subject: [PATCH] improve cronjobs --- .gitignore | 2 ++ cron/optimize-cron.sh | 19 ------------------- crons/jpg-png-cron.sh | 14 ++++++++++++++ {cron => crons}/sites.csv | 0 crons/webp-cron.sh | 25 +++++++++++++++++++++++++ optimize.sh | 22 ++++++++++------------ 6 files changed, 51 insertions(+), 31 deletions(-) create mode 100644 .gitignore delete mode 100644 cron/optimize-cron.sh create mode 100644 crons/jpg-png-cron.sh rename {cron => crons}/sites.csv (100%) create mode 100644 crons/webp-cron.sh diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d1a1fdf --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ + +\.history/ diff --git a/cron/optimize-cron.sh b/cron/optimize-cron.sh deleted file mode 100644 index ed3e6af..0000000 --- a/cron/optimize-cron.sh +++ /dev/null @@ -1,19 +0,0 @@ -input="sites.csv" -while IFS='|' read -r f1 f2 -do - # optimize jpg images created in the last 24 hours - find $f2 -iname "*.jpg" -o -iname "*.jpeg" -ctime 0 -print0 | xargs -0 jpegoptim --quiet --strip-all -m76 - # optimize png images created in the last 24 hours - find $f2 -iname '*.png' -ctime 0 -print0 | xargs -0 optipng -o7 -quiet -preserve - # convert png to webp - find $f2 -iname "*.png" -ctime 0 -print0 | xargs -0 -I {} \ - bash -c 'webp_version="$0".webp - if [ ! -f "$webp_version" ]; then - { cwebp -quiet -lossless {} -o {}.webp; } - fi' - find $f2 -iname "*.jpg" -o -iname "*.jpeg" -ctime 0 -print0 | xargs -0 -I {} \ - bash -c 'webp_version="$0".webp - if [ ! -f "$webp_version" ]; then - { cwebp -quiet -lossless {} -o {}.webp; } - fi' -done < "$input" \ No newline at end of file diff --git a/crons/jpg-png-cron.sh b/crons/jpg-png-cron.sh new file mode 100644 index 0000000..ecb1a41 --- /dev/null +++ b/crons/jpg-png-cron.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +## cronjob to optimize PNG/JPG images +## images path are listed in sites.csv +## written by VirtuBox (https://virtubox.net) + +input="sites.csv" +while IFS='|' read -r f1 f2 +do + # optimize jpg images created in the last 24 hours + find "$f2" -ctime 0 -type f \( -iname "*.jpg" -o -iname "*.jpeg" \) -print0 | xargs -0 jpegoptim --preserve --quiet --strip-all -m82 >> /var/log/jpg-png-cron.log + # optimize png images created in the last 24 hours + find "$f2" -ctime 0 -type f -iname '*.png' -print0 | xargs -0 optipng -o7 -strip all -quiet >> /var/log/jpg-png-cron.log +done < "$input" \ No newline at end of file diff --git a/cron/sites.csv b/crons/sites.csv similarity index 100% rename from cron/sites.csv rename to crons/sites.csv diff --git a/crons/webp-cron.sh b/crons/webp-cron.sh new file mode 100644 index 0000000..c8e12b3 --- /dev/null +++ b/crons/webp-cron.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +## cronjob to convert PNG/JPG images to WebP +## images path are listed in sites.csv +## written by VirtuBox (https://virtubox.net) + +input="sites.csv" +while IFS='|' read -r f1 f2 +do +# convert png created in the last 24 hours to webp +{ +find "$f2" -ctime 0 -type f -iname "*.png" -print0 | xargs -0 -I {} \ +bash -c 'webp_version="$0".webp +if [ ! -f "$webp_version" ]; then +{ cwebp -quiet -z 9 -mt {} -o {}.webp; } +fi' +# convert jpg created in the last 24 hours to webp +find "$f2" -ctime 0 -type f \( -iname "*.jpg" -o -iname "*.jpeg" \) -print0 | xargs -0 -I {} \ +bash -c 'webp_version="$0".webp +if [ ! -f "$webp_version" ]; then +{ cwebp -quiet -q 82 -mt {} -o {}.webp; } +fi' +} >> /var/log/webp-cron.log +done < "$input" + diff --git a/optimize.sh b/optimize.sh index aa0e379..2697845 100644 --- a/optimize.sh +++ b/optimize.sh @@ -7,8 +7,6 @@ CGREEN="${CSI}1;32m" # Welcome ################################## - - echo "" echo "Welcome to optimize.sh image optimization script." echo "" @@ -30,22 +28,22 @@ while [[ $webp != "y" && $webp != "n" ]]; do done # optimize jpg -jpgoptimize() { -find $1 -iname "*.jpg" -o -iname "*.jpeg" -print0 | xargs -0 jpegoptim --preserve --quiet --strip-all -m82 +jpg_optimize() { +find "$1" -type f \( -iname "*.jpg" -o -iname "*.jpeg" \) -print0 | xargs -0 jpegoptim --preserve --quiet --strip-all -m82 echo -ne " jpg optimization [${CGREEN}OK${CEND}]\\r" echo -ne "\\n" } # optimize png -pngoptimize() { -find $1 -iname '*.png' -print0 | xargs -0 optipng -o7 -strip all -quiet +png_optimize() { +find "$1" -type f -iname '*.png' -print0 | xargs -0 optipng -o7 -strip all -quiet echo -ne " png optimization [${CGREEN}OK${CEND}]\\r" echo -ne "\\n" } # convert png to webp -webpconvert() { -find $1 -iname "*.png" -print0 | xargs -0 -I {} \ +webp_convert_images() { +find "$1" -type f -iname "*.png" -print0 | xargs -0 -I {} \ bash -c 'webp_version="$0".webp if [ ! -f "$webp_version" ]; then { cwebp -quiet -z 9 -mt {} -o {}.webp; } @@ -55,7 +53,7 @@ fi' echo -ne "\\n" # convert jpg to webp -find $1 -iname "*.jpg" -o -iname "*.jpeg" -print0 | xargs -0 -I {} \ +find "$1" -type f \( -iname "*.jpg" -o -iname "*.jpeg" \) -print0 | xargs -0 -I {} \ bash -c 'webp_version="$0".webp if [ ! -f "$webp_version" ]; then { cwebp -quiet -q 82 -mt {} -o {}.webp; } @@ -67,15 +65,15 @@ fi' if [ "$jpg" = "y" ] then - jpgoptimize + jpg_optimize "$@" fi if [ "$png" = "y" ] then - pngoptimize + png_optimize "$@" fi if [ "$webp" = "y" ] then - webpconvert + webp_convert_images "$@" fi # We're done !