Archive for the ‘Software’ Category

h1

[bash-tip] Trabajando con fechas

15/04/2014

Trabajar con fechas en una versión actual de bash es algo muy simple, el comando date de la mayoría de las distribuciones es bastante robusto (proveniente del paquete coreutils de GNU Project). Por ejemplo obtener la fecha del día previo al actual (ayer):

date -d=yesterday

Existen también formas de formatearlo según las necesidades, los parámetros se pueden leer el manual del comando (man date) pero los que yo más utilizo son los siguientes:

Parámetro Descripción
%d Día en formato dd (rellena el espacio con cero [0])
%m Mes en formato mm (rellena el espacio con cero [0])
%Y Año en formato yyyy
%D Fecha en formato americano (lo mismo que %m/%d/%y
%F Fecha completa (lo mismo que %y-%m-%d)
%y Últimos dos dígitos del año
%H Hora en  formato hh
%M Minutos en  formato mm
%S Segundos en  formato ss
%T Hora en  formato hh:mm:ss (lo mismo que %H:%M:%S)
%x Fecha en formato local

Para utilizar los parámetros se introduce un signo de suma “+” seguido de los parámetros, vale decir que lo que no es leído como un parámetro se imprime de manera literal, y el resultado es un string o cadena, esto para las asignaciones en scripts. Como pueden notar en la tabla, pueden ver la hora; es muy importante notar esto porque aunque existe el comando time, el mismo no es para mostrar la hora sino para mostrar el tiempo de ejecución de un comando o programa.

Ejemplos:

x3mboy@Liss ~ $ date +%d-%m-%Y
05-02-2015
x3mboy@Liss ~ $ date +%D
02/05/15
x3mboy@Liss ~ $ date +%F
2015-02-05
x3mboy@Liss ~ $ date +%T
10:37:06
x3mboy@Liss ~ $ date +%x
05/02/15
x3mboy@Liss ~ $ date +%D" "%T
02/05/15 10:37:09
Como pueden ver en el último ejemplo, si los parámetros van a estar separados por espacios en blanco, se debe colocar ese espacio entre comillas.

Personalmente utilizo mucho estos comandos en asignaciones de scripts, sobretodo cuando estoy trabajando con archivos que se generan diariamente, pero la razón original por la cual realicé este post es porque en versiones antiguas de bash no existe algo como la opción -d o el parámetro %x, es por ello que he tenido que aprender a manejar el comando date, pues algo que suponemos tan simple como calcular la fecha del día de ayer se vuelve algo un poco complicado. Les dejo este script que hice hace algunos años para trabajar en un BSD con el comando date, sirve para calcular el día de ayer:

https://gist.github.com/X3MBoy/e934c967eac98b6d9c86

Espero les sea de utilidad.

Be Free, Be Linux
X3MBoy

h1

[bash-tip] Instalando Turpial

25/12/2013

Conversando por twitter con Wil Alvarez (@satanas82) Carlos Guerrero (@guerrerocarlos), sugirieron hacer un script de instalación de turpial (de hecho se pusieron más creativos, pero luego iremos con otros cambios), basados en el script de actualización del post anterior.

Bueno, hay muchas cosas en este script que no voy a explicar en este momento, pero lo más importante es el uso de los “if”. Les recomiendo que chequeen esto bastante bien, pues hay muchas cosas que notar en estos condicionales.

Bueno sin más preámbulo, el script:

http://paste.ubuntu.com/6636151/

No coloco el script directamente pues son más de 100 líneas de código.

Be Free, Be Linux
X3MBoy

h1

[bash-tip] Actualizando turpial

19/12/2013

Desde que comenzaron las primeras versiones públicas de turpial (el cliente de microblogging) he estado participando en las discusones del grupo de desarrolladores de tan maravillosa herramienta. Para la última versión (v3.0) he estado haciendo testing y pues para estar al día con las actualizaciones es necesario actualizar 2 cosas: libturpial, el motor que mueve todas las conexiones; y turpial, el front-end de la herramienta.

El problema es que ambas cosas están por separado en github, y hay que actualizar cada cosa por separado. Por ello me he crado un script que haga el trabajo por mí. Lo dejo por acá:


#!/bin/bash
USER_HOME=$(eval echo ~${SUDO_USER})
if [ `whoami` != root ]; then
echo Please run this script using sudo
exit
fi

cd $USER_HOME/libturpial
git pull origin master
sudo python setup.py develop
cd $USER_HOME/turpial
git pull origin development
sudo python setup.py develop

Lo único que tiene de especial este script es que chequea el directorio del usuario antes de convertirse en root para encontrar la ruta de los directorios, lo demás es algo de git e instalación de cosas con setupotools de python. Este script requiere tener instalado sudo en su sistema, cosa que si es un debian-derivated ya viene por defecto, pero en mi sistema (Fedora) no. En estos dos SO he porbado y funciona a la perfección, teniendo cómo único requerimiento que turpial haya sido instalado siguiendo las instrucciones de la wiki de desarrollo de turpial.

Be Free, Be Linux
X3MBoy

h1

Programando con Python

11/11/2009

Logo de pythonEstoy comenzando a programar con Python. Realmente una experiencia muy satisfactoria luego que piensas que mi principal karma con la programación es que para leer ejemplos y “código amigo”, es un problema. Python no es así, ya que sus sintaxis te obliga a identar el código.

Ahora estoy en las bases, y estoy utilizando un manual: Python Para Todos, el cual fué publicado en uno de mis blogs favoritos Mundo Geek.

Pienso luego incursionar en la programación web. Espero ir colocando algunos tutos y trucos.

Saludos,

Be free, Be Linux…