UnDomain Un friki suelto por la red

Calcular dia anterior en Unix

Hoy me he encontrado un pequeño problema: quiero ejecutar un script en el cual necesito saber la fecha de ayer. PERO el sistema operativo es HP-UX.

¿Que pasa con este SO (y la mayoría de Unix en general, excepto Linux)? Pues que el comando date no tiene la opción de calcular fechas pasada (ni futuras), con lo que resulta un poco complicado obtener el valor de una fecha pasada para usarlo como parámetro en cualquier programa.

Para poder conseguir esto he montado el siguiente script, que aviso que no soy precisamente un experto en shell script:

!/bin/sh
 

YEAR=`date "+%Y"`
MONTH=`date "+%m"`
DAY=`date "+%d"`
RESTA=1
 

DAY=$(($DAY+0))
MONTH=$(($MONTH+0))
 

if [ $# -gt 0 ] ; then
if [ $1 -gt 1 -a $1 -lt 9999 ] ; then
  RESTA=$1
fi
fi
 

c=1
while [ $c -le $RESTA ]
do
DAY=$(($DAY-1))
if [ $DAY = "0" ] ; then
  MONTH=$(($MONTH-1))
  DAY=28
  if ! [ $MONTH = "2" ]; then
    DAY=$(($DAY+2))
  fi
  if [ $MONTH = "1" -o $MONTH = "3" -o $MONTH = "5" -o $MONTH = "7" -o $MONTH = "8" -o $MONTH = "10" -o $MONTH = "12" ] ; then
      DAY=$(($DAY+1))
  fi
  if [ $MONTH = "2" ] ; then
    if [ `expr $YEAR % 4` = 0 -o `expr $YEAR % 400` = 0 ] ; then
      if ! [ `expr $YEAR % 400` = 0 ] ; then
        DAY=29
      fi
    fi
  fi
fi
 

if [ $MONTH = "0" ] ; then
  MONTH="12"
  YEAR=$(($YEAR-1))
fi
c=$(($c+1))
done
 

if [ $MONTH -lt 10 ] ; then
MONTH=0$MONTH
fi
 

if [ $DAY -lt 10 ] ; then
DAY=0$DAY
fi
 

echo $YEAR-$MONTH-$DAY

El código puede que no sea lo más óptimo, pero tiene en cuenta los años bisiestos y si le indicas un número como parámetros, resta esa cantidad de días a la fecha actual.
Lo he limitado a un máximo de 9999 días, pero es por poner algun límite.

El formato de salida es fijo a YYYY-MM-DD. Si alguien quiere otro formato de salida, solo tiene que modificar la última línea y poner lo que mas le interese.

Espero que sea de utilidad, y si alguien optimiza el código, pues se agradece ;)

[Escalada a N] Lobos espaciales (IV)

Hoy estamos a día 30 de Abril y puesto que Jordi ha presentado su parte de la escala de W40K, me toca hacer lo mismo a mi... y para variar un poco, voy a copiar lo que ya he puesto en ¡Cargad!:

[Fotografia] Prueba de macro

El otro día, poniendo arena en una peana, me quedó una pepita de pirita en un folio en blanco, y pensé: "voy a probar la macro de la cámara, que nunca he intentado fotografiar algo tan pequeño".

Y este es el resultado:

La verdad es que no está mal, para haberla hecho sin zoom, ¿no?

[Video] Dipping en MagicWash

Después de tanto comentar lo del Dipping y el Magic Wash, aquí está el truco:



Este vídeo lo he preparado para ¡Cargad! :)

Clonar binarios Oracle (Oracle Home)

Algunas veces, necesitamos copiar una BDD entera, pero instalar los binarios desde el principio puede ser un poco pesado si tenemos una gran cantidad de parches instalados.

Esto no suele ser mucho problema si se tratan de servidores distintos, pero si es en el mismo servidor, la cosa cambia.

Para estos casos, una buena opción es clonar la BDD mediante una clonación de binarios (Oracle Home) y una posterior copia homogénea de datos (datafiles, controlfiles, etc...) a nivel de ficheros.

Por el momento, vamos a ver como realizar una clonación completa del Oracle Home.

Tags:

[Escalada a N] Lobos espaciales (III)

La semana pasada publiqué en ¡Cargad! mi parte de la Escalada a N de warhammer 40k, pero se me olvidó por completo publicarlo en mi propio blog... cualquier día de estos perderé la cabeza :P

Bueno, pues como se suele decir, mas vale tarde que nunca, así que aquí traigo mi parte de la escalada correspondiente al mes de Marzo.

Publicidad ¿inteligente?

Durante una conversación sobre las nuevas gafas de realidad aumentada de Google y su posible implantación en la vida cotidiana en un futuro no muy lejano, la publicidad de GMail hace su pequeño aporte.

Publicidad ¿inteligente? O_ô

Tags:

Eskiroles

Esto de los eskiroles no tiene nombre.

¡Como se le ocurre a la pared venir a trabajar en día de huelga! ESKIRLO!!!

Tags:

[SphereWars] Torneo Barnaludica 2012

Este fin de semana he asistido a un torneo de SphereWars en Barnaludica, a 1200 puntos. La partida mas grande que he jugado por el momento.

Como tengo a mi Alianza sin pintar, y me faltan miniaturas, he optado por Adeptos con la siguiente lista:

  • Hombre Oso con poción de curación, papiro táctico, contraataque y +1MOV
  • Hombre Búho con báculo de movimiento, anillo de estadísticas y poción de curación
  • Hombre Toro
  • Hombre Águila
  • Hombre Águila
  • Hombre Topo
  • Hombre Topo
  • Hombre Serpiente
  • Hombre Lince
  • Hombre Lince
  • Hombre Cabra
  • Hombre Cabra
  • Hombre Morena
  • Hombre Morena

[SphereWars] Hombre Aguila Real

De nuevo, publico algo que ya hace tiempo que tengo pintado... aunque en este caso, solo por una semana :P

Es otro Hombre Águila, pero esta vez, con los colores de un Águila Real:

El cuerpo me ha salido demasiado marrón, ya que tendría que ser negro, y el pico demasiado brillante. Pero el resultado final me gusta. Lo malo es que con la foto me he comido parte de las luces de la miniatura... a ver si le pillo el truco a la cámara :P
Lo pinté en una tarde, así que no me puedo quejar del resultado final.

Pues esta miniatura termino con los Adeptos de Malesur... ahora solo me queda comprar alguna para ampliar la banda y terminar con la Alianza, que la tengo abandonada :P.

Distribuir contenido

Amigos



Inicio de sesión


Todo el contenido mostrado ha sido obtenido libremente por la red. Las marcas indicadas son propiedad de sus legítimos dueños y se muestran a modo informativo de manera libre y voluntaria, sin intención publicitaria ni ánimo de lucro. Todo el material propio, y salvo que se indique lo contrario, se encuentra bajo licencia Creative Commons. Si tienes el Copyright de algún contenido o has detectado algna anomalia, por favor, infórmalo al correo undomain@gmail.com para ser corregido cuanto antes. El autor de esta Web no se hace responsable del contenido de terceras personas y de sites ajenos a este.

Powered by Drupal, an open source content management system