mirror of https://github.com/bol-van/zapret/
3 changed files with 209 additions and 1 deletions
@ -0,0 +1,119 @@ |
|||||
|
#!/bin/sh |
||||
|
|
||||
|
# automated script for easy installing zapret on debian or ubuntu based system |
||||
|
# system must use apt as package manager and systemd |
||||
|
|
||||
|
[ $(id -u) -ne "0" ] && { |
||||
|
echo root is required |
||||
|
exec sudo $0 |
||||
|
} |
||||
|
|
||||
|
SCRIPT=$(readlink -f $0) |
||||
|
EXEDIR=$(dirname $SCRIPT) |
||||
|
LSB_INSTALL=/usr/lib/lsb/install_initd |
||||
|
LSB_REMOVE=/usr/lib/lsb/remove_initd |
||||
|
INIT_SCRIPT_SRC=$EXEDIR/init.d/debian/zapret |
||||
|
INIT_SCRIPT=/etc/init.d/zapret |
||||
|
GET_IPLIST=$EXEDIR/ipset/get_antizapret.sh |
||||
|
GET_IPLIST_PREFIX=$EXEDIR/ipset/get_ |
||||
|
|
||||
|
echo \* checking system ... |
||||
|
|
||||
|
APTGET=$(which apt-get) |
||||
|
SYSTEMCTL=$(which systemctl) |
||||
|
[ ! -x "$APTGET" ] || [ ! -x "$SYSTEMCTL" ] && { |
||||
|
echo not debian-like system |
||||
|
exit 5 |
||||
|
} |
||||
|
|
||||
|
|
||||
|
echo \* installing prerequisites ... |
||||
|
|
||||
|
"$APTGET" update |
||||
|
"$APTGET" install -y --no-install-recommends ipset curl lsb-core dnsutils || { |
||||
|
echo could not install prerequisites |
||||
|
exit 6 |
||||
|
} |
||||
|
|
||||
|
[ ! -x "$LSB_INSTALL" ] || [ ! -x "$LSB_REMOVE" ] && { |
||||
|
echo lsb install scripts not found |
||||
|
exit 7 |
||||
|
} |
||||
|
|
||||
|
|
||||
|
echo \* installing binaries ... |
||||
|
|
||||
|
"$EXEDIR/install_bin.sh" |
||||
|
|
||||
|
|
||||
|
echo \* installing init script ... |
||||
|
|
||||
|
"$SYSTEMCTL" stop zapret 2>/dev/null |
||||
|
|
||||
|
script_mode=Y |
||||
|
[ -f "$INIT_SCRIPT" ] && |
||||
|
{ |
||||
|
cmp -s $INIT_SCRIPT $INIT_SCRIPT_SRC || |
||||
|
{ |
||||
|
echo $INIT_SCRIPT already exists and differs from $INIT_SCRIPT_SRC |
||||
|
echo Y = overwrite with new version |
||||
|
echo N = exit |
||||
|
echo L = leave current version and continue |
||||
|
read script_mode |
||||
|
case "${script_mode}" in |
||||
|
Y|y|L|l) |
||||
|
;; |
||||
|
*) |
||||
|
echo aborted |
||||
|
;; |
||||
|
esac |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
if [ "$script_mode" = "Y" ] || [ "$script_mode" = "y" ]; then |
||||
|
echo -n "copying : " |
||||
|
cp -vf $INIT_SCRIPT_SRC $INIT_SCRIPT |
||||
|
fi |
||||
|
|
||||
|
|
||||
|
echo \* registering init script ... |
||||
|
|
||||
|
"$LSB_REMOVE" $INIT_SCRIPT |
||||
|
"$LSB_INSTALL" $INIT_SCRIPT || { |
||||
|
echo could not register $INIT_SCRIPT with LSB |
||||
|
exit 20 |
||||
|
} |
||||
|
|
||||
|
|
||||
|
echo \* downloading blocked ip list ... |
||||
|
|
||||
|
"$GET_IPLIST" || { |
||||
|
echo could not download ip list |
||||
|
exit 25 |
||||
|
} |
||||
|
|
||||
|
|
||||
|
echo \* adding crontab entry ... |
||||
|
|
||||
|
CRONTMP=/tmp/cron.tmp |
||||
|
crontab -l >$CRONTMP |
||||
|
if grep -q "$GET_IPLIST_PREFIX" $CRONTMP; then |
||||
|
echo some entries already exist in crontab. check if this is corrent : |
||||
|
grep "$GET_IPLIST_PREFIX" $CRONTMP |
||||
|
else |
||||
|
echo "0 12 * * */2 $GET_IPLIST" >>$CRONTMP |
||||
|
crontab $CRONTMP |
||||
|
fi |
||||
|
|
||||
|
rm -f $CRONTMP |
||||
|
|
||||
|
|
||||
|
echo \* starting zapret service ... |
||||
|
|
||||
|
systemctl start zapret || { |
||||
|
echo could not start zapret service |
||||
|
exit 30 |
||||
|
} |
||||
|
|
||||
|
exit 0 |
||||
|
|
@ -0,0 +1,66 @@ |
|||||
|
#!/bin/sh |
||||
|
|
||||
|
# automated script for easy installing zapret on debian or ubuntu based system |
||||
|
# system must use apt as package manager and systemd |
||||
|
|
||||
|
[ $(id -u) -ne "0" ] && { |
||||
|
echo root is required |
||||
|
exec sudo $0 |
||||
|
} |
||||
|
|
||||
|
SCRIPT=$(readlink -f $0) |
||||
|
EXEDIR=$(dirname $SCRIPT) |
||||
|
LSB_INSTALL=/usr/lib/lsb/install_initd |
||||
|
LSB_REMOVE=/usr/lib/lsb/remove_initd |
||||
|
INIT_SCRIPT_SRC=$EXEDIR/init.d/debian/zapret |
||||
|
INIT_SCRIPT=/etc/init.d/zapret |
||||
|
GET_IPLIST_PREFIX=$EXEDIR/ipset/get_ |
||||
|
|
||||
|
echo \* checking system ... |
||||
|
|
||||
|
APTGET=$(which apt-get) |
||||
|
SYSTEMCTL=$(which systemctl) |
||||
|
[ ! -x "$APTGET" ] || [ ! -x "$SYSTEMCTL" ] && { |
||||
|
echo not debian-like system |
||||
|
exit 5 |
||||
|
} |
||||
|
|
||||
|
|
||||
|
echo \* stopping service and unregistering init script with LSB ... |
||||
|
|
||||
|
"$SYSTEMCTL" stop zapret |
||||
|
[ -f "$INIT_SCRIPT" ] && "$LSB_REMOVE" $INIT_SCRIPT |
||||
|
|
||||
|
echo \* removing init script ... |
||||
|
|
||||
|
script_mode=Y |
||||
|
[ -f "$INIT_SCRIPT" ] && |
||||
|
{ |
||||
|
cmp -s $INIT_SCRIPT $INIT_SCRIPT_SRC || |
||||
|
{ |
||||
|
echo $INIT_SCRIPT already exists and differs from $INIT_SCRIPT_SRC |
||||
|
echo Y = remove it |
||||
|
echo L = leave it |
||||
|
read script_mode |
||||
|
} |
||||
|
if [ "$script_mode" = "Y" ] || [ "$script_mode" = "y" ]; then |
||||
|
rm -vf $INIT_SCRIPT |
||||
|
fi |
||||
|
} |
||||
|
|
||||
|
|
||||
|
echo \* removing crontab entry ... |
||||
|
|
||||
|
CRONTMP=/tmp/cron.tmp |
||||
|
crontab -l >$CRONTMP |
||||
|
if grep -q "$GET_IPLIST_PREFIX" $CRONTMP; then |
||||
|
echo removing following entries from crontab : |
||||
|
grep "$GET_IPLIST_PREFIX" $CRONTMP |
||||
|
grep -v "$GET_IPLIST_PREFIX" $CRONTMP >$CRONTMP.2 |
||||
|
crontab $CRONTMP.2 |
||||
|
rm -f $CRONTMP 2 |
||||
|
fi |
||||
|
rm -f $CRONTMP |
||||
|
|
||||
|
exit 0 |
||||
|
|
Loading…
Reference in new issue