Decargar repositorios publicos bitbucket con script en bash

El siguiente script para linux llamado gitcloneejercicios.sh permite descargar todos los repositorios públicos de bitbucket y ponerlos en la carpeta /home/paco/NetBeansProjects/ejercicios/

# Por Paco Aldarias, 7/8/2011
p=»/home/paco/NetBeansProjects/»
c=${p}»ejercicios»

if [ ! -d ${c} ];then
 echo «Creando $c»
 mkdir ${c}
fi

cd ${c}

for t in $(seq 1 10);do
     git clone ssh://git@altssh.bitbucket.org:443/1516ceed1/1415ceed1prgt${t}e10
     git clone ssh://git@altssh.bitbucket.org:443/1516ceed1/1415ceed1prgt${t}e20
done

Rename, grep y sed

Seguidamente teneis un script que permite cambiar el tema de las prácticas de java de forma automática.

echo «Renombrando ficheros con Ejemplo05 por Ejemplo07»
rename -v ‘s/Ejemplo07/Ejemplo05/’ *.java

for i in $(ls *.java);do
 echo $i

 echo «Borrando lineas con el texto package»
 cat $i | grep  -Ev package > t$i
 mv t$i $i

 echo «Reemplazando el testo Ejemplo07 por Ejemplo05»
 cat $i | sed ‘s/Ejemplo07/Ejemplo05/g’ > t$i
 mv  t$i $i
done

ROTAR FONDOS CON GNOME Y BASH

# fondorotar.sh
# Por Paco Aldarias
# 8.1.11
# Esta función rota los fondos del escritorio gnome

usuario=»/home/paco»
dirfondos=»/media/sda5/fotos»

lanzador=»$usuario/Escritorio/Fondo.desktop»
icono=»pitivi»

fimagenes=»/tmp/fimagenes.txt»
ftot=»/tmp/ftot.txt»

#***********************
function lanzador
{
echo «#!/usr/bin/env xdg-open» > $lanzador
echo «[Desktop Entry]»>> $lanzador
echo «Version=1.0″>> $lanzador
echo «Type=Application»>> $lanzador
echo «Terminal=false»>> $lanzador
echo «Icon[es_ES]=pitivi»>> $lanzador
echo «Exec=bash /home/paco/fondorotar.sh»>> $lanzador
echo «Name[es_ES]=Fondo $1″>> $lanzador
echo «Icon=gparted»>> $lanzador
echo «Name=Fondo $1″>> $lanzador
}

#***********************
function cambia
{
gconftool-2 -t str -s /desktop/gnome/background/picture_filename $1
#Possible values are «none», «wallpaper» (eg tiled), «centered», «scaled», «stretched»
gconftool-2 -t string -s /desktop/gnome/background/picture_options «stretched»
}

#***********************
function numero
{
num=$1
tema=$(cat $fimagenes | sed -n ${num}L)
cambia «$tema»
lanzador «$tema»
}

#***************** MAIN

# Si no existe lo crea
if [ ! -f $fimagenes ]; then
find $dirfondos -iname ‘*.jpg’ -o -iname ‘*.png’ -o -iname ‘*.svg’ > $fimagenes
cat $fimagenes | wc -l > $ftot
fi

# Total de fondos.
tot=$(cat $ftot)

# Numero aleatorio
num=$(($RANDOM%$tot))
numero $num

ROTAR TEMAS CON UBUNTU GNOME

INTRODUCCIÖN

Si queremos rotar los temas de forma rápida podemos
crear un icono que permita hacer esto rápido.

Si el script se pone en el arranque permitirá
tener un tema diferente cada vez que se arranque.

Una vez crear el archivo debemos ejetutarlo con:
bash rotartema.sh

EL SCRIPT

cat temarotar.sh
ultimo=ultimo.txt
icono=»$HOME/Escritorio/Tema.desktop»

function icono
{
echo «#!/usr/bin/env xdg-open» > $icono
echo «[Desktop Entry]»>> $icono
echo «Version=1.0″>> $icono
echo «Type=Application»>> $icono
echo «Terminal=false»>> $icono
echo «Icon[es_ES]=gparted»>> $icono
echo «Exec=bash /home/paco/temarotar.sh»>> $icono
echo «Name[es_ES]=Tema $1″>> $icono
echo «Icon=gparted»>> $icono
echo «Name=Tema $1″>> $icono

}

