From b5b9d161cddd1b6650cde00cf0f3cbf56ab7a4a3 Mon Sep 17 00:00:00 2001 From: Maksim Pechnikov Date: Wed, 20 May 2020 06:56:04 +0300 Subject: [PATCH] update purge script --- installation/nginx-cache-purge.example | 39 ---------------------- installation/nginx-cache-purge.sh.example | 40 +++++++++++++++++++++++ 2 files changed, 40 insertions(+), 39 deletions(-) delete mode 100755 installation/nginx-cache-purge.example create mode 100755 installation/nginx-cache-purge.sh.example diff --git a/installation/nginx-cache-purge.example b/installation/nginx-cache-purge.example deleted file mode 100755 index 12dfa733c..000000000 --- a/installation/nginx-cache-purge.example +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/bash - -# A simple Bash script to delete an media from the Nginx cache. - -SCRIPTNAME=${0##*/} - -# NGINX cache directory -CACHE_DIRECTORY="/tmp/pleroma-media-cache" - -function get_cache_files() { - local max_parallel=${3-16} - find $2 -maxdepth 1 -type d | xargs -P $max_parallel -n 1 grep -ERl "^KEY:.*$1" | sort -u -} - -function purge_item() { - local cache_files - cache_files=$(get_cache_files "$1" "$2") - - if [ -n "$cache_files" ]; then - for i in $cache_files; do - [ -f $i ] || continue - echo "Deleting $i from $2." - rm $i - done - else - echo "$1 is not cached." - fi -} - -function purge() { - for url in "$@" - do - echo "$SCRIPTNAME delete $url from cache ($CACHE_DIRECTORY)" - purge_item $url $CACHE_DIRECTORY - done - -} - -purge $1 diff --git a/installation/nginx-cache-purge.sh.example b/installation/nginx-cache-purge.sh.example new file mode 100755 index 000000000..aaa195324 --- /dev/null +++ b/installation/nginx-cache-purge.sh.example @@ -0,0 +1,40 @@ +#!/bin/sh + +# A simple shell script to delete a media from the Nginx cache. + +SCRIPTNAME=${0##*/} + +# NGINX cache directory +CACHE_DIRECTORY="/tmp/pleroma-media-cache" + +## Return the files where the items are cached. +## $1 - the filename, can be a pattern . +## $2 - the cache directory. +## $3 - (optional) the number of parallel processes to run for grep. +get_cache_files() { + local max_parallel=${3-16} + find $2 -maxdepth 2 -type d | xargs -P $max_parallel -n 1 grep -ERl "^KEY:.*$1" | sort -u +} + +## Removes an item from the given cache zone. +## $1 - the filename, can be a pattern . +## $2 - the cache directory. +purge_item() { + for f in $(get_cache_files $1 $2); do + echo "found file: $f" + [ -f $f ] || continue + echo "Deleting $f from $2." + rm $f + done +} # purge_item + +purge() { + for url in "$@" + do + echo "$SCRIPTNAME delete \`$url\` from cache ($CACHE_DIRECTORY)" + purge_item $url $CACHE_DIRECTORY + done + +} + +purge $1