Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # Variablen zur einfacheren Anpassung
- LIST_URL="https://easylist-downloads.adblockplus.org/easylist.txt"
- ZIEL_DIR="/var/lib/squidguard/db/adv"
- ZIEL_NAME="expressions"
- TEMP_DIR="/tmp"
- # Die Hashfunktion
- HASH_FUNC=$(which sha256sum)
- # Alternativ: HASH_FUNC=$(which md5sum)
- # Aber sha256 ist leicht schneller als der md5.
- # Das Folgende zieht die Datei aus dem Internet und wandelt sie in einem Schritt um:
- # Wir speichern sie zunächst in einem temporären Verzeichnis.
- curl "${LIST_URL}" | sed \
- -e 's/\r//g;' \
- -e '/Adblock/d;' \
- -e '/.*\$.*/d;' \
- -e '/\n/d;' \
- -e '/.*\#.*/d;' \
- -e '/@@.*/d;' \
- -e '/^!.*/d;' \
- -e '/^\[.*\]$/d;' \
- -e 's#http://#||#g;' \
- -e 's/\/\//||/g' \
- -e 's,[+.?&/|],\\&,g;' \
- -e 's/\[/\\\[/g' \
- -e 's/\]/\\\]/g' \
- -e 's#*#.*#g;' \
- -e 's,\$.*$,,g;' \
- -e 's/\\|\\|\(.*\)\^\(.*\)/\.\1\\\/\2/g;' \
- -e 's/\\|\\|\(.*\)/\.\1/g;' \
- -e '/^\.\*$/d;' \
- -e '/^$/d;' \
- > "${TEMP_DIR}/${ZIEL_NAME}"
- # Ermittlung der Hash-Werte der neuen wie der bestehenden Datei:
- HASH_NEW=$(${HASH_FUNC} "${TEMP_DIR}/${ZIEL_NAME}" | awk '{print $1}')
- HASH_OLD=$(${HASH_FUNC} "${ZIEL_DIR}/${ZIEL_NAME}" | awk '{print $1}')
- # Die Datei muß nur ersetzt werden wenn sie sich von der bisherigen Datei unterscheidet, die hashes also unterschiedlich sind:
- if [ "${HASH_NEW}" != "${HASH_OLD}" ]; then
- cp "${TEMP_DIR}/${ZIEL_NAME}" "${ZIEL_DIR}/${ZIEL_NAME}"
- squidguard -C all
- fi
- # Die temporäre Datei kann nun gelöscht werden.
- rm "${TEMP_DIR}/${ZIEL_NAME}"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement