utilidades

Service v2

Posted in Linux, Servidor, utilidades on Agosto 7th, 2009 by admin – Be the first to comment

La verdad me ha resultado muy útil el script del “service” así que lo he modificado para agregarle un detalle, con esta nueva modificación se pueden iniciar varios servicios en una sola linea por ejemplo:

service apache2 mysql ssh start

En este caso estamos iniciando el servidor apache, mysql y el ssh todo en una linea.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#! /bin/bash
 
nparam=$#
 
if [ $nparam -lt 2 ];
then
 
	echo "Faltan parametros, por los menos debe especificar un servicio (/etc/init.d/) y una accion (start, stop, status, restart)"
 
fi
 
nserv=$(($nparam - 1))
IFS=','
 
for ((i=1; i<=$nserv; i++));
do
 
	service=`echo "$*"| cut -d ',' -f $i`
	ls /etc/init.d/$service > /dev/null  2> /dev/null
 
	if [ $? -gt 0 ];
	then
 
		echo "El servicio $service no existe"
		exit
 
	fi
 
done
 
action=`echo "$*"|cut -d ',' -f $(($nserv + 1))`
 
for ((i=1;i<=$nserv;i++));
do
 
	service=`echo "$*"| cut -d ',' -f $i`
	echo $service
	sudo /etc/init.d/$service $action
 
done

El único problema que encontré fue para listar los parámetros que estoy usando un “for” y:

service=`echo "$*"| cut -d ',' -f $i`

Si alguien conoce una forma mas elegante por favor avise.

Esto lo probé en Ubuntu 8.04.

Numeros aleatorios en consola

Posted in Linux, utilidades on Julio 27th, 2009 by admin – Be the first to comment

Hoy me encontré con el problema de generar números aleatorios en la consola, después de jugar un rato con “/dev/random”, lo logre:

od -An -N2 -i /dev/random

Para generar números aleatorios del 1 al 10 pueden hacer:

echo "(`od -An -N2 -i /dev/random`%10)+1" | bc

¿Y para que sirve esto?
En mi caso fue muy útil, gracias a esto pude decidir que película iba a ver!. Fue fácil puse todas las películas en una lista, y después la magia:

l=$(cat f | wc -l);n=$(echo "(`od -An -N2 -i dev/random`%$l)+1" | bc);cat f | head -n$n | tail -n1

Donde “f” es el archivo con la lista de las películas.

Un “service” en Ubuntu

Posted in Linux, Servidor, utilidades on Junio 24th, 2009 by admin – Be the first to comment

“service” es un script que viene con las distribuciones de “Red Hat”, “Fedora” y sus derivados, que es muy útil para manipular los servicios (iniciar, detener, reiniciar). Lo que hice fue escribir mi propio script para manipular los servicios en Ubuntu.

Acá les dejo el código fuente (perdon por la indentación pero el wordpress no me deja):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#! /bin/sh
 
comando=$1
accion=$2
 
if [ "$comando" = "" ];
then
	echo "Falta el nombre del servicio"
	exit
fi
 
ls /etc/init.d/$comando 2> /dev/null
 
if [ $? -gt 0 ];
then
	echo "El servicio no existe"
	exit
fi
 
if [ "$accion" = "" ];
then
	echo "Falta la accion start/stop/restart/status"
	exit
fi
 
sudo /etc/init.d/$comando $accion

Para usarlo pueden crear el archivo usando:

vim service

Y pegan el código fuente dentro, también pueden crear el archivo por otros medios (por ejemplo usando gedit)

Luego le damos permisos de ejecución:

chmod +x service

Y como root (sudo -s) copiamos el script a:

cp service /usr/bin/

Y listo ahora podemos entrar desde una terminal y probarlo:

service apache2 start

En este caso estamos poniendo a correr apache, para ver una lista de todos los servicios disponibles en nuestras máquinas podemos hacer:

ls /etc/init.d

Yo lo he probado en Ubuntu 8.04, si alguien lo prueba en alguna otra versión de Ubuntu y encuentra problemas avisen o envien las correcciones del script.

Abrir en una terminal

Posted in Linux, utilidades on Mayo 27th, 2009 by admin – 1 Comment

Si trabajas mucho en la consola este plugin para Nautilus te va a evitar muchos “cd”. Como dicen que una imagen vale mas que 1000 palabras:

Abrir en un terminal

Abrir en un terminal

Para instalarlo en Ubuntu:
apt-get install nautilus-open-terminal

Cierran todos las ventanas de Nautilus:
pkill nautilus

Y debería estar funcionando.
Yo lo probé en Ubuntu 8.04.