#!/bin/sh # PKCS if [ -f /etc/openvpn/ssl/vars ]; then . /etc/openvpn/ssl/vars >/dev/null else echo " /etc/openvpn/ssl/vars " exit 1 fi MAILTO="root" SKIP=$((`cat $0 | awk '/#!\/bin\/sh/,/^#END/{print}'|wc -l`+1)) Dialog=${Dialog=dialog} CWD=$(pwd) cd $KEY_DIR Files=`ls -1 *.p12` cd $CWD Spisok="" for i in $Files; do Spisok="$Spisok $i -"`basename $i .p12` done Choice=`$Dialog --stdout --clear --menu " " 20 71 14 $Spisok` retval=$? User=`basename $Choice .p12` case $retval in 0) TEMP="/tmp/$User.vpn" if [ -e $TEMP ]; then rm -rf $TEMP fi mkdir -p $TEMP 2>/dev/null mkdir -p $TEMP/yyy 2>/dev/null config="$TEMP/YYY-$User.ovpn" cat << EOF_CONFIG > $config client remote xxxxx port 1194 proto udp dev tun ns-cert-type server tls-client reneg-sec 60 mtu-test cipher AES-256-CBC comp-lzo persist-key persist-tun keysize 256 nobind explicit-exit-notify 2 pkcs12 yyy/$Choice EOF_CONFIG cp $KEY_DIR/$Choice $TEMP/yyy 2>/dev/null tail -n +$SKIP $0 | gzip -cd | tar xvf - -C $TEMP >/dev/null cd $TEMP tar zcvf ${User}_YYY.tgz `basename $config` `basename $TEMP/Readme-OpenVPN.doc` yyy >/dev/null . . . . exit 0 #END
SKIP=$((`cat $0 | awk '/#!\/bin\/sh/,/^#END/{print}'|wc -l`+1))
SKIP=$((`awk '/#!\/bin\/sh/,/^#END/{print}' $0|wc -l`+1))
SKIP=$(awk 'BEGIN{comp_str=0} /#!\/bin\/sh/,/^#END/{comp_str++} END{print ++comp_str}' $0)
SKIP=$(awk '/^#END/{print ++NR}' $0)
SKIP=$((`sed -n '/^#END/{=}' $0` + 1))
SKIP=$((`sed -n '/^#END/{=;q;}' $0` + 1))
SKIP=$(awk '/^#END/{print ++NR; exit;}' $0)
SKIP=$(grep -A1 -n "^#END" $0 | tail -1 | cut -f 1 -d -)
Source: https://habr.com/ru/post/152183/
All Articles