-
-
Notifications
You must be signed in to change notification settings - Fork 490
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
adds compatibility for reloading Nginx on: * Arch Linux (does not have a 'service' command) * OpenRC (older versions do not have /sbin/service) tested on Debian / Arch / Centos / Alpine Linux
- Loading branch information
1 parent
05a7835
commit 41797e4
Showing
1 changed file
with
40 additions
and
11 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,26 +1,55 @@ | ||
#!/bin/bash | ||
# Bash Script for Auto Updating the Nginx Bad Bot Blocker | ||
#!/bin/sh | ||
|
||
# Shell Script for Auto Updating the Nginx Bad Bot Blocker | ||
# Copyright - https://github.com/mitchellkrogza | ||
# Project Url: https://github.com/mitchellkrogza/nginx-ultimate-bad-bot-blocker | ||
# Alpine / Arch Linux / Debian / Centos script compatibility by Stuart Cardall | ||
|
||
# MAKE SURE you have your whitelist-ips.conf and whitelist-domains.conf files in /etc/nginx/bots.d | ||
# A major change to using include files was introduced in | ||
# https://github.com/mitchellkrogza/nginx-ultimate-bad-bot-blocker/commit/c7acdfa8228d2f19a83e5bb14d54355db86fcebf | ||
|
||
# PLEASE READ UPDATED CONFIGURATION INSTRUCTIONS BEFORE USING THIS | ||
|
||
# Save this file as /bin/updatenginxblocker.sh | ||
# Make it Executable chmod +x /bin/updatenginxblocker.sh | ||
# Save this file as /usr/sbin/updatenginxblocker | ||
# Make it Executable chmod 700 /usr/sbin/updatenginxblocker | ||
|
||
# RUN THE UPDATE | ||
# Here our script runs, pulls the latest update, reloads nginx and emails you a notification | ||
# Place your own valid email address where it says "[email protected]" | ||
|
||
cd /etc/nginx/conf.d | ||
sudo wget https://raw.githubusercontent.com/mitchellkrogza/nginx-ultimate-bad-bot-blocker/master/conf.d/globalblacklist.conf -O globalblacklist.conf | ||
sudo service nginx reload | mail -s "Nginx Bad Bot Blocker Updated" [email protected] | ||
exit 0 | ||
|
||
email="[email protected]" | ||
conf_dir=/etc/nginx/conf.d | ||
url=https://raw.githubusercontent.com/mitchellkrogza/nginx-ultimate-bad-bot-blocker/master/conf.d/globalblacklist.conf | ||
|
||
service_cmd() { | ||
# arch linux does not have a 'service' command | ||
local svc= svc_list="service systemctl rc-service" | ||
|
||
for svc in $svc_list; do | ||
svc=$(which $svc 2>/dev/null) | ||
if [ -n "$svc" ]; then | ||
echo $svc | ||
exit 0 | ||
fi | ||
done | ||
} | ||
|
||
# require root | ||
if [ "$(id -u)" != "0" ]; then | ||
echo "This script must be run as root" 1>&2 | ||
exit 1 | ||
fi | ||
|
||
# default to service (centos does not have 'which' by default) | ||
service=${service_cmd:-"service"} | ||
|
||
# download update & email notification | ||
mkdir -p $conf_dir | ||
wget $url -O $conf_dir/globalblacklist.conf | ||
$service nginx reload | mail -s "Nginx Bad Bot Blocker Updated" $email | ||
|
||
exit $? | ||
|
||
# Add this as a cron to run daily / weekly as you like | ||
# Here's a sample CRON entry to update every day at 10pm | ||
# 00 22 * * * /bin/updatenginxblocker.sh | ||
# 00 22 * * * /usr/sbin/updatenginxblocker |