On Tue, 2008-12-09 at 14:40 -0300, Victor Hugo dos Santos wrote: > estoy configurando un par de servidores (aca pink y blue) que quiero > que intercambie papeles diariamente, o sea.. > - los dias pares se detengan todos los servicios en blue y que se > activen todos los servicios en pink > - los dias impares se activen todos los servicios en blue y que se > detengan todos los servicios en pink
Hmm y si se cae el servicio, cual máquina levantas? Se puede saber cual es el objeto de esto? > bueno.. para esto, puse estas lineas en los archivos /etc/crontab de > cada servidor > crontab servidor BLUE > 01 0 2-32/2 * * root /home/victor/scripts/finales/todas_tareas.sh bajar > 10 0 1-32/2 * * root /home/victor/scripts/finales/todas_tareas.sh subir > crontab servidor PINK > 01 0 1-32/2 * * root /home/victor/scripts/finales/todas_tareas.sh bajar > 10 0 2-32/2 * * root /home/victor/scripts/finales/todas_tareas.sh subir Es extraño, porque esto funciona perfectamente aca: [EMAIL PROTECTED]:~$ crontab -l # m h dom mon dow command 0-59/2 * * * * echo par $(date) >> /tmp/test 1-59/2 * * * * echo impar $(date) >> /tmp/test [EMAIL PROTECTED]:~$ tail -f /tmp/test par Tue Dec 9 15:54:02 CLST 2008 impar Tue Dec 9 15:55:01 CLST 2008 par Tue Dec 9 15:56:01 CLST 2008 Una opción es que dejes explícitamente los días en que correrá, algo como esto: BLUE 01 0 2,4,6,8,10,12,14,16,18,20,22,24,26,28,30 * * root bajar.sh 10 0 1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31 * * root subir.sh PINK 01 0 1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31 * * root bajar.sh 10 0 2,4,6,8,10,12,14,16,18,20,22,24,26,28,30 * * root subir.sh Ojo que en los meses con # días impares, BLUE hará la pega 2 días seguidos: el 31 y el 1 del mes siguiente por ejemplo. Si esto es un problema, puedes utilizar este script para saber si un día es par o no, desde una fecha fija (el epoch): --------------------------------- #!/bin/bash python <<EOF import datetime epoch = datetime.datetime.utcfromtimestamp(0) today = datetime.datetime.utcnow() d = today - epoch exit((d.days % 2) == 0) EOF if [ $? == 0 ]; then echo "$? PINK" exit 0 else echo "$? BLUE" exit 0 fi ---------------------------------- Ojo: usar "date +%s" y dividirlo por 86400 _no es lo mismo_! -- Aldrin Martoq <[EMAIL PROTECTED]> http://aldrin.martoq.cl/videopodcast/
signature.asc
Description: This is a digitally signed message part