Josep Garcia

Blogs

Menú de opciones interactivo en bash

Podemos modificar el comando read de un menú para que no sea necesario pulsar la tecla "ENTER" para elegir una opción.
read -n1 opcion (lee un carácter)

Ejemplo:

#!/bin/bash
clear
while :
do
	echo "Elige una opccion:"
	echo "1. Quien soy?"
	echo "2. Espacio en el disco duro"
	echo "3. Kernel en uso"
	echo "4. Salir"
	read -n1 opcion
	case $opcion in
		1) echo "Eres: ";
     		   whoami;
		   echo;;
		2) echo "Espacio en disco: ";
		   df -h;
		   echo ;;
		3) echo "Kernel: ";
		   uname -a;
		   echo;;
		4) echo "Bye!";
		   exit;;
		*) echo "Error: Elige una opcion valida [1-4]";
		   echo;
		   echo;;
	esac
done

Texto aleatorio en bash

Con este script podemos crear un texto aleatorio en bash, genera un texto tan largo como el número que le pasemos como parámetro, si no le pasamos nada el texto resultante será de 2 caracteres.

#!/bin/bash
function textoAleatorio () {
	LETRAS=( a b c d e f g h i j k l m n o p q r s t u v w x y z 
		 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z )
	TOTAL_LETRAS=${#LETRAS[*]} 
	y=0
	if [ $1 ]; then
		max=$1
	else
		max=2
	fi
	while [ $y -lt $max ]; do
	    x=$(($RANDOM%500)) 
    	    index=$(($RANDOM%$TOTAL_LETRAS)) 
	    echo -n ${LETRAS[$index]}
	    ((y++)) 
	done
}
textoAleatorio $1

Lo guardamos como aleatorio.sh y lo ejecutamos:
$ sh aleatorio.sh 5
lfEJe
$ sh aleatorio.sh 15
VJYFDkGcSDLvDei
$ sh aleatorio.sh 55
zMCnlrPDvTKxHOeiRTOxsXfSqIiUsoCuyPCrwtyRGXAhLmWbAhJgGgm
$ sh aleatorio.sh
xA

Comprobar (chequear) discos duros en linux

Con el comando tune2fs podemos ajustar parámetros en sistemas de ficheros ext2/ext3/ext4. Forma parte del paquete e2fsprogs y está disponible en http://e2fsprogs.sourceforge.net.

En nuestro caso vamos a realizar las operaciones en la partición principal (donde tenemos instalado el SO Linux) /dev/sda5.
# mount | grep sda5
/dev/sda5 on / type ext4 (rw,noatime,commit=0)

Drupal: Insertar imágenes en un post

Para insertar imágenes en un post necesitamos los módulos:
Imce y Bueditor.

Tras descomprimirlos, los copiamos en la carpeta modules y los activamos desde admin/build/modules.

Al crear un post nos aparecerá el editor "Bueditor" con un botón para añadir imágenes tal que así.

Bueditor-Imce

Bash Scripting, ejemplo con arrays

### fichero lenguajes.sh
#!/bin/bash
arr=( "espanyol#hola" "ingles#hello" "frances#bonjour")
len=${#arr[*]}
i=0
while [ $i -lt $len ]; do
lenguaje=$(echo ${arr[$i]} | cut -d"#" -f1 2>/dev/null)
if [ "$lenguaje" == "$1" ]; then
echo ${arr[$i]} | cut -d"#" -f2
fi
i=$(expr $i + 1)
done

$ sh lenguajes.sh espanyol
hola
$ sh lenguajes.sh ingles
hello

Drupal: Mostrar formulario de comentarios debajo del nodo

Para añadir un nuevo comentario a un nodo (post) de drupal, tenemos que ir a la vista completa de este ("Leer más") y pulsar el enlace "Añadir nuevo comentario", que nos lleva a una página tipo: "comment/reply/19#comment-form".

Hay una forma muy sencilla de hacer que el formulario de comentarios aparezca debajo de la vista completa del nodo:
- Instalamos el módulo CCK y lo activamos.
- Vamos a "admin/content/types".
- Elegimos el tipo de contenido que queremos modificar y le damos a "Editar".

Parsear parámetros en bash

Queremos obtener todos los parámetros pasados a un script, las opciones disponibles serán "-a" y "-b":
Ejemplo: ./parsear.sh -a param1 param2 paramN -b param1 param2 paramN

Una opción es usar la función "getopts":

while getopts "a:b:" OPTION;
do
case $OPTION in
a)
echo "OPTION is a"
echo "parametros A= $OPTARG"
;;
b)
echo "OPTION is b"
echo "parametros B= $OPTARG"
;;
esac
done

Migrando a drupal!

Estoy migrando a DRUPAL, algunos de los posts no están disponibles de momento, espero que en unas horas todo vuelva a la normalidad...
Un saludo!

Cambiar el directorio por defecto (datadir) en mysql

Directorio por defecto: /var/lib/mysql
Directorio nuevo: /home/mysql (en nuestro caso)

1- Detenemos el servidor mysql:
Archlinux: # /etc/rc.d/mysqld stop

2- Creamos la nueva carpeta, copiamos los archivos existentes en el directorio por defecto y modificamos el usuario y grupo de los archivos para tener acceso posteriormente:
# cp -r /var/lib/mysql /home
# chown -R mysql:mysql /home/mysql

Qué hacer después de instalar Ubuntu 10.04 "Lucid Lynx"

¿Qué hacer después de instalar Ubuntu 10.04 "Lucid Lynx"?

Después de instalar Ubuntu 10.04 "Lucid Lynx", o actualizar desde Ubuntu 9.10 "karmik koala" o inferiores:

Click en Aplicaciones - Accesorios - Terminal y escribimos:

cd /tmp
wget http://dl.dropbox.com/u/1113424/webupd8/script_ubuntu_10.04_lucid_lynx.sh
chmod +x script_ubuntu_10.04_lucid_lynx.sh
./script_ubuntu_10.04_lucid_lynx.sh

Este script hace lo siguiente:

  • Añade nuevos repositorios (Medibuntu, Getdeb, etc).
  • Se bajan e instalan las últimas actualizaciones.

Categorías

LinuxAndroidBash ScriptingDrupal

Twitter

Twitter Josep Carlet