Subversion Repositories ALCASAR

Rev

Rev 2560 | Rev 2608 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log

Rev Author Line No. Line
672 richard 1
#!/bin/bash
62 franck 2
# $Id: alcasar-uninstall.sh 2597 2018-08-19 23:34:40Z tom.houdayer $
3
 
1 root 4
# alcasar-uninstall.sh
672 richard 5
# by Franck BOUIJOUX, Pascal LEVANT and Richard REY
1 root 6
# This script is distributed under the Gnu General Public License (GPL)
518 stephane 7
 
2206 richard 8
# Désisntallation ou mise à jour d'ALCASAR
9
# Uninstall or update ALCASAR
672 richard 10
 
88 richard 11
SED="/bin/sed -i"
2206 richard 12
 
2494 tom.houday 13
[ -z $DEBUG_ALCASAR ] && DEBUG_ALCASAR='off'
14
 
2464 richard 15
init ()
16
{
17
        echo -en "(3) : "
18
        rm -f /root/ALCASAR* && echo -n "1, " # The files in /usr/local/ will be removed at the end (still usefull here)
19
        [ -e /boot/grub2/user.cfg ] && rm -f /boot/grub2/user.cfg && echo -n "2, "
20
        [ -e /root/grub.default ] && mv -f /root/grub.default /etc/grub.d/10_linux && echo -n "3"
21
}
22
 
23
ACC ()
24
{
2560 rexy 25
        echo -en "(8) : "
26
        [ -d /var/www/html ] && rm -rf /var/www/html && echo -n "1, "
27
        [ -d /etc/freeradius-web ] && rm -rf /etc/freeradius-webl && echo -n "2, "
28
        [ -e /etc/php.ini.default ] && mv -f /etc/php.ini.default /etc/php.ini && echo -n "3, "
29
        [ -d /usr/local/etc/digest ] && rm -rf /usr/local/etc/digest && echo -n "4, "
30
        [ -e /etc/lighttpd/lighttpd.conf.default ] && mv /etc/lighttpd/lighttpd.conf.default /etc/lighttpd/lighttpd.conf && echo -n "5, "
31
        [ -e /etc/lighttpd/modules.conf.default ] && mv /etc/lighttpd/modules.conf.default /etc/lighttpd/modules.conf && echo -n "6, "
32
        [ -e /etc/lighttpd/conf.d/fastcgi.conf.default ] && mv /etc/lighttpd/conf.d/fastcgi.conf.default /etc/lighttpd/conf.d/fastcgi.conf && echo -n "7, "
33
        [ -e /etc/lighttpd/vhosts.d/alcasar.conf ] && rm -f /etc/lighttpd/vhosts.d/alcasar.conf && echo -n "8"
2464 richard 34
}
35
 
36
CA ()
37
{
38
        echo -en "(5) : "
39
        [ -e /etc/pki/CA/alcasar-ca.crt ] && rm -f /etc/pki/CA/alcasar-ca.crt && echo -n "1, "
40
        [ -e /etc/pki/CA/private/alcasar-ca.key ] && rm -f /etc/pki/CA/private/alcasar-ca.key && echo -n "2, "
41
        [ -e /etc/pki/tls/certs/alcasar.crt ] && rm -f /etc/pki/tls/certs/alcasar.crt && echo -n "3, "
42
        [ -e /etc/pki/tls/private/alcasar.key ] && rm -f /etc/pki/tls/private/alcasar.key && echo -n "4, "
2488 lucas.echa 43
        [ -e /etc/pki/tls/private/alcasar.pem ] && rm -f /etc/pki/tls/private/alcasar.pem && echo -n "5"
2464 richard 44
}
45
 
46
time_server ()
47
{
48
        echo -en "(2) : "
49
        [ -e /etc/ntp/step-tickers.default ] && mv /etc/ntp/step-tickers.default /etc/ntp/step-tickers && echo -n "1, "
50
        [ -e /etc/ntp.conf.default ] && mv /etc/ntp.conf.default /etc/ntp.conf && echo -n "2"
51
}
52
 
53
init_db ()
54
{
55
        echo -en "(2) : "
56
        [ -e /etc/my.cnf.default ] && mv -f /etc/my.cnf.default /etc/my.cnf && echo -n "1, "
57
        [ -e /lib/systemd/system/mysqld.service.default ] && mv -f /lib/systemd/system/mysqld.service.default /lib/systemd/system/mysqld.service && echo -n "2"
58
        /usr/bin/systemctl daemon-reload
59
        rm -rf /var/lib/mysql
60
}
61
 