function cambia
{

gconftool-2 –type string –set /apps/metacity/general/theme $1
gconftool-2 –type string –set /desktop/gnome/interface/gtk_theme $1
if [ -f /usr/share/backgrounds/$1.jpg ];then
gconftool-2 –type string –set /desktop/gnome/background/picture_filename /usr/share/backgrounds/$1.jpg
fi
gconftool-2 –type string –set /desktop/gnome/interface/icon_theme $1
}

function numero
{
num=$1
c=1
for i in $(ls /usr/share/themes/);do
if [ $c -eq $num ];then
tema=$i
valido=$(echo $tema | grep -v «Contrast»)
if [ $valido ];then
break
fi
fi

let c=c+1
done

echo «Tema $num $tema»
cambia $tema
icono $tema
}

### MAIN

tot=$(ls /usr/share/themes/ | wc -w)
if [ ! -f $ultimo ];then
echo 1 > $ultimo
fi

num=$(cat $ultimo)

if [ $num -gt $tot ];then
num=1
fi

let num=num+1
echo $num > $ultimo
numero $num

Medir el nivel de señal wireless


Debido a que no me llegaba la señal wireless, me puse a mirar como medirla, y además de forma numérica en %.
La versión de linux es ubuntu 8.1.

uname -a
Linux laurita 2.6.27-14-generic #1 SMP Wed Jul 29 09:01:45 UTC 2009 i686 GNU/Linux

La tarjeta wireless es Intel

lspci | grep Wireless
03:00.0 Network controller: Intel Corporation PRO/Wireless 3945ABG [Golan] Network Connection (rev 02)

Podremos ver la calidad de la señal es 47 siendo la máxima de 70:

sudo iwconfig eth1 | grep Quality
Link Quality=47/70 Signal level=-63 dBm Noise level=-127 dBm

Podemos verlo de forma numérica, aparece como 50 aquí:

cat /proc/net/wireless
Inter-| sta-| Quality | Discarded packets | Missed | WE
face | tus | link level noise | nwid crypt frag retry misc | beacon | 22
eth1: 0000 50. -60. -127. 0 0 0 0 0 0

Podemos hacer este script para que nos de el % en tiempo real:
— inicio copiar y pegar

# Por Paco Aldarias
# 11.8.09
# senyal.sh

# Calculo del maximo valor de señal.
max_lin=$( iwconfig eth1 | awk ‘ /Quality/ { print $2 }’ | cut -d «/» -f2)
suma=0
valores=0
promedio=0
maximo=0
minimo=100
while :
do
clear
echo «MEDIDOR DE NIVELES DE SEÑAL»
echo «Por Paco Aldarias. 11.8.09»
# Obtener el valor de la señal
s=$(cat /proc/net/wireless | tail -1 | awk ‘{ print $3 }’ | cut -d «.» -f1)
# Calculo del porcentaje
ps=$(echo » ($s * 100 / $max_lin) » | bc )
let suma=suma+ps
let valores=valores+1
let promedio=suma/valores
if [ $ps -lt $minimo ];then minimo=$ps; fi
if [ $ps -gt $maximo ];then maximo=$ps; fi
echo «Quality link. Calidad señal [MAXIMO $max_lin]: $s -> $ps %»
echo «Minimo: $minimo % ; Maximo: $maximo %; Promedio: $promedio %»
sleep 1
done

— fin copiar y pegar

El resultado es:

MEDIDOR DE NIVELES DE SEÑAL
Por Paco Aldarias. 11.8.09
Quality link. Calidad señal [MAXIMO 70]: 37 -> 52 %
Minimo: 50 % ; Maximo: 52 %; Promedio: 51 %

Otra opcion, la cual nos deja sin red, es usar el programa:
kismet

Otras opciones, según Ramón Onrubia:

Para hacer un scan por consola del nivel de potencia del resto de redes en
tiempo real, con:

airodump-ng interfaz

Para ver el nivel de potencia de la red a la que estoy asociado según
el punto de la casa en que me encuentre y con una frecuencia de un
segundo entre muestreos, tan sólo hago esto:

watch -t -n 1 «iwconfig wlan0 | grep Link»

suponiendo que la tarjeta es la wlan0.