Bienvenidos

Todos estos pasos descriptos fueron probados en ambientes productivos

miércoles, 7 de junio de 2017

Oracle Linux Server 6.7 sobre un LDOM en Ultra Sparc T5


En este Articulo, se detalla un paso a paso , para la creacion de un ldom sobre un T5 , y posteriormente la instalacion de Oracle Linux Server 6.7, partiendo de la base que ya tenemos un PDOM con otros LDOMS creados, si tiene que crear un ldom paso a paso lea Este Articulo

El nombre que voy a usar de aqui en adelante para el zpool,hostname y todo lo relacionado a este ldom con oracle linux es "dorclx01" el nombre es por   d=desarrollo, orc=oracle lx=linux 01=Primer Ldom con linux

Primero creo un ZPOOL para el disco del SO
root@t5-2 # zpool create dorclx01_so c0t60050768018107A79000000000000CF3d0
root@t5-2 # zpool list
NAME          SIZE  ALLOC   FREE  CAP  DEDUP  HEALTH  ALTROOT

dorclx01_so  79.5G   126K  79.5G   0%  1.00x  ONLINE  -
laboratorio   199G  10.7G   188G   5%  1.00x  ONLINE  -
rpool         278G   102G   176G  36%  1.00x  ONLINE  -
root@t5-2 #
Le agrego el valor "none" al mountpoint para que No monte el zfs en el PDOM
root@t5-2 # zfs set mountpoint=none dorclx01_so
Creo un Volumen vol01, dentro del Zpool dorclx01 el cual luego lo usare para pasarselo al ldom y este sera visto como un disco, en el cual instalare el Sistema Operativo
root@t5-2 # zfs create -V 75g dorclx01_so/vol01

Ahora creo el LDOM
root@t5-2 # ldm add-domain dorclx01
root@t5-2 # ldm set-vcpu 8 dorclx01
root@t5-2 # ldm set-mem 8g dorclx01
root@t5-2 # ldm ls
NAME             STATE      FLAGS   CONS    VCPU  MEMORY   UTIL  NORM  UPTIME
primary          active     -n-cv-  UART    8     16G      0.4%  0.4%  274d 1h
net1002         active     -n----  5002    8     8G       1.1%  1.1%  271d 1h
sunlab1          bound      ------  5000    8     8G
dorclx01         inactive   ------          8     8G
root@t5-2 #
Agrego la placa de red y el switch al ldom
root@t5-2 # ldm add-vnet vnet1 vsw4 dorclx01
root@t5-2 # ldm add-vds dorclx01-vds0 primary
Agrego el virtual device ( el volumen que cree unas lineas mas arriba )
root@t5-2 #  ldm add-vdsdev /dev/zvol/dsk/dorclx01_so/vol01 vol01@dorclx01-vds0
Agrego los Virtual disk al ldom
root@t5-2 #  ldm add-vdisk vdisk1 vol01@dorclx01-vds0 dorclx01
Agrego la imagen ISO al primary
root@t5-2 # ldm add-vdsdev /sun/OL-201705232017-R6-U7-sparc-dvd.iso oracle-linux@primary-vds0
Agrego la imagen ISO al ldom
root@t5-2 # ldm add-vdisk oracle-linux oracle-linux@primary-vds0 dorclx01
Agrego el autoboot en False para que quede en OBP cuando bootee
root@t5-2 # ldm add-variable auto-boot?=false dorclx01
Le doy start al LDOM
root@t5-2 # ldm start dorclx01
LDom dorclx01 started
root@t5-2 #
Me conecto a la Consola del nuevo LDOM ,
root@t5-2 # telnet 0 5001
Trying 0.0.0.0...
Connected to 0.
Escape character is '^]'.

Connecting to console "dorclx01" in group "dorclx01" ....
Press ~? for control options ..

{0} ok  boot

A partir de aqui, se muestra la salida de lo que va mostrando en el booteo, la recorto y modifico porque es muy larga y no aporta mucho a este documento"