62
freeradius ()
63
{
2597 tom.houday 64
        echo -en "(12) : "
2464 richard 65
        [ -e /etc/raddb/empty-radiusd-db.sql ] && rm -f /etc/raddb/empty-radiusd-db.sql && echo -n "1, "
66
        [ -e /etc/raddb/radiusd.conf.default ] && mv /etc/raddb/radiusd.conf.default /etc/raddb/radiusd.conf && echo -n "2, "
67
        [ -e /etc/raddb/sites-enabled/alcasar ] && rm /etc/raddb/sites-enabled/alcasar && echo -n "3, "
68
        [ -e /etc/raddb/sites-available/alcasar ] && rm /etc/raddb/sites-available/alcasar && echo -n "4, "
2467 richard 69
        [ -e /etc/raddb/sites-available/alcasar-with-ldap ] && rm /etc/raddb/sites-available/alcasar-with-ldap && echo -n "5, "
70
        [ -e /etc/raddb/clients.conf.default ] && mv /etc/raddb/clients.conf.default /etc/raddb/clients.conf && echo -n "6, "
71
        [ -e /etc/raddb/mods-enabled/ldap ] && rm /etc/raddb/mods-enabled/ldap && echo -n "7, " #Add here other mods
72
        [ -e /etc/raddb/mods-enabled/sql ] && rm /etc/raddb/mods-enabled/sql && echo -n "7bis, " #Add here other mods
73
        [ -e /etc/raddb/mods-available/ldap-alcasar ] && rm /etc/raddb/mods-available/ldap-alcasar && echo -n "8, "
74
        [ -e /etc/raddb/mods-available/sql.default ] && mv /etc/raddb/mods-available/sql.default /etc/raddb/mods-available/sql && echo -n "9, "
75
        [ -e /etc/raddb/mods-config/sql/main/mysql/queries.conf.default ] && mv /etc/raddb/mods-config/sql/main/mysql/queries.conf.default /etc/raddb/mods-config/sql/main/mysql/queries.conf && echo -n "10, "
2597 tom.houday 76
        [ -e /lib/systemd/system/radiusd.service.default ] && mv /lib/systemd/system/radiusd.service.default /lib/systemd/system/radiusd.service && echo -n "11, "
77
        [ -e /etc/raddb/mods-available/sqlcounter.default ] && mv /etc/raddb/mods-available/sqlcounter.default /etc/raddb/mods-available/sqlcounter && echo -n "12"
78
        [ -e /etc/raddb/mods-config/sql/counter/mysql/dailycounter.conf.default ]    && mv /etc/raddb/mods-config/sql/counter/mysql/dailycounter.conf.default    /etc/raddb/mods-config/sql/counter/mysql/dailycounter.conf    && echo -n ", 12a"
79
        [ -e /etc/raddb/mods-config/sql/counter/mysql/monthlycounter.conf.default ]  && mv /etc/raddb/mods-config/sql/counter/mysql/monthlycounter.conf.default  /etc/raddb/mods-config/sql/counter/mysql/monthlycounter.conf  && echo -n ", 12b"
80
        [ -e /etc/raddb/mods-config/sql/counter/mysql/noresetcounter.conf.default ]  && mv /etc/raddb/mods-config/sql/counter/mysql/noresetcounter.conf.default  /etc/raddb/mods-config/sql/counter/mysql/noresetcounter.conf  && echo -n ", 12c"
81
        [ -e /etc/raddb/mods-config/sql/counter/mysql/expire_on_login.conf.default ] && mv /etc/raddb/mods-config/sql/counter/mysql/expire_on_login.conf.default /etc/raddb/mods-config/sql/counter/mysql/expire_on_login.conf && echo -n ", 12d"
2464 richard 82
}
83
 
84
chilli ()
85
{
86
        echo -en "(4) : "
87
        [ -e /etc/init.d/chilli.default ] && mv /etc/init.d/chilli.default /etc/init.d/chilli && echo -n "1, "
88
        [ -e /usr/libexec/chilli ] && rm /usr/libexec/chilli && echo -n "2, "
89
        [ -e /etc/chilli.conf.default ] && mv /etc/chilli.conf.default /etc/chilli.conf && echo -n "3, "
90
        [ -e /lib/systemd/system/chilli.service ] && rm /lib/systemd/system/chilli.service && echo -n "4"
91
}
92
 
