generalize easy script for any systemd system

This commit is contained in:
bolvan 2019-05-04 14:51:47 +03:00
parent fbc4e6d6f4
commit 2e9a6cf502
3 changed files with 51 additions and 38 deletions

View File

@ -1,11 +1,15 @@
#!/bin/sh #!/bin/sh
# automated script for easy installing zapret on debian or ubuntu based system # automated script for easy installing zapret on systemd based system
# system must use apt as package manager and systemd # all required tools must be already present or system must use apt as package manager
# if its not apt based system then manually install ipset, curl, lsb-core
[ $(id -u) -ne "0" ] && { [ $(id -u) -ne "0" ] && {
echo root is required echo root is required
exec sudo $0 which sudo >/dev/null && exec sudo $0
which su >/dev/null && exec su -c $0
echo su or sudo not found
exit 2
} }
SCRIPT=$(readlink -f $0) SCRIPT=$(readlink -f $0)
@ -19,27 +23,34 @@ GET_IPLIST_PREFIX=$EXEDIR/ipset/get_
echo \* checking system ... echo \* checking system ...
APTGET=$(which apt-get)
SYSTEMCTL=$(which systemctl) SYSTEMCTL=$(which systemctl)
[ ! -x "$APTGET" ] || [ ! -x "$SYSTEMCTL" ] && { [ ! -x "$SYSTEMCTL" ] && {
echo not debian-like system echo not systemd based system
exit 5 exit 5
} }
echo \* checking prerequisites ...
if [ ! -x "$LSB_INSTALL" ] || [ ! -x "$LSB_REMOVE" ] || ! which ipset >/dev/null || ! which curl >/dev/null ; then
echo \* installing prerequisites ... echo \* installing prerequisites ...
APTGET=$(which apt-get)
[ ! -x "$APTGET" ] && {
echo not apt based system
exit 5
}
"$APTGET" update "$APTGET" update
"$APTGET" install -y --no-install-recommends ipset curl lsb-core dnsutils || { "$APTGET" install -y --no-install-recommends ipset curl lsb-core dnsutils || {
echo could not install prerequisites echo could not install prerequisites
exit 6 exit 6
} }
[ ! -x "$LSB_INSTALL" ] || [ ! -x "$LSB_REMOVE" ] && { [ ! -x "$LSB_INSTALL" ] || [ ! -x "$LSB_REMOVE" ] && {
echo lsb install scripts not found echo lsb install scripts not found
exit 7 exit 7
} }
else
echo everything is present
fi
echo \* installing binaries ... echo \* installing binaries ...
@ -65,7 +76,6 @@ script_mode=Y
;; ;;
*) *)
echo aborted echo aborted
exit 1
;; ;;
esac esac
} }

View File

@ -323,17 +323,26 @@ status, output messages : systemctl status zapret
# apt-get install git # apt-get install git
# cd /opt # cd /opt
# git clone https://github.com/bol-van/zapret # git clone https://github.com/bol-van/zapret
# zapret/install_debian_easy.sh # zapret/install_easy.sh
Надоело ? Надоело ?
# su # /opt/zapret/uninstall_easy.sh
# /opt/zapret/uninstall_debian_easy.sh
# rm -r /opt/zapret # rm -r /opt/zapret
Скрипты простой установки могут быть удобны и для нечайников для первоначальной установки, Скрипты простой установки могут быть удобны и для нечайников для первоначальной установки,
после которой можно поправить настройки вручную. Так устанавливать быстрее. после которой можно поправить настройки вручную. Так устанавливать быстрее.
Эти скрипты будут работать и на других системах на базе systemd при условии, что
уже есть следующие программы :
/usr/lib/lsb/install_initd
/usr/lib/lsb/remove_initd
ipset
curl
Их можно установить вручную при помощи менеджера пакетов вашей ОС.
Другие linux системы Другие linux системы
-------------------- --------------------

View File

@ -1,11 +1,13 @@
#!/bin/sh #!/bin/sh
# automated script for easy installing zapret on debian or ubuntu based system # automated script for easy uninstalling zapret on systemd based system
# system must use apt as package manager and systemd
[ $(id -u) -ne "0" ] && { [ $(id -u) -ne "0" ] && {
echo root is required echo root is required
exec sudo $0 which sudo >/dev/null && exec sudo $0
which su >/dev/null && exec su -c $0
echo su or sudo not found
exit 2
} }
SCRIPT=$(readlink -f $0) SCRIPT=$(readlink -f $0)
@ -18,17 +20,14 @@ GET_IPLIST_PREFIX=$EXEDIR/ipset/get_
echo \* checking system ... echo \* checking system ...
APTGET=$(which apt-get)
SYSTEMCTL=$(which systemctl) SYSTEMCTL=$(which systemctl)
[ ! -x "$APTGET" ] || [ ! -x "$SYSTEMCTL" ] && { [ ! -x "$SYSTEMCTL" ] && {
echo not debian-like system echo not systemd based system
exit 5 exit 5
} }
echo \* stopping service and unregistering init script with LSB ... echo \* stopping service and unregistering init script with LSB ...
"$SYSTEMCTL" disable zapret
"$SYSTEMCTL" stop zapret "$SYSTEMCTL" stop zapret
[ -f "$INIT_SCRIPT" ] && "$LSB_REMOVE" $INIT_SCRIPT [ -f "$INIT_SCRIPT" ] && "$LSB_REMOVE" $INIT_SCRIPT
@ -49,7 +48,6 @@ script_mode=Y
fi fi
} }
echo \* removing crontab entry ... echo \* removing crontab entry ...
CRONTMP=/tmp/cron.tmp CRONTMP=/tmp/cron.tmp
@ -63,8 +61,4 @@ if grep -q "$GET_IPLIST_PREFIX" $CRONTMP; then
fi fi
rm -f $CRONTMP rm -f $CRONTMP
echo \* systemd cleanup ...
"$SYSTEMCTL" daemon-reload
exit 0 exit 0