Line 1... |
Line 1... |
1 |
#!/bin/sh
|
1 |
#!/bin/sh
|
2 |
# $Id: alcasar.sh 459 2011-01-17 18:53:40Z franck $
|
2 |
# $Id: alcasar.sh 460 2011-01-17 22:22:16Z richard $
|
3 |
|
3 |
|
4 |
# alcasar.sh
|
4 |
# alcasar.sh
|
5 |
# by Franck BOUIJOUX, Pascal LEVANT and Richard REY
|
5 |
# by Franck BOUIJOUX, Pascal LEVANT and Richard REY
|
6 |
# This script is distributed under the Gnu General Public License (GPL)
|
6 |
# This script is distributed under the Gnu General Public License (GPL)
|
7 |
|
7 |
|
Line 34... |
Line 34... |
34 |
# dnsmasq : Configuration du serveur de noms et du serveur dhcp de secours
|
34 |
# dnsmasq : Configuration du serveur de noms et du serveur dhcp de secours
|
35 |
# BL : Configuration de la BlackList
|
35 |
# BL : Configuration de la BlackList
|
36 |
# cron : Mise en place des exports de logs (+ chiffrement)
|
36 |
# cron : Mise en place des exports de logs (+ chiffrement)
|
37 |
# post_install : Finalisation environnement ( CA, bannières, rotatoin logs, ...)
|
37 |
# post_install : Finalisation environnement ( CA, bannières, rotatoin logs, ...)
|
38 |
|
38 |
|
39 |
|
- |
|
40 |
VERSION=`cat VERSION`
|
39 |
VERSION=`cat VERSION`
|
41 |
MDV_NEEDED="2010.1"
|
- |
|
42 |
DATE=`date '+%d %B %Y - %Hh%M'`
|
40 |
DATE=`date '+%d %B %Y - %Hh%M'`
|
43 |
DATE_SHORT=`date '+%d/%m/%Y'`
|
41 |
DATE_SHORT=`date '+%d/%m/%Y'`
|
44 |
# ******* Files parameters - paramètres fichiers *********
|
42 |
# ******* Files parameters - paramètres fichiers *********
|
45 |
DIR_INSTALL=`pwd` # répertoire d'installation
|
43 |
DIR_INSTALL=`pwd` # répertoire d'installation
|
46 |
DIR_CONF="$DIR_INSTALL/conf" # répertoire d'installation contenant les fichiers de configuration
|
44 |
DIR_CONF="$DIR_INSTALL/conf" # répertoire d'installation contenant les fichiers de configuration
|
Line 71... |
Line 69... |
71 |
|
69 |
|
72 |
header_install ()
|
70 |
header_install ()
|
73 |
{
|
71 |
{
|
74 |
clear
|
72 |
clear
|
75 |
echo "-----------------------------------------------------------------------------"
|
73 |
echo "-----------------------------------------------------------------------------"
|
76 |
echo " Installation d'ALCASAR V$VERSION"
|
74 |
echo " ALCASAR V$VERSION Installation"
|
77 |
echo "Application Libre pour le Contrôle d'Accès Sécurisé et Authentifié au Réseau"
|
75 |
echo "Application Libre pour le Contrôle d'Accès Sécurisé et Authentifié au Réseau"
|
78 |
echo "-----------------------------------------------------------------------------"
|
76 |
echo "-----------------------------------------------------------------------------"
|
79 |
} # End of header_install ()
|
77 |
} # End of header_install ()
|
80 |
|
78 |
|
81 |
##################################################################
|
79 |
##################################################################
|
82 |
## Fonction TESTING ##
|
80 |
## Fonction TESTING ##
|
83 |
## - Test de la connectivité Internet ##
|
81 |
## - Test de la connectivité Internet ##
|
84 |
##################################################################
|
82 |
##################################################################
|
85 |
testing ()
|
83 |
testing ()
|
86 |
{
|
84 |
{
|
87 |
echo -n "Tests des paramètres réseau : "
|
85 |
echo "Tests des paramètres réseau."
|
- |
|
86 |
echo -n "Network parameters tests : "
|
88 |
# On teste l'état du lien des interfaces réseau
|
87 |
# We test the Ethernet links state
|
89 |
for i in $EXTIF $INTIF
|
88 |
for i in $EXTIF $INTIF
|
90 |
do
|
89 |
do
|
91 |
/sbin/ip link set $i up
|
90 |
/sbin/ip link set $i up
|
92 |
sleep 3
|
91 |
sleep 3
|
93 |
if [ "`/usr/sbin/ethtool $i|grep Link|cut -d' ' -f3`" != "yes" ]
|
92 |
if [ "`/usr/sbin/ethtool $i|grep Link|cut -d' ' -f3`" != "yes" ]
|
94 |
then
|
93 |
then
|
95 |
echo "Échec"
|
94 |
echo "Échec"
|
96 |
echo "Le lien réseau de la carte $i n'est pas actif."
|
95 |
echo "Le lien réseau de la carte $i n'est pas actif."
|
97 |
echo "Réglez ce problème avant de poursuivre l'installation d'ALCASAR."
|
96 |
echo "Réglez ce problème puis relancez ce script."
|
- |
|
97 |
echo "Failed"
|
- |
|
98 |
echo "The link state of $i interface id down."
|
- |
|
99 |
echo "Resolv this problem, then restart this script."
|
98 |
exit 0
|
100 |
exit 0
|
99 |
fi
|
101 |
fi
|
100 |
echo -n "."
|
102 |
echo -n "."
|
101 |
done
|
103 |
done
|
102 |
# On teste la présence d'un routeur par défaut (Box FAI)
|
104 |
# On teste la présence d'un routeur par défaut (Box FAI)
|
103 |
if [ `/sbin/route -n|grep -c ^0.0.0.0` -ne "1" ] ; then
|
105 |
if [ `/sbin/route -n|grep -c ^0.0.0.0` -ne "1" ] ; then
|
104 |
echo "Échec"
|
106 |
echo "Échec"
|
105 |
echo "Vous n'avez pas configuré l'accès à Internet ou le câble réseau n'est pas sur la bonne carte."
|
107 |
echo "Vous n'avez pas configuré l'accès à Internet ou le câble réseau n'est pas sur la bonne carte."
|
106 |
echo "Réglez ce problème avant de poursuivre."
|
108 |
echo "Réglez ce problème puis relancez ce script."
|
- |
|
109 |
echo "Failed"
|
- |
|
110 |
echo "You haven't configured Internet access or Internet link is on the wrong Ethernet card"
|
- |
|
111 |
echo "Resolv this problem, then restart this script."
|
107 |
exit 0
|
112 |
exit 0
|
108 |
fi
|
113 |
fi
|
109 |
echo -n "."
|
114 |
echo -n "."
|
110 |
# On traite le cas où l'interface configurée lors de l'installation est "eth1" au lieu de "eth0" (mystère sur certaines version de BIOS et de VirtualBox)
|
115 |
# On traite le cas où l'interface configurée lors de l'installation est "eth1" au lieu de "eth0" (mystère sur certaines version de BIOS et de VirtualBox)
|
111 |
if [ `/sbin/route -n|grep ^0.0.0.0|grep -c eth1` -eq "1" ] ; then
|
116 |
if [ `/sbin/route -n|grep ^0.0.0.0|grep -c eth1` -eq "1" ] ; then
|
112 |
echo "Échec. La configuration des cartes réseau va être corrigée."
|
117 |
echo "La configuration des cartes réseau va être corrigée."
|
- |
|
118 |
echo "The Ethernet card configuration will be corrected."
|
113 |
/etc/init.d/network stop
|
119 |
/etc/init.d/network stop
|
114 |
mv -f /etc/sysconfig/network-scripts/ifcfg-eth1 /etc/sysconfig/network-scripts/ifcfg-eth0
|
120 |
mv -f /etc/sysconfig/network-scripts/ifcfg-eth1 /etc/sysconfig/network-scripts/ifcfg-eth0
|
115 |
$SED "s?eth1?eth0?g" /etc/sysconfig/network-scripts/ifcfg-eth0
|
121 |
$SED "s?eth1?eth0?g" /etc/sysconfig/network-scripts/ifcfg-eth0
|
116 |
/etc/init.d/network start
|
122 |
/etc/init.d/network start
|
117 |
echo 0 > /proc/sys/net/ipv4/conf/all/log_martians
|
123 |
echo 0 > /proc/sys/net/ipv4/conf/all/log_martians
|
118 |
sleep 2
|
124 |
sleep 2
|
119 |
echo "Configuration corrigée"
|
125 |
echo "Configuration corrigée"
|
- |
|
126 |
echo "Configuration updated"
|
120 |
sleep 2
|
127 |
sleep 2
|
121 |
echo "Vous pouvez relancer ce script (sh alcasar.sh --install)."
|
128 |
echo "Vous pouvez relancer ce script."
|
- |
|
129 |
echo "You can restart this script."
|
122 |
exit 0
|
130 |
exit 0
|
123 |
fi
|
131 |
fi
|
124 |
echo -n "."
|
132 |
echo -n "."
|
125 |
# On test le lien vers le routeur par default
|
133 |
# On test le lien vers le routeur par default
|
126 |
IP_GW=`ip route list|grep ^default|cut -d" " -f3`
|
134 |
IP_GW=`ip route list|grep ^default|cut -d" " -f3`
|
127 |
arp_reply=`/usr/sbin/arping -b -I$EXTIF -c1 -w2 $IP_GW|grep response|cut -d" " -f2`
|
135 |
arp_reply=`/usr/sbin/arping -b -I$EXTIF -c1 -w2 $IP_GW|grep response|cut -d" " -f2`
|
128 |
if [[ $(expr $arp_reply) -eq 0 ]]
|
136 |
if [[ $(expr $arp_reply) -eq 0 ]]
|
129 |
then
|
137 |
then
|
130 |
echo "Échec"
|
138 |
echo "Échec"
|
131 |
echo "Le routeur de site ou la Box Internet ($IP_GW) ne répond pas."
|
139 |
echo "Le routeur de site ou la Box Internet ($IP_GW) ne répond pas."
|
132 |
echo "Réglez ce problème avant de poursuivre."
|
140 |
echo "Réglez ce problème puis relancez ce script."
|
- |
|
141 |
echo "Failed"
|
- |
|
142 |
echo "The Internet gateway doesn't answered"
|
- |
|
143 |
echo "Resolv this problem, then restart this script."
|
133 |
exit 0
|
144 |
exit 0
|
134 |
fi
|
145 |
fi
|
135 |
echo -n "."
|
146 |
echo -n "."
|
136 |
# On teste la connectivité Internet
|
147 |
# On teste la connectivité Internet
|
137 |
rm -rf /tmp/con_ok.html
|
148 |
rm -rf /tmp/con_ok.html
|
138 |
/usr/bin/curl www.google.fr -s -o /tmp/con_ok.html
|
149 |
/usr/bin/curl www.google.fr -s -o /tmp/con_ok.html
|
139 |
if [ ! -e /tmp/con_ok.html ]
|
150 |
if [ ! -e /tmp/con_ok.html ]
|
140 |
then
|
151 |
then
|
141 |
echo "La tentative de connexion vers Internet a échoué (google.fr)."
|
152 |
echo "La tentative de connexion vers Internet a échoué (google.fr)."
|
142 |
echo "Vérifiez que la carte $EXTIF est bien connectée au routeur du FAI."
|
153 |
echo "Vérifiez que la carte $EXTIF est bien connectée au routeur du FAI."
|
143 |
echo "Vérifiez la validité des adresses DNS."
|
154 |
echo "Vérifiez la validité des adresses IP des DNS."
|
- |
|
155 |
echo "The Internet connection try failed (google.fr)."
|
- |
|
156 |
echo "Please, verify that the $EXTIF card is connected with the Internet gateway."
|
- |
|
157 |
echo "Verify the DNS IP addresses"
|
144 |
exit 0
|
158 |
exit 0
|
145 |
fi
|
159 |
fi
|
146 |
rm -rf /tmp/con_ok.html
|
160 |
rm -rf /tmp/con_ok.html
|
147 |
echo ". : ok"
|
161 |
echo ". : ok"
|
148 |
} # end of testing
|
162 |
} # end of testing
|
Line 161... |
Line 175... |
161 |
# On affecte le nom d'organisme
|
175 |
# On affecte le nom d'organisme
|
162 |
ORGANISME=!
|
176 |
ORGANISME=!
|
163 |
PTN='^[a-zA-Z0-9-]*$'
|
177 |
PTN='^[a-zA-Z0-9-]*$'
|
164 |
until [[ $(expr $ORGANISME : $PTN) -gt 0 ]]
|
178 |
until [[ $(expr $ORGANISME : $PTN) -gt 0 ]]
|
165 |
do
|
179 |
do
|
166 |
echo -n "Entrez le nom de votre organisme : "
|
180 |
echo "Entrez le nom de votre organisme : "
|
- |
|
181 |
echo -n "Enter the name of your organisation : "
|
167 |
read ORGANISME
|
182 |
read ORGANISME
|
168 |
if [ "$ORGANISME" = "" ]
|
183 |
if [ "$ORGANISME" = "" ]
|
169 |
then
|
184 |
then
|
170 |
ORGANISME=!
|
185 |
ORGANISME=!
|
171 |
fi
|
186 |
fi
|
172 |
done
|
187 |
done
|
173 |
fi
|
188 |
fi
|
174 |
|
- |
|
175 |
# On configure et récupère l'architecture de la distrib installée
|
189 |
# System update
|
176 |
$DIR_SCRIPTS/alcasar-urpmi.sh
|
190 |
$DIR_SCRIPTS/alcasar-urpmi.sh
|
177 |
|
- |
|
178 |
# On teste l'installation des paquetages complémentaires
|
191 |
# Download of ALCASAR specifics RPM in cache (and test)
|
179 |
echo "Récupération des paquetages complémentaires. Veuillez patienter ..."
|
192 |
echo "Récupération des paquetages complémentaires. Veuillez patienter ..."
|
- |
|
193 |
echo "Download of complementary packages. Please wait ..."
|
180 |
urpmi --auto $PACKAGES --quiet --test --retry 2
|
194 |
urpmi --auto $PACKAGES --quiet --test --retry 2
|
181 |
if [ "$?" != "0" ]
|
195 |
if [ "$?" != "0" ]
|
182 |
then
|
196 |
then
|
183 |
echo
|
197 |
echo
|
184 |
echo "Une erreur a été détectée lors de la récupération des paquetages complémentaires."
|
198 |
echo "Une erreur a été détectée lors de la récupération des paquetages complémentaires."
|
185 |
echo "Relancez l'installation ultérieurement."
|
199 |
echo "Relancez l'installation ultérieurement."
|
186 |
echo "Si vous rencontrez de nouveau ce problème, changez de dépôt en modifiant le fichier 'scripts/alcasar-urpmi.sh'"
|
200 |
echo "Si vous rencontrez à nouveau ce problème, modifier la variable MIRRORLIST du fichier 'scripts/alcasar-urpmi.sh'"
|
- |
|
201 |
echo "An error occurs when downloading"
|
- |
|
202 |
echo "Try an other install later."
|
- |
|
203 |
echo "If this problem occurs again, change the MIRRORLIST variable in the file 'scripts/alcasar-urpmi.sh'"
|
187 |
exit 0
|
204 |
exit 0
|
188 |
fi
|
205 |
fi
|
189 |
# On installe les paquetages complémentaires
|
206 |
# update with cached RPM
|
190 |
urpmi --auto $PACKAGES
|
207 |
urpmi --auto $PACKAGES
|
191 |
|
- |
|
192 |
# On supprime les paquetages, les services et les utilisateurs inutiles
|
208 |
# On supprime les paquetages, les services et les utilisateurs inutiles
|
193 |
for rm_rpm in shorewall dhcp-server c-icap-server cyrus-sasl distcache-server avahi mandi radeontool bind
|
209 |
for rm_rpm in shorewall dhcp-server c-icap-server cyrus-sasl distcache-server avahi mandi radeontool bind
|
194 |
do
|
210 |
do
|
195 |
/usr/sbin/urpme --auto $rm_rpm --auto-orphans
|
211 |
/usr/sbin/urpme --auto $rm_rpm --auto-orphans
|
196 |
done
|
212 |
done
|
Line 204... |
Line 220... |
204 |
if [ "$user" == "$rm_users" ]
|
220 |
if [ "$user" == "$rm_users" ]
|
205 |
then
|
221 |
then
|
206 |
/usr/sbin/userdel -f $rm_users
|
222 |
/usr/sbin/userdel -f $rm_users
|
207 |
fi
|
223 |
fi
|
208 |
done
|
224 |
done
|
- |
|
225 |
# extract the current architecture (i586 ou X64)
|
- |
|
226 |
fic=`cat /etc/product.id`
|
- |
|
227 |
old="$IFS"
|
- |
|
228 |
IFS=","
|
- |
|
229 |
set $fic
|
- |
|
230 |
for i in $*
|
- |
|
231 |
do
|
- |
|
232 |
if [ "`echo $i|grep arch|cut -d'=' -f1`" == "arch" ]
|
- |
|
233 |
then
|
- |
|
234 |
ARCH=`echo $i|cut -d"=" -f2`
|
- |
|
235 |
else
|
- |
|
236 |
ARCH="i586"
|
- |
|
237 |
fi
|
- |
|
238 |
done
|
- |
|
239 |
IFS="$old"
|
209 |
# On installe les RPMs spécifiques à la version
|
240 |
# On installe les RPMs spécifiques à la version
|
210 |
urpmi --no-verify --auto $DIR_CONF/rpms/$ARCH/*.rpm
|
241 |
urpmi --no-verify --auto $DIR_CONF/rpms/$ARCH/*.rpm
|
211 |
# On empêche les mises à jour de coova-chilli et freeradius par le biais des dépôts
|
242 |
# On empêche les mises à jour de coova-chilli et freeradius par le biais des dépôts
|
212 |
for rpmskip in coova freeradius
|
243 |
for rpmskip in coova freeradius
|
213 |
do
|
244 |
do
|
Line 740... |
Line 771... |
740 |
## - Paramètrage du fichier d'initialisation et de configuration de coova-chilli ##
|
771 |
## - Paramètrage du fichier d'initialisation et de configuration de coova-chilli ##
|
741 |
## - Paramètrage de la page d'authentification (intercept.php) ##
|
772 |
## - Paramètrage de la page d'authentification (intercept.php) ##
|
742 |
##########################################################################################
|
773 |
##########################################################################################
|
743 |
param_chilli ()
|
774 |
param_chilli ()
|
744 |
{
|
775 |
{
|
745 |
# modification du fichier d'initialisation
|
- |
|
746 |
[ -e /etc/init.d/chilli.default ] || cp /etc/init.d/chilli /etc/init.d/chilli.default
|
- |
|
747 |
# configuration d'eth1 (utile pour dnsmasq))
|
- |
|
748 |
$SED "s?ifconfig.*?ifconfig \$HS_LANIF $PRIVATE_IP?g" /etc/init.d/chilli
|
- |
|
749 |
# ajout de la fonction 'status' (utile pour la gestion du process)
|
- |
|
750 |
$SED "/^.*functions/i. /etc/init.d/functions" /etc/init.d/chilli
|
- |
|
751 |
$SED "/^[\t ]*stop)/i\ status)\n status chilli\n RETVAL=$?\n ;;\n" /etc/init.d/chilli
|
- |
|
752 |
# insertion d'une tempo sur le 'restart' pour permettre à tun0 d'être libérée
|
- |
|
753 |
$SED "/^[\t ]*\$0 start/i\ sleep 2" /etc/init.d/chilli
|
- |
|
754 |
# suppression des fonctions 'writeconfig' et 'radiusconfig'. Suppression de warning disgracieux
|
- |
|
755 |
$SED "/writeconfig/d" /etc/init.d/chilli
|
- |
|
756 |
$SED "/radiusconfig/d" /etc/init.d/chilli
|
- |
|
757 |
$SED "s?which start-stop-daemon?which start-stop-daemon 2>/dev/null?g" /etc/init.d/chilli
|
- |
|
758 |
# création du fichier de conf
|
776 |
# création du fichier de conf
|
759 |
[ -e /etc/chilli.conf.default ] || cp /etc/chilli.conf /etc/chilli.conf.default
|
777 |
[ -e /etc/chilli.conf.default ] || cp /etc/chilli.conf /etc/chilli.conf.default
|
760 |
cat <<EOF > /etc/chilli.conf
|
778 |
cat <<EOF > /etc/chilli.conf
|
761 |
# coova config for ALCASAR
|
779 |
# coova config for ALCASAR
|
762 |
cmdsocket /var/run/chilli.sock
|
780 |
cmdsocket /var/run/chilli.sock
|
Line 1284... |
Line 1302... |
1284 |
header_install
|
1302 |
header_install
|
1285 |
testing
|
1303 |
testing
|
1286 |
# On teste la présence d'une version déjà installée
|
1304 |
# On teste la présence d'une version déjà installée
|
1287 |
if [ -e $DIR_WEB/VERSION ]
|
1305 |
if [ -e $DIR_WEB/VERSION ]
|
1288 |
then
|
1306 |
then
|
- |
|
1307 |
actual_version=`cat $DIR_WEB/VERSION`
|
1289 |
echo -n "La version "; echo -n `cat $DIR_WEB/VERSION`; echo " d'ALCASAR est déjà installée";
|
1308 |
echo -n "La version "; echo -n $actual_version ; echo " d'ALCASAR est déjà installée";
|
- |
|
1309 |
echo -n "ALCASAR Version "; echo -n $actual_version ; echo " is already installed";
|
1290 |
response=0
|
1310 |
response=0
|
1291 |
PTN='^[oOnN]$'
|
1311 |
PTN='^[oOnNyY]$'
|
1292 |
until [[ $(expr $response : $PTN) -gt 0 ]]
|
1312 |
until [[ $(expr $response : $PTN) -gt 0 ]]
|
1293 |
do
|
1313 |
do
|
1294 |
echo -n "Voulez-vous effectuer une mise à jour (O/n)? ";
|
1314 |
echo "Voulez-vous effectuer une mise à jour (O/n)? ";
|
- |
|
1315 |
echo -n "Do you want to update (Y/n)?";
|
1295 |
read response
|
1316 |
read response
|
1296 |
done
|
1317 |
done
|
1297 |
if [ "$response" = "o" ] || [ "$response" = "O" ]
|
1318 |
if [ "$response" = "o" ] || [ "$response" = "O" || [ "$response" = "y" ] || [ "$response" = "Y" ]
|
1298 |
then
|
1319 |
then
|
1299 |
# On crée le fichier de conf de la version actuelle
|
1320 |
# On crée le fichier de conf de la version actuelle
|
1300 |
chmod u+x $DIR_SCRIPTS/alcasar-conf.sh
|
1321 |
chmod u+x $DIR_SCRIPTS/alcasar-conf.sh
|
1301 |
$DIR_SCRIPTS/alcasar-conf.sh --create
|
1322 |
$DIR_SCRIPTS/alcasar-conf.sh --create
|
1302 |
fi
|
1323 |
fi
|
Line 1304... |
Line 1325... |
1304 |
$DIR_SCRIPTS/sbin/alcasar-uninstall.sh
|
1325 |
$DIR_SCRIPTS/sbin/alcasar-uninstall.sh
|
1305 |
fi
|
1326 |
fi
|
1306 |
if [ -e /tmp/alcasar-conf.tar.gz ]
|
1327 |
if [ -e /tmp/alcasar-conf.tar.gz ]
|
1307 |
then
|
1328 |
then
|
1308 |
echo "#### Installation avec mise à jour ####"
|
1329 |
echo "#### Installation avec mise à jour ####"
|
- |
|
1330 |
echo "#### Installation with update ####"
|
1309 |
# On récupère le nom d'organisme à partir de fichier de conf
|
1331 |
# On récupère le nom d'organisme à partir de fichier de conf
|
1310 |
tar -xvf /tmp/alcasar-conf.tar.gz conf/hostname
|
1332 |
tar -xvf /tmp/alcasar-conf.tar.gz conf/hostname
|
1311 |
ORGANISME=`cat $DIR_CONF/hostname|cut -b 9-`
|
1333 |
ORGANISME=`cat $DIR_CONF/hostname|cut -b 9-`
|
1312 |
hostname `cat $DIR_CONF/hostname`
|
1334 |
hostname `cat $DIR_CONF/hostname`
|
1313 |
mode="update"
|
1335 |
mode="update"
|
Line 1341... |
Line 1363... |
1341 |
# On désinstalle la version actuelle
|
1363 |
# On désinstalle la version actuelle
|
1342 |
$DIR_SCRIPTS/sbin/alcasar-uninstall.sh
|
1364 |
$DIR_SCRIPTS/sbin/alcasar-uninstall.sh
|
1343 |
;;
|
1365 |
;;
|
1344 |
*)
|
1366 |
*)
|
1345 |
echo "Argument inconnu :$1";
|
1367 |
echo "Argument inconnu :$1";
|
- |
|
1368 |
echo "Unknown argument :$1";
|
1346 |
echo "$usage"
|
1369 |
echo "$usage"
|
1347 |
exit 1
|
1370 |
exit 1
|
1348 |
;;
|
1371 |
;;
|
1349 |
esac
|
1372 |
esac
|
1350 |
# end of script
|
1373 |
# end of script
|