2521 armand.ito 93
e2guardian ()
2464 richard 94
{
2560 rexy 95
        echo -en "(8) : "
96
        [ -d /var/e2guardian ] && rm -rf /var/e2guardian && echo -n "1, "
97
        [ -e /etc/e2guardian/e2guardian.conf.default ] && mv /etc/e2guardian/e2guardian.conf.default /etc/e2guardian/e2guardian.conf && echo -n "2, "
98
        [ -e /etc/e2guardian/lists/bannedphraselist.default ] && mv /etc/e2guardian/lists/bannedphraselist.default /etc/e2guardian/lists/bannedphraselist && echo -n "3, "
99
        [ -e /etc/e2guardian/e2guardianf1.conf.default ] && mv /etc/e2guardian/e2guardianf1.conf.default /etc/e2guardian/e2guardianf1.conf && echo -n "4, "
100
        [ -e /etc/e2guardian/lists/bannedextensionlist.default ] && mv /etc/e2guardian/lists/bannedextensionlist.default /etc/e2guardian/lists/bannedextensionlist && echo -n "5, "
101
        [ -e /etc/e2guardian/lists/bannedmimetypelist.default ] && mv /etc/e2guardian/lists/bannedmimetypelist.default /etc/e2guardian/lists/bannedmimetypelist && echo -n "6, "
102
        [ -e /etc/e2guardian/lists/exceptioniplist.default ] && mv /etc/e2guardian/lists/exceptioniplist.default /etc/e2guardian/lists/exceptioniplist && echo -n "7, "
103
        [ -e /etc/e2guardian/lists/bannedsitelist.default ] && mv /etc/e2guardian/lists/bannedsitelist.default /etc/e2guardian/lists/bannedsitelist && echo -n "8"
2464 richard 104
}
105
 
106
antivirus ()
107
{
108
        echo -en "(5) : "
109
        if [ -e /etc/init.d/havp ]
110
        then
111
                [ -e /etc/havp/havp.config.default ] && mv /etc/havp/havp.config.default /etc/havp/havp.config && echo -n "1, "
112
                userdel -r havp 2>/dev/null && echo -n "2, "
113
                [ -e /etc/init.d/havp.default ] && mv /etc/init.d/havp.default /etc/init.d/havp && echo -n "3, "
114
                [ -e /lib/systemd/system/havp.service.default ] && mv /lib/systemd/system/havp.service.default /lib/systemd/system/havp.service && echo -n "4, "
115
                [ -e /etc/freshclam.conf.default ] && mv /etc/freshclam.conf.default /etc/freshclam.conf && echo -n "5"
116
        else    echo -n "already uninstalled"
117
        fi
118
}
119
 
120
tinyproxy ()
121
{
122
        echo -en "(2) : "
123
        if [ -e /etc/init.d/tinyproxy ]
124
        then
125
                [ -e /etc/tinyproxy/tinyproxy.conf.default ] && mv /etc/tinyproxy/tinyproxy.conf.default /etc/tinyproxy/tinyproxy.conf && echo -n "1, "
126
                userdel -r tinyproxy 2>/dev/null && echo -n "2"
127
        else    echo -n "already uninstalled"
128
        fi
129
}
130
 
131
ulogd ()
132
{
133
        echo -en "(6) : "
134
        i=0
135
        for log_type in traceability ssh ext-access
136
        do
137
                i=`expr $i + 1`
138
                [ -e /etc/ulogd-$log_type.conf ] && rm -f /etc/ulogd-$log_type.conf && echo -n "$i, "
139
                i=`expr $i + 1`
140
                [ -e /lib/systemd/system/ulogd-$log_type.service ] && rm -f /lib/systemd/system/ulogd-$log_type.service && echo -n "$i, "
141
        done
142
}
143
 
144
nfsen ()
145
{
146
        echo -en "(1) : "
147
        [ -e /lib/systemd/system/nfsen.service ] && rm -f /lib/systemd/system/nfsen.service && echo -n "1"
148
}
149
 
