Advertisement
Guest User

Untitled

a guest
Nov 19th, 2013
506
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.51 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. # Variablen zur einfacheren Anpassung
  4. LIST_URL="https://easylist-downloads.adblockplus.org/easylist.txt"
  5. ZIEL_DIR="/var/lib/squidguard/db/adv"
  6. ZIEL_NAME="expressions"
  7. TEMP_DIR="/tmp"
  8.  
  9. # Die Hashfunktion
  10. HASH_FUNC=$(which sha256sum)
  11. # Alternativ: HASH_FUNC=$(which md5sum)
  12. # Aber sha256 ist leicht schneller als der md5.
  13.  
  14. # Das Folgende zieht die Datei aus dem Internet und wandelt sie in einem Schritt um:
  15. # Wir speichern sie zunächst in einem temporären Verzeichnis.
  16. curl "${LIST_URL}" | sed \
  17.      -e 's/\r//g;' \
  18.      -e '/Adblock/d;' \
  19.      -e '/.*\$.*/d;' \
  20.      -e '/\n/d;' \
  21.      -e '/.*\#.*/d;' \
  22.      -e '/@@.*/d;' \
  23.      -e '/^!.*/d;' \
  24.      -e '/^\[.*\]$/d;' \
  25.      -e 's#http://#||#g;' \
  26.      -e 's/\/\//||/g' \
  27.      -e 's,[+.?&/|],\\&,g;' \
  28.      -e 's/\[/\\\[/g' \
  29.      -e 's/\]/\\\]/g' \
  30.      -e 's#*#.*#g;' \
  31.      -e 's,\$.*$,,g;' \
  32.      -e 's/\\|\\|\(.*\)\^\(.*\)/\.\1\\\/\2/g;' \
  33.      -e 's/\\|\\|\(.*\)/\.\1/g;' \
  34.      -e '/^\.\*$/d;' \
  35.      -e '/^$/d;' \
  36.     > "${TEMP_DIR}/${ZIEL_NAME}"
  37.  
  38. # Ermittlung der Hash-Werte der neuen wie der bestehenden Datei:
  39. HASH_NEW=$(${HASH_FUNC} "${TEMP_DIR}/${ZIEL_NAME}" | awk '{print $1}')
  40. HASH_OLD=$(${HASH_FUNC} "${ZIEL_DIR}/${ZIEL_NAME}" | awk '{print $1}')
  41.  
  42. # Die Datei muß nur ersetzt werden wenn sie sich von der bisherigen Datei unterscheidet, die hashes also unterschiedlich sind:
  43. if [ "${HASH_NEW}" != "${HASH_OLD}" ]; then
  44.     cp "${TEMP_DIR}/${ZIEL_NAME}" "${ZIEL_DIR}/${ZIEL_NAME}"
  45.     squidguard -C all
  46. fi
  47. # Die temporäre Datei kann nun gelöscht werden.
  48. rm "${TEMP_DIR}/${ZIEL_NAME}"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement