bootstrap.sh 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #!/bin/bash
  2. if [[ "${SKIP_CLAMD}" =~ ^([yY][eE][sS]|[yY])+$ ]]; then
  3. echo "SKIP_CLAMD=y, skipping ClamAV..."
  4. sleep 365d
  5. exit 0
  6. fi
  7. # Prepare log pipes
  8. mkdir -p /var/log/clamav
  9. touch /var/log/clamav/clamd.log /var/log/clamav/freshclam.log
  10. chown -R clamav:clamav /var/log/clamav/
  11. chown root:tty /dev/console
  12. chmod g+rw /dev/console
  13. # Prepare whitelist
  14. if [[ -s /etc/clamav/whitelist.ign2 ]]; then
  15. cp /etc/clamav/whitelist.ign2 /var/lib/clamav/whitelist.ign2
  16. chown clamav:clamav /var/lib/clamav/whitelist.ign2
  17. fi
  18. if [[ ! -f /var/lib/clamav/whitelist.ign2 ]]; then
  19. echo "Example-Signature.Ignore-1" > /var/lib/clamav/whitelist.ign2
  20. fi
  21. chown clamav:clamav /var/lib/clamav/whitelist.ign2
  22. dos2unix /var/lib/clamav/whitelist.ign2
  23. sed -i '/^\s*$/d' /var/lib/clamav/whitelist.ign2
  24. BACKGROUND_TASKS=()
  25. (
  26. while true; do
  27. sleep 1m
  28. freshclam
  29. sleep 1h
  30. done
  31. ) &
  32. BACKGROUND_TASKS+=($!)
  33. clamd &
  34. BACKGROUND_TASKS+=($!)
  35. while true; do
  36. for bg_task in ${BACKGROUND_TASKS[*]}; do
  37. if ! kill -0 ${bg_task} 1>&2; then
  38. echo "Worker ${bg_task} died, stopping container waiting for respawn..."
  39. kill -TERM 1
  40. fi
  41. sleep 10
  42. done
  43. done