150
vnstat ()
151
{
152
        echo -en "(1) : "
153
        [ -e /etc/vnstat.conf.default ] && mv /etc/vnstat.conf.default /etc/vnstat.conf && echo -n "1"
154
}
155
 
156
dnsmasq ()
157
{
158
        echo -en "(6 if update ; 8 if uninstall) : "
159
        i=0
160
        for list in blacklist whitelist blackhole
161
        do
162
                i=`expr $i + 1`
163
                [ -e /etc/dnsmasq-$list.conf ] && rm /etc/dnsmasq-$list.conf && echo -n "$i, "
164
                i=`expr $i + 1`
165
                [ -e /lib/systemd/system/dnsmasq-$list.service ] && rm /lib/systemd/system/dnsmasq-$list.service && echo -n "$i, "
166
        done
167
        if [ $mode == "full" ] # don't remove dnsmasq in update mode (DHCP + DNS !)
168
        then
169
                if [ -e /lib/systemd/system/dnsmasq.service ]
170
                then
171
                        [ -e /etc/dnsmasq.conf.default ] && mv /etc/dnsmasq.conf.default /etc/dnsmasq.conf && echo -n "7, "
172
                        [ -e /lib/systemd/system/dnsmasq.service.default ] && mv /lib/systemd/system/dnsmasq.service.default /lib/systemd/system/dnsmasq.service && echo -n "8"
173
                fi
174
        fi
175
}
176
 
177
cron ()
178
{
179
        echo -en "(11) : "
180
        i=1
181
        for cron in `ls /etc/cron.d/alcasar-* 2>/dev/null`
182
        do
183
                rm $cron && echo -n "$i, "
184
                i=`expr $i + 1`
185
        done
186
        [ -e /etc/crontab.default ] && mv /etc/crontab.default /etc/crontab && echo -n "10, "
187
        [ -e /etc/anacrontab.default ] && mv /etc/anacrontab.default /etc/anacrontab && echo -n "11"
188
}
189
 
190
fail2ban ()
191
{
192
        echo -en "(8) : "
193
        [ -e /etc/fail2ban/fail2ban.conf.default ] && mv /etc/fail2ban/fail2ban.conf.default /etc/fail2ban/fail2ban.conf && echo -n "1, "
194
        [ -e /etc/fail2ban/jail.conf.default ] && mv /etc/fail2ban/jail.conf.default /etc/fail2ban/jail.conf && echo -n "2, "
195
        [ -e /etc/fail2ban/action.d/iptables-allports.conf.default ] && mv /etc/fail2ban/action.d/iptables-allports.conf.default /etc/fail2ban/action.d/iptables-allports.conf && echo -n "3, "
196
        i=3
197
        for filter in `ls /etc/fail2ban/filter.d/alcasar_* 2>/dev/null`
198
        do
199
                i=`expr $i + 1`
200
                rm $filter && echo -n "$i, "
201
        done
202
        [ -e /lib/systemd/system/fail2ban.service.default ] && mv /lib/systemd/system/fail2ban.service.default /lib/systemd/system/fail2ban.service && echo -n "8"
203
}
204
 
205
gammu_smsd ()
206
{
207
        echo -en "(3) : "
208
        [ -e /etc/gammu_smsd_conf ] && rm -f /etc/gammu_smsd_conf && echo -n "1, "
209
        [ -e /lib/udev/rules.d/66-huawei.rules ] && rm -f /lib/udev/rules.d/66-huawei.rules && echo -n "2, "
210
        [ -e /var/log/gammu-smsd ] && rm -rf /var/log/gammu-smsd && echo -n "3"
211
}
212
 
213
msec ()
214
{
215
        echo -en "(2) : "
216
        if [ -e /etc/security/msec/security.conf ]
217
        then
218
                [ -e /etc/security/msec/security.conf.default ] && mv /etc/security/msec/security.conf.default /etc/security/msec/security.conf && echo -n "1, "
219
                [ -e /etc/security/msec/perm.local ] && rm -f /etc/security/msec/perm.local && echo -n "2"
220
        else    echo -n "uninstalled"
221
        fi
222
}
223
 
224
letsencrypt ()
225
{
226
        echo -en "(3) : "
227
        [ -e /usr/local/etc/letsencrypt ] && rm -rf /usr/local/etc/letsencrypt && echo -n "1, "
228
        [ -e /opt/acme.sh/acme.sh ] && /opt/acme.sh/acme.sh --uninstall --nocron 1>/dev/null && echo -n "2, "
229
        [ -e /opt/acme.sh ] && rm -rf /opt/acme.sh && echo -n "3"
230
}
231
 
