From 775530e28eca90b89e8cea07003449bda7b89d95 Mon Sep 17 00:00:00 2001 From: z3APA3A <3APA3A@3proxy.ru> Date: Wed, 25 Apr 2018 02:40:11 +0300 Subject: [PATCH] Correct make install and installation scripts for Linux --- Makefile.Linux | 54 +++++++++++++++++---- scripts/3proxy-linux-install.sh | 5 ++ scripts/3proxy.cfg | 24 ++++----- scripts/add3proxyuser.sh | 12 +++-- scripts/{rc.d/proxy.sh => init.d/3proxy.sh} | 26 ++++++---- scripts/install-unix.sh | 4 +- 6 files changed, 87 insertions(+), 38 deletions(-) rename scripts/{rc.d/proxy.sh => init.d/3proxy.sh} (50%) diff --git a/Makefile.Linux b/Makefile.Linux index e4a0a0c..c3ac0de 100644 --- a/Makefile.Linux +++ b/Makefile.Linux @@ -42,9 +42,9 @@ allplugins: @list='$(PLUGINS)'; for p in $$list; do cp Makefile Makefile.var plugins/$$p; cd plugins/$$p ; make ; cd ../.. ; done DESTDIR = -prefix = /usr/local +prefix = exec_prefix = $(prefix) -man_prefix = $(prefix)/share +man_prefix = /usr/share INSTALL = /usr/bin/install INSTALL_BIN = $(INSTALL) -m 755 @@ -61,15 +61,21 @@ INSTALL_OBJS = bin/3proxy \ INSTALL_CFG_OBJS = scripts/3proxy.cfg \ scripts/add3proxyuser.sh -INSTALL_CFG_DEST = config +INSTALL_CFG_DEST = -INSTALL_CFG_OBJS2 = passwd counters bandlimiters +INSTALL_CFG_OBJS2 = counters bandlimiters + +INSTALL_INITD_SCRIPT = scripts/init.d/3proxy.sh MANDIR1 = $(DESTDIR)$(man_prefix)/man/man1 MANDIR3 = $(DESTDIR)$(man_prefix)/man/man3 MANDIR8 = $(DESTDIR)$(man_prefix)/man/man8 BINDIR = $(DESTDIR)$(exec_prefix)/bin ETCDIR = $(DESTDIR)$(prefix)/etc/3proxy +INITDDIR = $(DESTDIR)$(prefix)/etc/init.d +RUNDIR = $(DESTDIR)$(prefix)/var/run/3proxy +LOGDIR = $(DESTDIR)$(prefix)/var/log/3proxy +INSTALL_CFG_DEST = $(ETCDIR) install-bin: $(INSTALL_BIN) -d $(BINDIR) @@ -79,13 +85,11 @@ install-etc-dir: $(INSTALL_BIN) -d $(ETCDIR) install-etc-default-config: - if [ -f $(ETCDIR)/$(INSTALL_CFG_DEST) ]; then \ - : ; \ - else \ - $(INSTALL_DATA) $(INSTALL_CFG_OBJS) $(ETCDIR)/$(INSTALL_CFG_DEST) \ + if [ ! -f $(ETCDIR)/$(INSTALL_CFG_DEST) ]; then \ + $(INSTALL_BIN) $(INSTALL_CFG_OBJS) $(INSTALL_CFG_DEST); \ fi -install-etc: install-etc-dir +install-etc: install-etc-dir install-etc-default-config for file in $(INSTALL_CFG_OBJS2); \ do \ touch $(ETCDIR)/$$file; chmod 0600 $(ETCDIR)/$$file; \ @@ -97,5 +101,35 @@ install-man: $(INSTALL_DATA) man/*.3 $(MANDIR3) $(INSTALL_DATA) man/*.8 $(MANDIR8) -install: install-bin install-etc install-man +install-init: + if [ -f $(INITDIR) ]; then \ + $(INSTALL_BIN) $(INSTALL_INITD_SCRIPT) $(INITDDIR)/3proxy; \ + fi + if [ -f /usr/sbin/update-rc.d ]; then \ + /usr/sbin/update-rc.d 3proxy defaults; \ + /usr/sbin/update-rc.d 3proxy enable; \ + fi +install-run: + $(INSTALL_BIN) -d $(RUNDIR) + +install-log: + $(INSTALL_BIN) -d $(LOGDIR) + +install: install-bin install-etc install-man install-log install-run install-init + @if [ ! -f $(INSTALL_CFG_DEST)/passwd ]; then \ + touch $(ETCDIR)/passwd; chmod 0600 $(ETCDIR)/passwd; \ + stty -echo ;\ + echo "" ;\ + read -p "Proxy admin password: " password && $(INSTALL_CFG_DEST)/add3proxyuser.sh admin $password ;\ + stty echo ;\ + fi + @echo "" + @echo 3proxy installed. + @echo use + @echo " "$(INSTALL_CFG_DEST)/add3proxyuser.sh + @echo to add users + @if [ -f /usr/sbin/service ]; then \ + /usr/sbin/service 3proxy stop ;\ + /usr/sbin/service 3proxy start ;\ + fi \ No newline at end of file diff --git a/scripts/3proxy-linux-install.sh b/scripts/3proxy-linux-install.sh index 3871655..d352852 100644 --- a/scripts/3proxy-linux-install.sh +++ b/scripts/3proxy-linux-install.sh @@ -225,6 +225,11 @@ BinInstall() local binlist local liblist + if [! -d bin] + then + mkdir bin + fi + cd bin binlist=`ls -l --time-style="+%d.%m.%Y %H:%m" | awk '$1 ~ /x$/ && $1 ~ /^[^d]/ && $8 !~ /\.so$/ { print $8 }'` diff --git a/scripts/3proxy.cfg b/scripts/3proxy.cfg index 77f811e..3f3f251 100644 --- a/scripts/3proxy.cfg +++ b/scripts/3proxy.cfg @@ -1,23 +1,23 @@ -#!/usr/local/etc/3proxy/bin/3proxy +#!/bin/3proxy daemon -pidfile /usr/local/etc/3proxy/3proxy.pid +pidfile /var/run/3proxy/3proxy.pid nscache 65536 nserver 127.0.0.1 -config /usr/local/etc/3proxy/3proxy.cfg -monitor /usr/local/etc/3proxy/3proxy.cfg -monitor /usr/local/etc/3proxy/counters -monitor /usr/local/etc/3proxy/passwd -monitor /usr/local/etc/3proxy/bandlimiters +config /etc/3proxy/3proxy.cfg +monitor /etc/3proxy/3proxy.cfg +monitor /etc/3proxy/counters +monitor /etc/3proxy/passwd +monitor /etc/3proxy/bandlimiters -log /var/log/3proxy/log D +log /var/log/3proxy/3proxy-%y%m%d.log D rotate 60 -counter /usr/local/etc/3proxy/3proxy.3cf +counter /var/run/3proxy/3proxy.3cf -users $/usr/local/etc/3proxy/passwd +users $/etc/3proxy/passwd -include /usr/local/etc/3proxy/counters -include /usr/local/etc/3proxy/bandlimiters +include /etc/3proxy/counters +include /etc/3proxy/bandlimiters auth strong deny * * 127.0.0.1 diff --git a/scripts/add3proxyuser.sh b/scripts/add3proxyuser.sh index d77b750..8b3ff35 100644 --- a/scripts/add3proxyuser.sh +++ b/scripts/add3proxyuser.sh @@ -1,10 +1,14 @@ #!/bin/sh if [ $4 ]; then - echo $1:`/usr/local/etc/3proxy/bin/mycrypt $$ $2` >> /usr/local/etc/3proxy/passwd - echo countin \"`wc -l /usr/local/etc/3proxy/counters|awk '{print $1}'`/$1\" D $3 $1 >> /usr/local/etc/3proxy/counters - echo bandlimin $4 $1 >> /usr/local/etc/3proxy/bandlimiters + echo bandlimin $4 $1 >> /etc/3proxy/bandlimiters +fi +if [ $3 ]; then + echo countin \"`wc -l /etc/3proxy/counters|awk '{print $1}'`/$1\" D $3 $1 >> /etc/3proxy/counters +fi +if [ $2 ]; then + echo $1:`/bin/mycrypt $$ $2` >> /etc/3proxy/passwd else - echo usage: $0 username password day_limit bandwidth + echo usage: $0 username password [day_limit] [bandwidth] echo " "day_limit - traffic limit in MB per day echo " "bandwidth - bandwith in bits per second 1048576 = 1Mbps fi diff --git a/scripts/rc.d/proxy.sh b/scripts/init.d/3proxy.sh similarity index 50% rename from scripts/rc.d/proxy.sh rename to scripts/init.d/3proxy.sh index af51475..51ea113 100644 --- a/scripts/rc.d/proxy.sh +++ b/scripts/init.d/3proxy.sh @@ -1,17 +1,23 @@ #!/bin/sh -# +### BEGIN INIT INFO +# Provides: 3proxy +# Required-Start: +# Required-Stop: +# Should-Start: +# Should-Stop: +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: Start/stop 3proxy +# Description: Start/stop 3proxy, tiny proxy server +### END INIT INFO # chkconfig: 2345 20 80 # description: 3proxy tiny proxy server -# -# -# -# case "$1" in start) echo Starting 3Proxy - /usr/local/etc/3proxy/bin/3proxy /usr/local/etc/3proxy/3proxy.cfg + /bin/3proxy /etc/3proxy/3proxy.cfg RETVAL=$? echo @@ -20,8 +26,8 @@ case "$1" in stop) echo Stopping 3Proxy - if [ -f /usr/local/etc/3proxy/3proxy.pid ]; then - /bin/kill `cat /usr/local/etc/3proxy/3proxy.pid` + if [ -f /var/run/3proxy/3proxy.pid ]; then + /bin/kill `cat /var/run/3proxy/3proxy.pid` else /usr/bin/killall 3proxy fi @@ -33,8 +39,8 @@ case "$1" in restart|reload) echo Reloading 3Proxy - if [ -f /usr/local/etc/3proxy/3proxy.pid ]; then - /bin/kill -s USR1 `cat /usr/local/etc/3proxy/3proxy.pid` + if [ -f /var/run/3proxy/3proxy.pid ]; then + /bin/kill -s USR1 `cat /var/run/3proxy/3proxy.pid` else /usr/bin/killall -s USR1 3proxy fi diff --git a/scripts/install-unix.sh b/scripts/install-unix.sh index 11a4788..a54c91e 100644 --- a/scripts/install-unix.sh +++ b/scripts/install-unix.sh @@ -3,8 +3,8 @@ cd .. cp Makefile.unix Makefile make if [ ! -d /usr/local/etc/3proxy/bin ]; then mkdir -p /usr/local/etc/3proxy/bin/; fi -install bin/3proxy /usr/local/etc/3proxy/bin/3proxy -install bin/mycrypt /usr/local/etc/3proxy/bin/mycrypt +install bin/3proxy /usr/local/bin/3proxy +install bin/mycrypt /usr/local/bin/mycrypt install scripts/rc.d/proxy.sh /usr/local/etc/rc.d/proxy.sh install scripts/add3proxyuser.sh /usr/local/etc/3proxy/bin/ if [ -s /usr/local/etc/3proxy/3proxy.cfg ]; then