source: client/boot-tools/boottoolsfunctions.lib @ 2830674

918-git-images-111dconfigfileconfigure-oglivegit-imageslgromero-new-oglivemainmaint-cronmount-efivarfsmultivmmultivm-ogboot-installerogClonningEngineogboot-installer-jenkinsoglive-ipv6test-python-scriptsticket-301ticket-50ticket-50-oldticket-577ticket-585ticket-611ticket-612ticket-693ticket-700ubu24tplunification2use-local-agent-oglivevarios-instalacionwebconsole3
Last change on this file since 2830674 was cfa91e8, checked in by ramon <ramongomez@…>, 12 years ago

#603: Adaptar boot-tools a a Ubuntu 13.04 de 32 bits (Kernel 3.8.0).

git-svn-id: https://opengnsys.es/svn/branches/version1.0@3820 a21b9725-9963-47de-94b9-378ad31fedc9

  • Property mode set to 100755
File size: 18.1 KB
Line 
1#!/bin/bash
2#/**
3#@file    boottoolsfunctions.lib
4#@brief   Librería o clase Boot-Tools
5#@class   Boot-Tools
6#@brief   Funciones para generar un sistema operativo cliente para opengnsys
7#@version 1.0.5
8#@warning License: GNU GPLv3+
9#*/
10
11
12# btGetVariables: define las constantes a utilizar
13# Autor: Antonio J. Doblas Viso. Universidad de Málaga.
14function btogGetVar()
15{
16
17export BTSVNBOOTTOOLS=/tmp/opengnsys_installer/opengnsys/client/boot-tools
18export BTSVNSHARE=/tmp/opengnsys_installer/opengnsys/client/shared
19export BTSVNENGINE=/tmp/opengnsys_installer/opengnsys/client/engine
20
21export BTSVNOG2=/tmp/opengnsys_installer/opengnsys2
22
23export BTTARGETDIR=/var/lib/tftpboot/ogclient/
24export BTROOTFSIMG=${BTTARGETDIR}ogclient.img
25export BTROOTFSMNT=${BTTARGETDIR}ogclientmount
26# tamaño maximo limitado por schroot 2GB
27export BTVIRTUALDISKSIZE=2000
28export BTROOTFSIMGLABEL=ogClient
29
30export LOG_FILE=/tmp/boot-tools_installation.log
31
32export VERSIONBOOTTOOLS="ogLive"
33}
34
35
36# btGetOsInfo: detecta la version del host, para tenerla de referencia en el boot-tools a generar.
37#@version 0.9 - Prototipo de sistema operativo multiarranque de opengnsys.
38#@author  Antonio J. Doblas Viso. Universidad de Malaga.
39#@date    2010/05/24
40#@version 1.0 - Compatibilidad OpengGnsys X.
41#@author  Antonio J. Doblas Viso. Universidad de Malaga.
42#@date    2011/08/03
43#@version 1.0.5 - Fichero general de configuración, Kernel 3.7 para Ubuntu 12.10.
44#@author  Ramón Gómez, ETSII Univ. Sevilla
45#@date    2013/02/06
46function btogGetOsInfo ()
47{
48OGCLIENTCFG=/tmp/ogclient.cfg
49case "${1,,}" in
50        lenny)
51                OSDISTRIB="debian"
52                OSCODENAME="lenny"
53                OSRELEASE="2.6.28-11-generic"
54                OSARCH="i386"
55                OSHTTP="http://es.archive.ubuntu.com/ubuntu/"
56                ;;
57        lucid)
58                OSDISTRIB="ubuntu"
59                OSCODENAME="lucid"
60                OSRELEASE="2.6.32-21-generic-pae"
61                OSARCH="i386"
62                OSHTTP="http://es.archive.ubuntu.com/ubuntu/"
63                ;;
64        quantal)
65                OSDISTRIB="ubuntu"
66                OSCODENAME="quantal"
67                OSRELEASE="3.7.6-030706-generic"
68                OSARCH="i386"
69                OSHTTP="http://es.archive.ubuntu.com/ubuntu/"
70                ;;
71        host | *)
72                OSDISTRIB=$(lsb_release -is)
73                OSCODENAME=$(lsb_release -cs)
74                OSRELEASE=$(uname -a | awk '{print $3}')
75                #uname -a | grep x86_64 > /dev/null && OSARCH="amd64" || OSARCH="i386"
76                OSARCH="i386"
77                export OSHTTP="http://es.archive.ubuntu.com/ubuntu/"
78                ;;
79esac
80SVNURL="http://opengnsys.es/svn/branches/version1.0/client"
81VERSIONSVN=$(LANG=C svn info $SVNURL | awk '/Rev:/ {print "r"$4}')
82NAMEISOCLIENT="$VERSIONBOOTTOOLS-$OSCODENAME-$OSRELEASE-$VERSIONSVN"
83NAMEHOSTCLIENT="$VERSIONBOOTTOOLS-$OSCODENAME-$VERSIONSVN"
84export OSDISTRIB OSCODENAME OSRELEASE OSARCH OSHTTP
85export TYPECLIENT VERSIONSVN NAMEISOCLIENT NAMEHOSTCLIENT
86### El fichero de configuración debe sustituir a estos 3 ficheros (borrar las 3 líneas siguientes).
87echo "$VERSIONSVN" > /tmp/versionsvn.txt
88echo "$NAMEISOCLIENT" > /tmp/opengnsys_info_rootfs
89echo "$NAMEHOSTCLIENT" > /tmp/opengnsys_chroot
90# Generar fichero de configuración.
91cat << EOT > $OGCLIENTCFG
92TYPECLIENT="$1"
93OSDISTRIB="$OSDISTRIB"
94OSCODENAME="$OSCODENAME"
95OSRELEASE="$OSRELEASE"
96OSARCH="$OSARCH"
97OSHTTP="$OSHTTP"
98VERSIONSVN="$VERSIONSVN"
99NAMEISOCLIENT="$NAMEISOCLIENT"
100NAMEHOSTCLIENT="$NAMEHOSTCLIENT"
101EOT
102}
103
104# btogSetFsVirtual: Crea y formatea el fichero - disco duro virtual
105#@version 0.9 - Prototipo de sistema operativo multiarranque de opengnsys.
106#@author  Antonio J. Doblas Viso. Universidad de Malaga.
107#@date    2010/05/24
108#@version 1.0 - Compatibilidad OpengGnsys X.
109#@author  Antonio J. Doblas Viso. Universidad de Malaga.
110#@date    2011/08/03
111# error code return 2
112function btogSetFsVirtual ()
113{
114
115local RERROR  DISKLOOP PARTLOOP #return code error
116
117#Dependencias.
118[ -z "$BTROOTFSIMG" ] && btogGetVar
119
120echoAndLog "$FUNCNAME(): Creación y formateo del disco virtual $BTVIRTUALDISKSIZE MB "
121
122#Desmontamos el dispositivo virtual
123mount | grep $BTROOTFSMNT && umount $BTROOTFSMNT
124mount | grep $BTROOTFSMNT && umount $BTROOTFSMNT
125
126#echo "$FUNCNAME(): Creando el directorio donde se montará el disco virtual $BTROOTFSMNT"
127mkdir -p $BTROOTFSMNT
128
129if [ $? -ne 0 ]
130then
131        errorAndLog "$FUNCNAME(): Creando directorio $BTROOTFSMNT : ERROR"
132        return 1
133fi
134
135# Permisos para el usuario opengnsys.
136chown -R root:opengnsys $BTTARGETDIR
137
138#echo "$FUNCNAME(): Creando el disco virtual con tamaño máximo de  $BTVIRTUALDISKSIZE MB"
139dd if=/dev/zero of=$BTROOTFSIMG bs=1048576 count=$BTVIRTUALDISKSIZE
140        #qemu-img create $BTROOTFSIMG 3G       
141        #dd if=/dev/zero of=$BTROOTFSIMG bs=1k count=$OGCLIENTSIZEKB   # necesita 500MB
142
143if [ $? -ne 0 ]
144then
145        errorAndLog "$FUNCNAME(): Creando el disco virtual con tamaño maxima $BTVIRTUALDISKSIZE MB : ERROR"
146        return 2
147fi
148
149# Particionamos el disco virtual con una sola particion primaria.
150DISKLOOP=$(losetup -f)
151#TODO: si no DISKLOOP error
152losetup $DISKLOOP $BTROOTFSIMG
153#echo "$FUNCNAME(): particiondo el disco virtual - $DISKLOOP - con una particion primaria"
154echo -e "n\np\n1\n\n\nt\n83\nw" | fdisk $DISKLOOP
155
156
157#echoAndLog "$FUNCNAME(): Liberamos Desmontando $DISKLOOP despues del particionado "
158sleep 10
159losetup -d $DISKLOOP
160if [ $? -ne 0 ]
161then
162        errorAndLog "$FUNCNAME(): Liberando disco virtual despues del particionado: ERROR"
163        return 2
164fi
165
166
167PARTLOOP=$(losetup -f)
168#echo "$FUNCNAME(): Formateando la particion principal $PARTLOOP"
169losetup -o 32256 $PARTLOOP $BTROOTFSIMG && mkfs.ext4 -b 4096 -L $BTROOTFSIMGLABEL $PARTLOOP
170if [ $? -ne 0 ]
171then
172        errorAndLog "$FUNCNAME(): Formateando la particion principal del disco virtual: ERROR"
173        return 2
174fi
175#echoAndLog "$FUNCNAME(): Desmontando $PARTLOOP despues del formateo "
176sleep 10
177losetup -d $PARTLOOP
178if [ $? -ne 0 ]
179then
180        errorAndLog "$FUNCNAME(): Liberando la particion virtual despues del formateo: ERROR"
181        return 2
182else
183        echoAndLog "$FUNCNAME(): $BTROOTFSIMG $BTVIRTUALDISKSIZE MB : OK"
184fi
185}
186
187
188# btogSetfsBase: Genera el sistema root base con debootstrap
189#@version 0.9 - Prototipo de sistema operativo multiarranque de opengnsys.
190#@author  Antonio J. Doblas Viso. Universidad de Malaga.
191#@date    2010/05/24
192#@version 1.0 - Compatibilidad OpengGnsys X.
193#@author  Antonio J. Doblas Viso. Universidad de Malaga.
194#@date    2011/08/03
195# error code return 3
196function btogSetFsBase ()
197{
198
199# Dependencias
200[ -z "$OSCODENAME" ] && btogGetOsInfo $TYPECLIENT
201
202echoAndLog "$FUNCNAME:  Iniciando la generación del sistema de archivos "
203       
204#Montamos el dispositivo virtual en su punto de montaje.
205mount | grep $BTROOTFSMNT || mount $BTROOTFSIMG $BTROOTFSMNT -o loop,offset=32256
206mount | grep $BTROOTFSMNT && echoAndLog "$FUNCNAME:  mount $BTROOTFSIMG $BTROOTFSMNT -o loop,offset=32256 OK   " || errorAndLog  "$FUNCNAME:  mount $BTROOTFSIMG $BTROOTFSMNT -o loop,offset=32256 : FAILURE  "
207
208debootstrap --arch=$OSARCH --components=main,universe ${OSCODENAME} ${BTROOTFSMNT} ${OSHTTP}
209#debootstrap --arch=$OSARCH ${OSCODENAME} ${BTROOTFSMNT} http://archive.ubuntu.com/ubuntu/
210
211
212if [ $? -ne 0 ]; then
213        errorAndLog "$FUNCNAME:  debootstrap --arch=$OSARCH --components=main,universe $OSCODENAME $BTROOTFSMNT $OSHTTP : ha fallado!"
214        mount | grep $BTROOTFSMNT && umount $BTROOTFSMNT
215        return 3
216else
217        echoAndLog "$FUNCNAME:  debootstrap --include=linux-image-${OSRELEASE},linux-headers-${OSRELEASE} --arch=$OSARCH --components=main,universe $OSCODENAME $BTROOTFSMNT $OSHTTP :  ok"
218        mount | grep $BTROOTFSMNT && umount $BTROOTFSMNT
219        return 0
220fi     
221  sleep 5
222
223##preubas  revisar OSRELEASE
224#debootstrap --include=linux-image-${OSRELEASE},linux-headers-${OSRELEASE} --arch=$OSARCH --components=main,universe ${OSCODENAME} ${OGCLIENTMOUNT} ${OSHTTP}
225#debootstrap --include=linux-image-${OSRELEASE} --arch=i386 --variant=minbase $OSVERSION $OGCLIENTMOUNT http://es.archive.ubuntu.com/ubuntu/
226#debootstrap --variant=minbase --include=linux-image-${OGRELEASE} --arch=i386 $OGVERSION $OGCLIENTMOUNT http://es.archive.ubuntu.com/ubuntu/
227#echo debootstrap --include=linux-image-${OGRELEASE},dbus --arch=i386 --components=main,universe $OGVERSION $OGCLIENTMOUNT http://es.archive.ubuntu.com/ubuntu/
228}
229
230#btogSetFsAcces: habilita el acceso al sistema root del cliente con  schroot
231#@version 0.9 - Prototipo de sistema operativo multiarranque de opengnsys.
232#@author  Antonio J. Doblas Viso. Universidad de Malaga.
233#@date    2010/05/24
234#@version 1.0 - Compatibilidad OpengGnsys X.
235#@author  Antonio J. Doblas Viso. Universidad de Malaga.
236#@date    2011/08/03
237function btogSetFsAccess()
238{
239echoAndLog "$FUNCNAME: Iniciando la configuración del schroot "
240cp /etc/schroot/schroot.conf /etc/schroot/schroot.conf.`getDateTime`
241cat << EOF > /etc/schroot/schroot.conf
242[IMGogclient]
243type=loopback
244file=/var/lib/tftpboot/ogclient/ogclient.img
245description=ogclient Ubuntu image
246#priority=1
247users=root
248groups=root
249root-groups=root
250mount-options=-o offset=32256
251root-users=root
252EOF
253
254cp /etc/schroot/mount-defaults /etc/schroot/mount-defaults.`getDateTime`
255cat << EOF > /etc/schroot/mount-defaults
256# mount.defaults: static file system information for chroots.
257# Note that the mount point will be prefixed by the chroot path
258# (CHROOT_PATH)
259#
260# <file system> <mount point>   <type>  <options>       <dump>  <pass>
261proc            /proc           proc    defaults        0       0
262#procbususb      /proc/bus/usb   usbfs   defaults        0       0
263#/dev            /dev            none    rw,bind         0       0
264/dev/pts        /dev/pts        none    rw,bind         0       0
265/dev/shm        /dev/shm        none    rw,bind         0       0
266#/home          /home           none    rw,bind         0       0
267/tmp            /tmp            none    rw,bind         0       0                                                               
268EOF
269
270rm /etc/schroot/setup.d/*chrootname
271
272echoAndLog "$FUNCNAME: Finalizado: OK  "
273return 0
274}
275
276
277
278#btogFsInitr  genera un initrd.
279#@version 0.9 - Prototipo de sistema operativo multiarranque de opengnsys.
280#@author  Antonio J. Doblas Viso. Universidad de Malaga.
281#@date    2010/05/24
282#@version 1.0 - Compatibilidad OpengGnsys X.
283#@author  Antonio J. Doblas Viso. Universidad de Malaga.
284#@date    2011/08/03
285function btogFsInitrd ()
286{
287#DEPENDENCIAS
288[ -z "$BTROOTFSIMG" ] && btogGetVar
289[ -z "$OSCODENAME" ] && btogGetOsInfo $TYPECLIENT
290
291cd /
292schroot -c IMGogclient -- /usr/bin/boot-tools/boottoolsInitrdGenerate.sh
293echo "cp /tmp/*-${OSRELEASE} ${BTTARGETDIR}"
294cp /tmp/*-${OSRELEASE} ${BTTARGETDIR}
295#Creando copias de las version oginitr y ogvmlinux previas
296TIMEMOD=`date +%Y%m%d-%H%M%S`
297[ -f $BTTARGETDIR/oginitrd.img ] && mv $BTTARGETDIR/oginitrd.img $BTTARGETDIR/oginitrd.img.$TIMEMOD;  mv $BTTARGETDIR/oginitrd.img.sum $BTTARGETDIR/oginitrd.img.sum.$TIMEMOD
298[ -f $BTTARGETDIR/ogvmlinuz ] && mv $BTTARGETDIR/ogvmlinuz $BTTARGETDIR/ogvmlinuz.$TIMEMOD; mv $BTTARGETDIR/ogvmlinuz.sum $BTTARGETDIR/ogvmlinuz.sum.$TIMEMOD
299
300#copiando
301cp /tmp/initrd.img-${OSRELEASE} ${BTTARGETDIR}/oginitrd.img
302cp /tmp/vmlinuz-${OSRELEASE} ${BTTARGETDIR}/ogvmlinuz
303#generamos md5 del kernel y del initrd.
304DATASUM=`md5sum "${BTTARGETDIR}/oginitrd.img" | cut -f1 -d" "`
305echo $DATASUM > ${BTTARGETDIR}/oginitrd.img.sum
306DATASUM=`md5sum "${BTTARGETDIR}/ogvmlinuz" | cut -f1 -d" "`
307echo $DATASUM > ${BTTARGETDIR}/ogvmlinuz.sum
308#Damos permisos
309cd -
310chmod -R 755 $BTTARGETDIR
311}
312
313#btogFsSqfs   convierte el sistema root en sqfs
314#@version 0.9 - Prototipo de sistema operativo multiarranque de opengnsys.
315#@author  Antonio J. Doblas Viso. Universidad de Malaga.
316#@date    2010/05/24
317#@version 1.0 - Compatibilidad OpengGnsys X.
318#@author  Antonio J. Doblas Viso. Universidad de Malaga.
319#@date    2011/08/03
320function btogFsSqfs ()
321{
322#Dependencias.
323[ -z "$BTROOTFSIMG" ] && btogGetVar
324[ -z "$OSCODENAME" ] && btogGetOsInfo $TYPECLIENT
325
326echoAndLog "$FUNCNAME: Iniciando la creación del sistema de archivos en sqfs "
327# si ya existe un sqfs lo renombramos
328[ -f $BTTARGETDIR/ogclient.sqfs ] && mv $BTTARGETDIR/ogclient.sqfs $BTTARGETDIR/ogclient.sqfs.`date +%Y%m%d-%H%M%S`
329mount | grep $BTROOTFSMNT || mount $BTROOTFSIMG $BTROOTFSMNT -o loop,offset=32256
330mksquashfs $BTROOTFSMNT $BTTARGETDIR/ogclient.sqfs
331mount | grep $BTROOTFSMNT && umount $BTROOTFSMNT
332chmod 744 $BTTARGETDIR/ogclient.sqfs
333DATASUM=`md5sum "${BTTARGETDIR}/ogclient.sqfs" | cut -f1 -d" "`
334echo $DATASUM > ${BTTARGETDIR}/ogclient.sqfs.sum
335}
336
337
338
339
340
341# btogIsoGenerator genera la iso del cliente
342#@version 0.9 - Prototipo de sistema operativo multiarranque de opengnsys.
343#@author  Antonio J. Doblas Viso. Universidad de Malaga.
344#@date    2010/05/24
345#@version 1.0 - Compatibilidad OpengGnsys X.
346#@author  Antonio J. Doblas Viso. Universidad de Malaga.
347#@date    2011/08/03
348function btogIsoGenerator {
349#Dependencias.
350#[ -z "$BTROOTFSIMG" ] && btogGetVar
351btogGetVar
352#Preparamos los gestores de arranque
353mkdir -p /tmp/iso/isolinux
354cp -prv /usr/lib/syslinux/* /tmp/iso/isolinux/
355cp -prv /usr/share/gpxe/* /tmp/iso/isolinux/
356
357cat << FIN > /tmp/iso/isolinux/isolinux.cfg
358DEFAULT menu.c32
359PROMPT 0
360ALLOWOPTIONS 1
361
362MENU TITLE  OpenGnsys ${NAMEISOCLIENT}
363
364
365LABEL 0
366MENU LABEL ogLive vga irqpool acpi ogdebug ip:none
367KERNEL /ogclient/linuxISO
368APPEND initrd=/ogclient/oginitrd.img ro vga=788 irqpoll acpi=on boot=oginit  og2nd=sqfs ogprotocol=local ogactiveadmin=true ogdebug=true ip=none
369
370LABEL 1
371MENU LABEL ogLive irqpoll acpi ip:none
372KERNEL /ogclient/linuxISO
373APPEND initrd=/ogclient/oginitrd.img ro  irqpoll acpi=on boot=oginit  og2nd=sqfs ogprotocol=local ogactiveadmin=true ogdebug=false ip=none
374
375LABEL 2
376MENU LABEL ogLive acpi debug ip=dhcp
377KERNEL /ogclient/linuxISO
378APPEND initrd=/ogclient/oginitrd.img ro acpi=on boot=oginit  og2nd=sqfs ogprotocol=local ogactiveadmin=true ogdebug=true ip=dhcp
379
380LABEL 3
381MENU LABEL ogLive ip=dhcp
382KERNEL /ogclient/linuxISO
383APPEND initrd=/ogclient/oginitrd.img ro acpi=off boot=oginit  og2nd=sqfs ogprotocol=local ogactiveadmin=true ogdebug=false ip=dhcp
384
385LABEL 4
386MENU LABEL local
387localboot 0x80
388append -
389
390label 5
391MENU LABEL Network boot via gPXE lkrn
392KERNEL gpxe.lkrn
393
394label 6
395MENU LABEL Network boot via gPXE usb
396KERNEL gpxe.usb
397
398label 7
399MENU LABEL Network boot via gPXE  pxe
400KERNEL gpxe.pxe
401
402label 8
403MENU LABEL Network boot via gPXE  iso
404KERNEL gpxe.iso
405
406label 9
407MENU LABEL gpxe
408KERNEL /clonezilla/live/vmlinuz1
409APPEND initrd=/clonezilla/live/initrd1.img boot=live union=aufs noswap vga=788 ip=frommedia
410FIN
411
412
413
414
415# preparamos el directorio boot-tools.
416mkdir -p /tmp/iso/ogclient
417cp ${BTTARGETDIR}/ogclient.sqfs /tmp/iso/ogclient/
418cp ${BTTARGETDIR}/ogclient.sqfs.sum /tmp/iso/ogclient/
419cp ${BTTARGETDIR}/ogvmlinuz /tmp/iso/ogclient/
420cp ${BTTARGETDIR}/ogvmlinuz.sum /tmp/iso/ogclient/
421cp ${BTTARGETDIR}/ogvmlinuz /tmp/iso/ogclient/linuxISO
422cp ${BTTARGETDIR}/ogvmlinuz.sum /tmp/iso/ogclient/linuxISO.sum
423cp ${BTTARGETDIR}/oginitrd.img /tmp/iso/ogclient/
424cp ${BTTARGETDIR}/oginitrd.img.sum /tmp/iso/ogclient/
425#el ogclienteToISO  debe tener una copia del ogvmlinuz como linuxISO
426#cp -prv /var/lib/tftpboot/ogclientToIso/* /tmp/iso/ogclient
427
428cd /tmp
429#TIMEMOD=`date +%Y%m%d-%H%M%S`
430####Generamos la iso
431echo "mkisofs -V ogClient -o ${NAMEISOCLIENT}.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -J -no-emul-boot -boot-load-size 4 -boot-info-table /tmp/iso"
432mkisofs -V ogClient -o ${NAMEISOCLIENT}.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -J -no-emul-boot -boot-load-size 4 -boot-info-table /tmp/iso
433##Generamos el md5
434DATASUM=`md5sum ${NAMEISOCLIENT}.iso | cut -f1 -d" "`
435echo $DATASUM > ${NAMEISOCLIENT}.iso.sum
436
437mv /tmp/${NAMEISOCLIENT}.iso /var/lib/tftpboot/ogclient/
438mv /tmp/${NAMEISOCLIENT}.iso.sum /var/lib/tftpboot/ogclient/
439
440
441### vi /etc/grub.d/40_custom
442##
443#menuentry "og cache " {
444#set root=(hd0,4)
445#linux /ogvmlinuz ro vga=788 irqpoll acpi=on boot=oginit  og2nd=sqfs ogprotocol=local ogactiveadmin=true ogdebug=true ip=none
446#initrd /oginitrd.img
447#}
448
449}
450
451
452#@version 0.9 - Prototipo de sistema operativo multiarranque de opengnsys.
453#@author  Antonio J. Doblas Viso. Universidad de Malaga.
454#@date    2010/05/24
455#@version 1.0 - Compatibilidad OpengGnsys X.
456#@author  Antonio J. Doblas Viso. Universidad de Malaga.
457#@date    2011/08/03
458function btogIsoTest {
459#/tmp/iso
460qemu -m 256 -boot d -cdrom ogClient.iso
461}
462
463
464
465
466function getDateTime()
467{
468        echo `date +%Y%m%d-%H%M%S`
469}
470
471# Escribe a fichero y muestra por pantalla
472function echoAndLog()
473{
474        echo $1
475        FECHAHORA=`getDateTime`
476        echo "$FECHAHORA;$SSH_CLIENT;$1" >> $LOG_FILE
477}
478
479function errorAndLog()
480{
481        echo "ERROR: $1"
482        FECHAHORA=`getDateTime`
483        echo "$FECHAHORA;$SSH_CLIENT;ERROR: $1" >> $LOG_FILE
484}
485
486
487
488
489
490
491
492
493
494
495############### No usados en el instalador, solo en actualizaciones.
496#/**
497#         ogClientMount [str_program]
498#@brief   Acceso al 2nd FS del cliente desde el Servidor Opengnsys
499#@param 1 Opciona: scripts o programa a ejecutar para automatizaciones
500#@return  Si no hay parametros: login de acceso.
501#@return  con un parametro: La salida del programa ejecutado
502#@exception
503#@note   
504#@todo   
505#@version 0.9 - Primera versión para OpenGnSys
506#@author  Antonio J. Doblas Viso, Universidad de Málaga
507#@date    2010/02/15
508#*/ ##
509function ogClientMount ()
510{
511        #TODO comprobar que OGFILE y OGFILEMOUNT existe.
512        mount | grep $OGCLIENTFILE > /dev/null || mount $OGCLIENTFILE $OGCLIENTMOUNT -o loop,offset=32256
513        mount | grep $OGCLIENTMOUNT/proc > /dev/null || mount --bind /proc $OGCLIENTMOUNT/proc
514        mount | grep $OGCLIENTMOUNT/sys > /dev/null || mount --bind /sys $OGCLIENTMOUNT/sys
515        mount | grep $OGCLIENTMOUNT/tmp > /dev/null || mount --bind /tmp $OGCLIENTMOUNT/tmp
516        mount | grep $OGCLIENTMOUNT/dev > /dev/null || mount --bind /dev $OGCLIENTMOUNT/dev
517        mount | grep $OGCLIENTMOUNT/dev/pts > /dev/null || mount --bind /dev/pts $OGCLIENTMOUNT/dev/pts
518       
519       
520        [ $# = 0 ] && $(chroot $OGCLIENTMOUNT /sbin/getty 38400 `tty`)
521        [ $# = 1 ] && chroot $OGCLIENTMOUNT $1
522       
523}
524
525#/**
526#         ogClientUnmount
527#@brief   Desmonta el 2nd FS del cliente desde el Servidor Opengnsys
528#@param   
529#@return 
530#@exception
531#@note   
532#@todo   
533#@version 0.9 - Primera versión para OpenGnSys
534#@author  Antonio J. Doblas Viso, Universidad de Málaga
535#@date    2010/02/15
536#*/ ##
537
538function ogClientUnmount ()
539{
540        cd /tmp
541        echo "desmontando cliente espere"
542        sleep 5
543        mount | grep $OGCLIENTMOUNT/dev > /dev/null && umount $OGCLIENTMOUNT/dev || ogClientUnmount
544        mount | grep $OGCLIENTMOUNT/dev/pts > /dev/null && umount $OGCLIENTMOUNT/dev/pts || ogClientUnmount
545        mount | grep $OGCLIENTMOUNT/proc > /dev/null && umount $OGCLIENTMOUNT/proc || ogClientUnmount
546        mount | grep $OGCLIENTMOUNT/sys > /dev/null && umount $OGCLIENTMOUNT/sys || ogClientUnmount
547        mount | grep $OGCLIENTMOUNT/tmp > /dev/null && umount $OGCLIENTMOUNT/tmp || ogClientUnmount
548        mount | grep $OGCLIENTMOUNT > /dev/null && umount $OGCLIENTMOUNT || ogClientUnmount
549        #-d -f -l
550
551}
Note: See TracBrowser for help on using the repository browser.