232
post_install ()
233
{
234
echo -en "(7) : "
235
        [ -e /etc/mageia-release.default ] && mv -f /etc/mageia-release.default /etc/mageia-release && echo -n "1, "
236
        [ -e /etc/ssh/alcasar-banner-ssh ] && rm -f /etc/ssh/alcasar-banner-ssh && echo -n "2, "
237
        [ -e /etc/ssh/sshd_config.default ] && mv -f /etc/ssh/sshd_config.default /etc/ssh/sshd_config && echo -n "3, "
238
        [ -e /etc/bashrc.default ] && mv -f /etc/bashrc.default /etc/bashrc && echo -n "4, "
239
        [ -e /etc/sudoers.default ] && mv -f /etc/sudoers.default /etc/sudoers && echo -n "5, "
240
        [ -e /lib/systemd/system/alcasar-load_balancing.service ] && rm -f /lib/systemd/system/alcasar-load_balancing.service && echo -n "6, "
241
        [ -e /etc/default/grub.default ] && mv -f /etc/default/grub.default /etc/default/grub && echo -n "7"
242
}
243
 
244
 
245
usage="Usage: alcasar-uninstall.sh {-update or --update} | {-full or --full}"
246
 
2206 richard 247
nb_args=$#
248
args=$1
249
if [ $nb_args -eq 0 ]
250
then
251
        nb_args=1
252
        args="-h"
253
fi
254
case $args in
255
        -\? | -h* | --h*)
256
                echo "$usage"
257
                exit 0
258
                ;;
259
        --update | -update)
260
                mode="update"
261
                ;;
262
        --full | -full)
263
                mode="full"
264
                ;;
265
        *)
266
                echo "Argument inconnu :$1";
267
                echo "$usage"
268
                exit 1
269
                ;;
270
esac
1 root 271
clear
2206 richard 272
if [ $mode == "full" ]
273
then
274
        echo "----------------------------------------------------------------------------"
275
        echo "**                     Uninstall/Désinstallation d'ALCASAR               **"
276
        echo "----------------------------------------------------------------------------"
2521 armand.ito 277
        services="alcasar-load_balancing vnstat havp freshclam ntpd lighttpd radiusd mysqld dnsmasq-blacklist dnsmasq-whitelist dnsmasq-blackhole tinyproxy nfsen fail2ban iptables ulogd-ext-access ulogd-ssh ulogd-traceability e2guardian dnsmasq sshd chilli"
2206 richard 278
        /usr/local/bin/alcasar-logout.sh all # logout everybody
279
else
2464 richard 280
        echo "--------------------------------------------------------------------------"
2206 richard 281
        echo "**                     update/mise à jour d'ALCASAR                      **"
2464 richard 282
        echo "--------------------------------------------------------------------------"
2206 richard 283
        # dnsmasq & sshd should stay on to allow remote update
2521 armand.ito 284
        services="alcasar-load_balancing vnstat havp freshclam ntpd lighttpd radiusd mysqld dnsmasq-blacklist dnsmasq-whitelist dnsmasq-blackhole tinyproxy nfsen fail2ban ulogd-ext-access ulogd-ssh ulogd-traceability e2guardian chilli"
2206 richard 285
        /usr/local/bin/alcasar-bypass.sh -on # to allow remote update
286
fi
2488 lucas.echa 287
 
288
[ -e /lib/systemd/system/httpd.service ] && services+=" httpd"
289
 
2541 rexy 290
echo "Stopping services : "
1800 richard 291
/usr/local/bin/alcasar-sms.sh --stop
2454 tom.houday 292
for i in $services
1211 crox53 293
do
2454 tom.houday 294
        if [ -e /lib/systemd/system/$i.service ]
1800 richard 295
        then
296
                /usr/bin/systemctl disable $i.service
2454 tom.houday 297
                /usr/bin/systemctl stop $i.service 1>/dev/null
1800 richard 298
                sleep 1
299
        else
300
                echo "The service $i.service doesn't exist !"
301
        fi