PROMLIB: Sun IEEE Boot Prom 'OBP 4.38.3 2015/11/11 10:38'
PROMLIB: Root node compatible: sun4v
Initializing cgroup subsys cpuset
Initializing cgroup subsys cpu
Initializing cgroup subsys cpuacct
Linux version 4.1.12-94.3.4.el6uek.sparc64 (mockbuild@sparc-ol6-builder-04.us.oracle.com) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-16.0.6) (GCC) ) #1 SMP Mon May 15 1
3:52:26 PDT 2017
bootconsole [earlyprom0] enabled
ARCH: SUN4V
...........................
Initializing cgroup subsys cpu
Initializing cgroup subsys cpuacct
Linux version 4.1.12-94.3.4.el6uek.sparc64 (mockbuild@sparc-ol6-builder-04.us.oracle.com) (gcc 
.......................
Greetings.
anaconda installer init version 13.21.215 starting
mounting /proc filesystem... done
creating /dev filesystem... done
starting udev...udevd[86]: error setting /sys/class/firmware/timeout: No such file or directory
done
mounting /dev/pts (unix98 pty) filesystem... done
mounting /sys filesystem... done
anaconda installer init version 13.21.215 using a serial console
trying to remount root filesystem read write... done
mounting /tmp as tmpfs... done
running install...
running /sbin/loader
detecting hardware...
waiting for hardware to initialize...
detecting hardware...
waiting for hardware to initialize...
Welcome to Oracle Linux Server for sparc64




Luego, por ultimo, al darle a la opcion Reboot, queda en el OBP ( porque lo configuramos asi en el boot?=false ) 
terminating anaconda...done
sending termination signals...done
sending kill signals...done
disabling swap...
        /dev/dm-1
unmounting filesystems...
        /mnt/runtime done
        disabling /dev/loop0
        /dev/pts done
        /selinux done
        /mnt/sysimage/boot done
        /mnt/sysimage/dev/pts done
        /mnt/sysimage/dev/shm done
        /mnt/sysimage/dev done
        /mnt/sysimage/proc done
        /mnt/sysimage/sys done
        /mnt/sysimage/selinux done
        /mnt/sysimage done
waiting for mdraid sets to become clean...
rebooting system
reboot: Restarting system
NOTICE: Entering OpenBoot.
NOTICE: Fetching Guest MD from HV.
NOTICE: Starting additional cpus.
NOTICE: Initializing LDC services.
NOTICE: Probing PCI devices.
NOTICE: Finished PCI probing.

SPARC T5-2, No Keyboard
Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights reserved.
OpenBoot 4.38.3, 8.0000 GB memory available, Serial #83429474.
Ethernet address 0:14:4f:f9:8:62, Host ID: 84f90862.



{0} ok
 Para finalizar, le damos boot , y queda bootedo con Oracle linux sobre SPARC 
 ****** Corto la salida, dejo lo que me parece mas  importante para mostrar ****

                          GNU GRUB  version 2.02~beta3

 +----------------------------------------------------------------------------+
 |*Oracle Linux Server GNU/Linux                                |
 | Advanced options for Oracle Linux Server GNU/Linux           
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 |                                                                            |
 +----------------------------------------------------------------------------+

      Use the ^ and v keys to select which entry is highlighted.
      Press enter to boot the selected OS, `e' to edit the commands
      before booting or `c' for a command-line.
   The highlighted entry will be executed automatically in 0s.
  Booting `Oracle Linux Server GNU/Linux'

Loading Linux 4.1.12-94.3.4.el6uek.sparc64 ...
Loading initial ramdisk ...

PROMLIB: Sun IEEE Boot Prom 'OBP 4.38.3 2015/11/11 10:38'
PROMLIB: Root node compatible: sun4v
Initializing cgroup subsys cpuset
Initializing cgroup subsys cpu
Initializing cgroup subsys cpuacct
Linux version 4.1.12-94.3.4.el6uek.sparc64 (mockbuild@sparc-ol6-builder-04.us.oracle.com) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-16.0.6) (GCC) ) #1 SMP Mon May 15 13:52:26 PDT 2017
bootconsole [earlyprom0] enabled
ARCH: SUN4V
Ethernet address: 00:14:4f:f9:08:62
MM: PAGE_OFFSET is 0xfff8000000000000 (max_phys_bits == 47)
MM: VMALLOC [0x0000000100000000 --> 0x0006000000000000]
MM: VMEMMAP [0x0006000000000000 --> 0x000c000000000000]
Kernel: Using 4 locked TLB entries for main kernel image.
Remapping the kernel... done.
OF stdout device is: /virtual-devices@100/console@1
PROM: Built device tree with 46376 bytes of memory.
MDESC: Size is 14704 bytes.
PLATFORM: banner-name [SPARC T5-2]
PLATFORM: name [ORCL,SPARC-T5-2]
PLATFORM: hostid [84f90862]
PLATFORM: serial# [0099f9b8]
PLATFORM: stick-frequency [3b9aca00]
PLATFORM: mac-address [144ff90862]
PLATFORM: watchdog-resolution [1000 ms]
PLATFORM: watchdog-max-timeout [31536000000 ms]
PLATFORM: max-cpus [1024]
Top of RAM: 0x22ffee000, Total RAM: 0x1ffa62000
Memory hole size: 773MB
Allocated 24576 bytes for kernel page tables.
Zone ranges:
  Normal   [mem 0x0000000030400000-0x000000022ffedfff]
Movable zone start for each node
Early memory node ranges
  node   0: [mem 0x0000000030400000-0x000000006fefffff]
  node   0: [mem 0x000000006ff80000-0x000000006ff8bfff]
  node   0: [mem 0x0000000070000000-0x000000022ff3ffff]
  node   0: [mem 0x000000022ffc0000-0x000000022ffcdfff]
  node   0: [mem 0x000000022ffe6000-0x000000022ffedfff]
Initmem setup node 0 [mem 0x0000000030400000-0x000000022ffedfff]
Booting Linux...
CPU CAPS: [flush,stbar,swap,muldiv,v9,blkinit,n2,mul32]
CPU CAPS: [div32,v8plus,popc,vis,vis2,ASIBlkInit,fmaf,vis3]
CPU CAPS: [hpc,ima,pause,cbcond,aes,des,kasumi,camellia]
CPU CAPS: [md5,sha1,sha256,sha512,mpmul,montmul,montsqr,crc32c]
PERCPU: Embedded 10 pages/cpu @fff800021e000000 s38080 r8192 d35648 u131072
SUN4V: Mondo queue sizes [cpu(131072) dev(16384) r(8192) nr(256)]
Built 1 zonelists in Node order, mobility grouping on.  Total pages: 1038645
Policy zone: Normal
Kernel command line: BOOT_IMAGE=/vmlinuz-4.1.12-94.3.4.el6uek.sparc64 root=/dev/mapper/VolGroup-lv_root ro
log_buf_len individual max cpu contribution: 4096 bytes
log_buf_len total cpu_extra contributions: 4190208 bytes
log_buf_len min size: 1048576 bytes
log_buf_len: 8388608 bytes
early log buf free: 1038696(99%)
PID hash table entries: 4096 (order: 2, 32768 bytes)
Sorting __ex_table...
Memory: 8092632K/8382856K available (6226K kernel code, 2345K rwdata, 2856K rodata, 624K init, 2489K bss, 290224K reserved, 0K cma-reserved)
Hierarchical RCU implementation.
        RCU restricting CPUs from NR_CPUS=2048 to nr_cpu_ids=1024.
RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1024
NR_IRQS:2048 nr_irqs:2048 1
SUN4V: Using IRQ API major 3, cookie only virqs enabled
clocksource stick: mask: 0xffffffffffffffff max_cycles: 0x1cd42e4dffb, max_idle_ns: 881590591483 ns
Console: colour dummy device 80x25
bootconsole [earlyprom0] disabled
PROMLIB: Sun IEEE Boot Prom 'OBP 4.38.3 2015/11/11 10:38'
PROMLIB: Root node compatible: sun4v
Linux version 4.1.12-94.3.4.el6uek.sparc64 (mockbuild@sparc-ol6-builder-04.us.oracle.com) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-16.0.6) (GCC) ) #1 SMP Mon May 15 13:52:26 PDT 2017
bootconsole [earlyprom0] enabled
ARCH: SUN4V
Ethernet address: 00:14:4f:f9:08:62
Kernel: Using 4 locked TLB entries for main kernel image.
Remapping the kernel... done.
OF stdout device is: /virtual-devices@100/console@1
PROM: Built device tree with 46376 bytes of memory.
MDESC: Size is 14704 bytes.
PLATFORM: banner-name [SPARC T5-2]
PLATFORM: name [ORCL,SPARC-T5-2]
PLATFORM: hostid [84f99862]
PLATFORM: serial# [099f9b8]
Memory hole size: 773MB
Allocated 24576 bytes for kernel page tables.
Zone ranges:
Early memory node ranges
Booting Linux...
PERCPU: Embedded 10 pages/cpu @fff800021e000000 s38080 r8192 d35648 u131072
SUN4V: Mondo queue sizes [cpu(131072) dev(16384) r(8192) nr(256)]
Built 1 zonelists in Node order, mobility grouping on.  Total pages: 1038645
Policy zone: Normal
Kernel command line: BOOT_IMAGE=/vmlinuz-4.1.12-94.3.4.el6uek.sparc64 root=/dev/mapper/VolGroup-lv_root ro
log_buf_len min size: 1048576 bytes
log_buf_len: 8388608 bytes
early log buf free: 1038696(99%)
PID hash table entries: 4096 (order: 2, 32768 bytes)
Memory: 8092632K/8382856K available (6226K kernel code, 2345K rwdata, 2856K rodata, 624K init, 2489K bss, 290224K reserved, 0K cma-reserved)
Hierarchical RCU implementation.
 SUN4V: Using IRQ API major 3, cookie only virqs enabled
Brought up 8 CPUs
devtmpfs: initialized
Performance events:
Testing NMI watchdog ... OK.
Supported PMU type is 'niagara5'
VIO: Adding device channel-devices (tx_ino = ffffffffffffffff, rx_ino = ffffffffffffffff)
VIO: Adding device vnet-port-0-0 (tx_ino = 0, rx_ino = 1)
VIO: Adding device vnet-port-0-1 (tx_ino = 2, rx_ino = 3)
VIO: Adding device vnet-port-0-2 (tx_ino = 4, rx_ino = 5)
VIO: Adding device vdc-port-0-0 (tx_ino = 6, rx_ino = 7)
VIO: Adding device vdc-port-1-0 (tx_ino = 8, rx_ino = 9)
SCSI subsystem initialized
TCP established hash table entries: 65536 (order: 6, 524288 bytes)
TCP bind hash table entries: 65536 (order: 7, 1048576 bytes)
TCP: Hash tables configured (established 65536 bind 65536)
NET: Registered protocol family 1
Trying to unpack rootfs image as initramfs...
Freeing initrd memory: 29416K (fff8000071000000 - fff8000072cba000)
futex hash table entries: 262144 (order: 11, 16777216 bytes)
console [ttyHV0] enabled
Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
NET: Registered protocol family 17
rtc-sun4v rtc-sun4v: setting system clock to 2017-06-07 18:15:07 UTC (1496859307)
device-mapper: ioctl: 4.31.0-ioctl (2015-3-12) initialised: dm-devel@redhat.com
sunvdc: vdiska: 157286400 sectors (76800 MB) protocol 1.3
 vdiska: vdiska1 vdiska2 vdiska3
sunvdc: Virtual CDROM vdiskb
sunvdc: vdiskb: 1413328 sectors (690 MB) protocol 1.3
 vdiskb: vdiskb1
sunvnet.c:v1.0 (June 25, 2007)
vnet_port vnet-port-0-0 eth0: Sun LDOM vnet 00:14:4f:fb:b9:68
sunvnet: eth0: PORT ( remote-mac 00:14:4f:f8:53:33 switch-port )
sunvnet: eth0: PORT ( remote-mac 00:14:4f:f9:68:7c )
sunvnet: eth0: PORT ( remote-mac 00:14:4f:fa:75:19 )
udev: starting version 147
dracut: Starting plymouth daemon
aes_sparc64: Using sparc64 aes opcodes optimized AES implementation
sha256_sparc64: Using sparc64 sha256 opcode optimized SHA-256/SHA-224 implementation
dracut: Scanning devices vdiska3  for LVM volume groups
random: lvm urandom read with 6 bits of entropy available
dracut: Found volume group "VolGroup" using metadata type lvm2
dracut: 2 logical volume(s) in volume group "VolGroup" now active
EXT4-fs (dm-0): mounted filesystem with ordered data mode. Opts: (null)
dracut: Mounted root filesystem /dev/mapper/VolGroup-lv_root
dracut: Loading SELinux policy
audit: type=1404 audit(1496859308.368:2): enforcing=1 old_enforcing=0 auid=4294967295 ses=4294967295
SELinux:  Permission execmod in class dir not defined in policy.
SELinux:  Permission execmod in class lnk_file not defined in policy.
SELinux:  Permission attach_queue in class tun_socket not defined in policy.
SELinux:  Class binder not defined in policy.
SELinux: the above unknown classes and permissions will be allowed
audit: type=1403 audit(1496859308.740:3): policy loaded auid=4294967295 ses=4294967295
EXT4-fs (dm-0): re-mounted. Opts: (null)
kjournald starting.  Commit interval 5 seconds
EXT3-fs (vdiska1): using internal journal
EXT3-fs (vdiska1): mounted filesystem with ordered data mode
Adding 7864312k swap on /dev/mapper/VolGroup-lv_swap.  Priority:-1 extents:1 across:7864312k FS
NET: Registered protocol family 10
ip6_tables: (C) 2000-2006 Netfilter Core Team
nf_conntrack version 0.5.0 (65536 buckets, 262144 max)
ip_tables: (C) 2000-2006 Netfilter Core Team
audit: type=1305 audit(1496859318.384:4): audit_pid=988 old=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:auditd_t:s0 res=1
vldc.c:v1.0

Oracle Linux Server release 6.7
Kernel 4.1.12-94.3.4.el6uek.sparc64 on a sparc64

localhost.localdomain login:

Para terminar de configurar, lo basico, como ser  el nombre del host, la ip , netmask , consultar el documento Configuracion Basica de Oracle Linux, Post instalación.

*********** LISTO, tenemos instalado un Oracle Linux sobre SPARC T5  ******* 

Luego desde el PDOM, si quiero conectarme hago
root@t5-2 # telnet 0 5001
Trying 0.0.0.0...
Connected to 0.
Escape character is '^]'.

Connecting to console "dorclx01" in group "dorclx01" ....
Press ~? for control options ..

{0} ok


NOTA: Esta instalacion la realizamos con mi colega Nicolas Morono @nicomorono

lunes, 5 de junio de 2017

Error para levantar procesos de OVO

El error aparece al intentar uno de los procesos de OVO
A continuacion se muestra el error que aparece en el messages, y debajo, los comandos aplicados y la solucion final

Errores del agente de monitoreo
 HP OpenView Operations  opcacta   (Action Agent)  counter for critical events exceeded limit (counter value = 1) (OpC30-526)
ERR: Thu Sep  5 22:50:03 2013: opcacta (19419/1): [uxproc.c:406]: semget(2) failed; cannot create semaphore
No space left on device (OpC20-415)
ERR: Thu Sep  5 22:50:03 2013: opcacta (19419/1): [uxacta.c:468]: counter for critical events exceeded limit (counter value = 1) (OpC30-526)
ERR: Thu Sep  5 22:50:08 2013: opcacta (20229/1): [uxproc.c:406]: semget(2) failed; cannot create semaphore
No space left on device (OpC20-415)
ERR: Thu Sep  5 22:50:08 2013: opcacta (20229/1): [uxacta.c:468]: counter for critical events exceeded limit (counter value = 1) (OpC30-526)
WRN: Thu Sep  5 22:50:38 2013: opcmona (19417/1): [genmona.c:5020]: Can't execute script for monitor OS-SOL-inetdproc. (OpC30-606)
semget(2) failed; cannot create semaphore

Procesos que no puede levantar.
# /opt/OV/bin/ovc
ovcd        OV Control                          CORE         (7047)   Running
ovbbccb     OV Communication Broker             CORE         (7048)   Running
ovconfd     OV Config and Deploy                COREXT       (16051)  Running
coda        OV Performance Core                 COREXT       (16119)  Running
opcle       OVO Logfile Encapsulator            AGENT,EA     (16120)  Running
opcmona     OVO Monitor Agent                   AGENT,EA     (16121)  Running
opcmsga     OVO Message Agent                   AGENT,EA     (16122)  Running
opcacta     OVO Action Agent                    AGENT,EA              Aborted
opcmsgi     OVO Message Interceptor             AGENT,EA     (16127)  Running
#

Hice los siguiente pasos, levanto todo ,lo controlamos y al rato vuelve a dar aborted
/opt/OV/bin/OpC/opcagt -kill
rm /var/opt/OV/tmp/OpC/*
/opt/OV/bin/OpC/opcagt -start
El equipo esta funcionando y sin errores en el messages.

Pero la solucion es borrar los semaforos que esten generando problemas, es decir que hayan quedado colgados.
Los veo con
ipcs -a
y los borro con
ipcrm -m


viernes, 2 de junio de 2017

Procedimiento para cambio de horario

En Argentina, fue normal años atras, que para "aprovechar mas la  luz del sol" se adelantara la hora.

Los pasos que vine haciendo son los siguientes :

Para todo los servidores que tengan como TIMEZONE America/Buenos aires
No es necesario bootear los equipos ni los containers.

Básicamente corremos un script que modifica y compila el nuevo uso horario. Trabaja con un archivo que se llama newbsas que tiene el siguiente formato.
Zone    America/Buenos_Aires    -3:00   -       ART     2016    Oct     18      00:00
                                -2:00   -       ART

Eso le indica que el dia Domingo 18 de octubre a las 00.00 hs cambie el timezone por -2 , es decir, se adelanta 1 hora a la actual, que es gmt +3 .

Abajo estan los nombres de los scripts y su funcion, para poder verlos clickear sobre ellos
el zscp ( que es para copiar de la global a los containers )
el chequear.fechas.ksh  ( hace lo que su nombre indica )
el newbsas ( que contiene el formato que describi mas arriba en este documento )
el compila.TZ.ksh  ( este script compila con el comando zic, lo que contiene el archivo newbsas, lo hace en la zona global y si tiene containers lo hace en cada uno de ellos )
el Orden de ejecucion de estos 5 pasos

Los equipos tienen TZ=GMT+3 ó alguno TZ=Argentina+3 , en estos casos hay que cambiar el TZ a GMT+2 y TZ=Argentina+2 y bootear los equipos.-

Los equipos que tenemos que bootear, los podemos bajar 1 hora antes y levantarlos despues de las 24.

Este procedimiento tambien funciona para Solaris 10 x86 .

Aclaracion. Si no se bootea el equipo, hay que bajar y subir el demonio del cron Porque sino queda con el horario viejo.

Orden de ejecucion

Este es el orden de ejecucion para el cambio de horario

En los Solaris tanto Sparc como x86 que tengan en su /etc/TIMEZONE  America/BuenosAires

En la zona global del equipo, lo que se debe hacer es 
1) Crear el directorio  /usr/scripts/TT
  mkdir –p /usr/scripts/TT
2) chequear las fechas y hora actuales
3)  Crear el archivo newbsas
 vi /var/tmp/newbsas
4) Copiar el archivo newbsas en todas las zonas 
5) Compilar el nuevo Time zone
usar el Compila TZ
ejecutandolo asi  /usr/scripts/TT/./compila.TZ.ksh


***** Este articulo viene del documento principal de procedimiento de cambio de horario
***** llamado  Procedimiento de cambio de horario

Compila TimeZone

Este script debe crearse en /usr/scripts/TT/
Copiar y Pegar

DESDE Aqui -----
#Script Parte 1
BASE=/usr/scripts/TT
SALIDA=$BASE/fechas.zonas.out
DATE=`date '+%m%d%H%M'`
echo " Script Parte 1 relevando los dates del equipo ............" >>$SALIDA.$DATE
zoneadm list -cv|grep zona|awk '{ print $2 }' >$BASE/LISTA
echo "          zona global         " >>$SALIDA.$DATE
echo " date original: ` date`  " >>$SALIDA.$DATE
echo " date universal: ` date -u`" >>$SALIDA.$DATE
echo " TIMEZONE : ` cat /etc/TIMEZONE|grep TZ=` " >>$SALIDA.$DATE
echo " Estado demonio ntp : ` svcs -a |grep ntp` " >>$SALIDA.$DATE
echo "**************************************************" >>$SALIDA.$DATE

for  Z in `cat $BASE/LISTA`
do
echo "             $Z               ">>$SALIDA.$DATE
echo " date original: `zlogin $Z date`  " >>$SALIDA.$DATE
echo " date universal: `zlogin $Z date -u`" >>$SALIDA.$DATE
echo " TIMEZONE : `zlogin $Z cat /etc/TIMEZONE|grep TZ=` " >>$SALIDA.$DATE
echo " Estado demonio ntp : `zlogin $Z  svcs -a |grep ntp` " >>$SALIDA.$DATE
echo "**************************************************" >>$SALIDA.$DATE
done
#Script Parte 2
echo " Script Parte 2 Actualizando fechas............." >>$SALIDA.$DATE
echo " Actualizando TIMEZONE en  zona global ......................" >>$SALIDA.$DATE
echo " resguardando  el archivo /var/tmp/newbsas como  /var/tmp/newbsas.old" >>$SALIDA.$DATE
 cp -p  /var/tmp/newbsas /var/tmp/newbsas.old
cp /usr/scripts/TT/newbsas /var/tmp >>$SALIDA.$DATE
echo "  Observando salida del /var/tmp ...` ls -ltr /var/tmp`" >>$SALIDA.$DATE
echo " Compilando Zona Global con  la nueva configuracion" >>$SALIDA.$DATE
/usr/sbin/zic /var/tmp/newbsas
echo " Observando archivo generado por la compilacion :  ` ls -ltr /usr/share/lib/zoneinfo/America|grep Buen `" >>$SALIDA.$DATE

for  Z in `cat $BASE/LISTA`
do
echo "             $Z               ">>$SALIDA.$DATE
echo " Actualizando TIMEZONE en $Z ......... ......................" >>$SALIDA.$DATE
echo " resguardando  el archivo /var/tmp/newbsas como  /var/tmp/newbsas.old" >>$SALIDA.$DATE
zlogin $Z cp /var/tmp/newbsas /var/tmp/newbsas.old
/usr/scripts/TT/zcp /usr/scripts/TT/newbsas $Z:/var/tmp >>$SALIDA.$DATE
echo "  Observando salida del /var/tmp ...`zlogin $Z ls -ltr /var/tmp`" >>$SALIDA.$DATE
echo " Compilando $Z con  la nueva configuracion" >>$SALIDA.$DATE
zlogin $Z /usr/sbin/zic /var/tmp/newbsas
echo " Observando archivo generado por la compilacion en $Z :  `zlogin $Z ls -ltr /usr/share/lib/zoneinfo/America|grep Buen `" >>$SALIDA.$DATE
echo " date original: `zlogin $Z date`  " >>$SALIDA.$DATE
echo " date universal: `zlogin $Z date -u`" >>$SALIDA.$DATE
echo " TIMEZONE : `zlogin $Z cat /etc/TIMEZONE|grep TZ=` " >>$SALIDA.$DATE
echo "**************************************************" >>$SALIDA.$DATE
done
#Script Parte 3
echo " Script Parte 3 relevando  fechas post actualizacion TIMEZONE ............" >>$SALIDA.$DATE
echo "          zona global         " >>$SALIDA.$DATE
echo " date original: ` date`  " >>$SALIDA.$DATE
echo " date universal: ` date -u`" >>$SALIDA.$DATE
echo " TIMEZONE : ` cat /etc/TIMEZONE|grep TZ=` " >>$SALIDA.$DATE
echo " Estado demonio ntp : ` svcs -a |grep ntp` " >>$SALIDA.$DATE
echo "**************************************************" >>$SALIDA.$DATE

for  Z in `cat $BASE/LISTA`
do
echo "             $Z               ">>$SALIDA.$DATE
echo " date original: `zlogin $Z date`  " >>$SALIDA.$DATE
echo " date universal: `zlogin $Z date -u`" >>$SALIDA.$DATE
echo " TIMEZONE : `zlogin $Z cat /etc/TIMEZONE|grep TZ=` " >>$SALIDA.$DATE
echo " Estado demonio ntp : `zlogin $Z  svcs -a |grep ntp` " >>$SALIDA.$DATE
echo "**************************************************" >>$SALIDA.$DATE
done
*****Hasta Aqui

****** Este articulo viene del documento principal de procedimiento de cambio de horario

Formato de archivo newbsas

Este es el formato que debe tener el archivo newbsas, indica que :
El dia Domingo 18 de Octubre a las 00.00 hs pasamos a estar en GMT -2 , es decir 1 hora adelantada a la hora habitual ( Argetina es GMT +3 )
Copiar y pegar en un archivo nuevo, los datos que estan entre lineas ------ , respetando espacios  en blanco y tabuladores

---------------------------------------------------------------------------------------------------------------------
Zone    America/Buenos_Aires    -3:00   -       ART     2009    Oct     18      00:00
                                -2:00   -       ART
---------------------------------------------------------------------------------------------------------------------





****** Este articulo viene del documento principal de cambio horario 
***** llamado Procedimiento de cambio horario

Chequea Fechas

El script descripto aqui abajo, chequea la fecha y hora de la zona global y de sus zonas no globales

#Script Parte 1
BASE=/usr/scripts/TT
SALIDA=$BASE/chequeando_fechas.zonas.out
DATE=`date '+%m%d%H%M'`
echo " Chequeando fechas del equipo ............" >>$SALIDA.$DATE
zoneadm list -cv|grep zona|awk '{ print $2 }' >$BASE/LISTA
echo "          zona global         " >>$SALIDA.$DATE
echo " date original: ` date`  " >>$SALIDA.$DATE
echo " date universal: ` date -u`" >>$SALIDA.$DATE
echo " TIMEZONE : ` cat /etc/TIMEZONE|grep TZ=` " >>$SALIDA.$DATE
echo " Estado demonio ntp : `  svcs -a |grep ntp` " >>$SALIDA.$DATE
echo "**************************************************" >>$SALIDA.$DATE

for  Z in `cat $BASE/LISTA`
do
echo "             $Z               ">>$SALIDA.$DATE
echo " date original: `zlogin $Z date`  " >>$SALIDA.$DATE
echo " date universal: `zlogin $Z date -u`" >>$SALIDA.$DATE
echo " TIMEZONE : `zlogin $Z cat /etc/TIMEZONE|grep TZ=` " >>$SALIDA.$DATE
echo " Estado demonio ntp : `zlogin $Z  svcs -a |grep ntp` " >>$SALIDA.$DATE
echo "**************************************************" >>$SALIDA.$DATE
done

FIN del script

***** Este articulo viene del documento principal del cambio de horario

Zscp o procedimiento manual

El script zscp, no es de mi autoria, es de un genio llamado Brendan Gregg, y lo que hace es copiar archivos de  una zona global, a todos sus containers. Pero como no le pedi autorizacion para publicar su  script, lo que voy a hacer es describir el procedimiento manual que debemos hacer ( si gustan , lo pueden googlear ) , para replicar el archivo newbsas en todas las zonas.

Debo copiar el archivo newbsas a cada zona , para poder luego compilar el nuevo huso horario.
la forma manual seria asi ;
suponiendo que tenemos un total de 3 zonas no globales
Parados desde la zona global ejecutamos:
cp /usr/scripts/TT/newbsas /export/zona1/root/var/tmp/
cp /usr/scripts/TT/newbsas /export/zona2/root/var/tmp/
cp /usr/scripts/TT/newbsas /export/zona3/root/var/tmp/

**** Este articulo viene del documento principal de cambio horario
***  llamado Procedimiento para cambio de horario