1211 crox53 302
done
1673 richard 303
echo "Check the service clearing"
2206 richard 304
for i in $services
1673 richard 305
do
306
        if [ `systemctl is-active $i.service` == "active" ]
307
        then
308
                echo "The service '$i' need to be killed"
309
                /usr/bin/systemctl stop $i.service
310
                killall $i
311
        fi
312
done
2426 richard 313
if [ $mode == "update" ] # reload sshd in case of remote update
2226 richard 314
then
2457 richard 315
        /usr/bin/systemctl reload sshd
2226 richard 316
fi
1502 richard 317
echo "Reset ALCASAR main functions : "
2521 armand.ito 318
for func in init ACC CA time_server init_db freeradius chilli e2guardian antivirus tinyproxy ulogd nfsen vnstat dnsmasq cron fail2ban gammu_smsd msec letsencrypt post_install
2206 richard 319
do
2464 richard 320
        echo -en "\n- $func "
321
        $func
322
        sleep 1
2466 richard 323
        if [ $DEBUG_ALCASAR == "on" ]
324
        then
325
                echo -n " *** 'debug' : end of cleaning '$func' *** "
326
                read a
327
        fi
2206 richard 328
done
2426 richard 329
if [ $mode == "full" ]
2206 richard 330
then
331
        echo -en "\n- network(9) : "
2426 richard 332
        hostnamectl set-hostname localhost.localdomain
2464 richard 333
        chmod a-x /etc/sysconfig/network-scripts/default-*
2206 richard 334
        i=0
2464 richard 335
        for nic in `ls /etc/sysconfig/network-scripts/default-*|cut -d'-' -f4`
1362 richard 336
        do
2206 richard 337
                i=`expr $i + 1`
338
                /sbin/ifdown $nic
2464 richard 339
                [ -e /etc/sysconfig/network-scripts/default-ifcfg-$nic ] && mv -f /etc/sysconfig/network-scripts/default-ifcfg-$nic /etc/sysconfig/network-scripts/ifcfg-$nic && echo -n "$i ($nic), "
1362 richard 340
        done
2432 richard 341
        [ -e /etc/sysconfig/network.default ] && mv -f /etc/sysconfig/network.default /etc/sysconfig/network && echo -n "3, "
342
        [ -e /etc/hosts.default ] && mv -f /etc/hosts.default /etc/hosts && echo -n "4, "
343
        [ -e /etc/hosts.allow.default ] && mv -f /etc/hosts.allow.default /etc/hosts.allow && echo -n "5, "
344
        [ -e /etc/hosts.deny.default ] && mv -f /etc/hosts.deny.default /etc/hosts.deny && echo -n "6, "
345
        [ -e /etc/modprobe.preload.default ] && mv -f /etc/modprobe.preload.default /etc/modprobe.preload && echo -n "7, "
346
        [ -e /lib/systemd/system/iptables.service.default ] && mv -f /lib/systemd/system/iptables.service.default /lib/systemd/system/iptables.service && echo -n "8, "
347
        [ -e /usr/libexec/iptables.init.default ] && mv -f /usr/libexec/iptables.init.default /usr/libexec/iptables.init && echo -n "9"
2457 richard 348
        /usr/bin/systemctl restart network
2206 richard 349
        sleep 1
350
fi
790 richard 351
 
2226 richard 352
# Cleaning (remove all "old" alcasar scripts)
2243 tom.houday 353
echo -en "\n- End of cleaning ...\n"
1923 franck 354
for rm_fic in /usr/local/bin /usr/local/etc /usr/local/sbin
2206 richard 355
do
306 richard 356
        rm -rf $rm_fic/alcasar*
2206 richard 357
done
2457 richard 358
/usr/bin/update-grub2
2458 richard 359
 
360
if [ $mode == "full" ]
361
then
362
        echo -n "Waiting for Network to be up again : "
363
        i=0
364
        while [ $i -lt 10 ] # We wait 10 seconds max
365
        do
366
                echo -n "."
367
                DNS1=`grep ^nameserver /etc/resolv.conf|awk -F" " '{print $2}'|head -n 1`
368
                if [ "$DNS1" != "" ] && [ "$DNS1" != "127.0.0.1" ]
369
                then
370
                        i=9
371
                        echo -n "ok"
372
                fi
373
                i=`expr $i + 1`
374
                sleep 1
375
        done
376
fi
377
echo
2464 richard 378