jueves, 27 de octubre de 2011

Ahorrar energía en Ubuntu. Como ahorrar dinero en el ordenador

 A continuación dejo unas pautas básicas para ahorrar dinero con el ordenador:

1- Crea una tarea programada que ejecute este script para que apague tu ordenador si la CPU no se está utilizando. Te recomiendo que leas este post para configurarlo pero utiliza este script que es mejor.

#!/bin/bash
xhost local:mpromber > /dev/null
consumocpu=`uptime` #contiene el consumo de cpu
MINCPUgrande=0; #Contiene el mínimo consumo de cpu, por defecto yo uso 0,
MINCPUchico=90; #Contiene el mínimo consumo cpu, yo por defecto ,90
usoCPUgrande=`echo "$consumocpu" | cut -d" " -f12 | cut -d. -f1`
usoCPUchico=`echo "$consumocpu" | cut -d" " -f12 | cut -d. -f2 | cut -d, -f1`
if [ $usoCPUgrande -eq $MINCPUgrande ]; then
    if [ $usoCPUchico  -lt $MINCPUchico ]; then
        zenity --info --text="Pulsa aceptar para que no se apague el ordenador." --display=:0.0 --timeout=30
        if [ $? -eq "5" ]; then
            shutdown -h now   
        fi
    fi
fi
exit 0
2- Comprar una regleta stand by killer conceptronic  y poner como maestro el CPU. Cuando se apague el ordenador apagará los altavoces, los monitores y todo lo que tenga ahí conectado. Es muy útil.

3- Configura adecuadamente la iluminación del monitor. No hace falta que este la luz al 100. Con 60 es más que suficiente.

4- Si tienes una red montada en casa utiliza sólo la wifi. Los switch, hub, servidores etc... consumen un montón.

5- Si tienes un servidor de datos en casa para música y películas, es hora de jubilarlo, comprar un disco duro de 3 TB y meterlo en tu pc con todos los datos.

6- Si el ratón de láser sigue dando luz cuando tu PC esté apagado es que la bios tiene activado el Wake Up. Tienes dos opciones, o lo desactivas en la bios, o cambias el jumper en la placa base. Normalmente suele estar cerca de los puertos PS2 y son 3 pines. Mueve el jumper 1 hueco a la izquierda y listo.

Continuará....

lunes, 18 de julio de 2011

Apagar Ubuntu cuando la máquina no se utilice

Aquí os dejo un pequeño script que tenéis que poner como cronjob o tarea programada cada minuto.


Modificar el 1 por el nivel de uso que queráis
llamar autoApagado guardar en /usr/bin/ y dar permisos sudo chmod 777 autoApagado
#!/bin/bash
xhost local:mpromber > /dev/null
usoCPU=`uptime | cut -d" " -f12 | cut -d. -f1`
if [ $usoCPU -lt "1" ]; then
    zenity --info --text="Pulsa aceptar para que no se apague el ordenador." --display=:0.0 --timeout=30
    if [ $? -eq "5" ]; then
        shutdown -h now   
    fi
fi
exit 0
Si queréis ser más exactos y usar decimales pues trastear con el script.

Para añadir el cron job
  • sudo gedit /etc/crontab
y añadimos
0-59/5    * * * * *   root    autoApagado
Lo que ejecutará nuestro programa cada 5 minutos 8)

jueves, 24 de marzo de 2011

Generador de enlaces de descargas desde Series Yonkis

Shell + PHP ->Herramientas usadas
Necesitas tener instalado PHP
  • sudo apt-get install php5-cli
Instalación:
series
#!/bin/bash
####
echo "Introduzca el nombre de la serie"
read serie
echo "Introduzca el numero de temporada"
read temporada
echo "Numero de enlaces a mostrar"
read numEnlaces
#####
cd /tmp/
wget "http://www.seriesyonkis.com/serie/"$serie"/" -e robots=off --user-agent="movil Mozilla/5.0 (X11; U; Linux i686; es-CL; rv:1.9.2.13) Gecko/20101206 Ubuntu/10.10 (maverick) Firefox/3.6.13" -O $serie &>/dev/null
cat $serie | awk -F'>' '/^a href/{split($1,F,"\"");print F[2],$NF}' RS='<' &> $serie".enlaces"
grep $temporada"x" $serie".enlaces" &> $serie
egrep -o "http:.*/ " $serie &> $serie".enlaces"
echo $serie" "$temporada" Comienza la descarga"
contador=1
for capitulo in $(cat $serie."enlaces"); do
    wget $capitulo -e robots=off --user-agent="movil Mozilla/5.0 (X11; U; Linux i686; es-CL; rv:1.9.2.13) Gecko/20101206 Ubuntu/10.10 (maverick) Firefox/3.6.13" -O "capitulo" &>/dev/null
    cat "capitulo" | awk -F'>' '/^a href/{split($1,F,"\"");print F[2],$NF}' RS='<' &> "capitulo.enlaces"
    grep "DESCARGAR DE megaupload" "capitulo.enlaces" &> "capitulo"
    egrep -o "http:.*" capitulo | cut -d " " -f1 | head -n$numEnlaces &> "capitulo.enlaces"
    echo $serie" Capitulo "$contador
    for enlace in $(cat "capitulo.enlaces"); do
    echo -n "http://www.megaupload.com/?s=seriesyonkis&d="
        php5 /usr/bin/cleaner_series $enlace
        echo "&confirmed=1"
    done
    rm "capitulo"
    rm "capitulo.enlaces"
    let contador=contador+1
    done
rm $serie
rm $serie".enlaces"
exit 0
 Pastebin http://pastebin.com/CKt3LqCh

cleaner_series

<?php
    function hola($a){
        $d = $a;
        $e = 900+101+43-27-1000;
        $f = "";
        $e +=23+100+114;
        for ($i=0; $i<strlen($d); $i++){
            $f .= chr($e^ ord($d[$i]));
        }
        return $f;
    }
   
    for ($i=1; $i<$argc; $i++){
        $hola = $argv[$i];
        $hola = explode("/",$hola);
        $hola = $hola[6];
        echo hola(urldecode($hola));
    }
?>
Pastebin http://pastebin.com/SLrJzk9W

Guardamos los 2 archivos en el Escritorio y abrimos un terminal
  • chmod 777 series
  • chmod 777 cleaner_series
  • sudo mv series /usr/bin/
  • sudo mv series/usr/bin/
Abrimos un terminal escribimos series y pedirá los datos 1 - Nombre de la serie (Ha de ser el mismo que en series yonkis) 2- la temporada  y 3- El número de enlaces (con 1 basta)

Si esto te parece muy raro o eres un vago redomado utiliza este método:
Este pack incluye 3 scripts, el de series yonkis(2) y el de película aleatoria en divx.info
  • wget www.mma-clips.com/zeyt/series/instalador
  • chmod 777 instalador
  • ./instalador
Listo!
Un saludo!

Series Yonkis - n.js ¿Qué hace?

Esto es lo que usa series yonkis para joder a los robots ya que suelen tener complicada la descarga. En cualquier caso yo lo usé como método rápido de conseguir enlaces frescos para bajar temporadas
var qs = location.search.substring(1);
var nv = qs.split('&');
var url = new Object();
var aux = "AAAAAAAA";

if (location.pathname.split('/').length == 6) {
    aux = location.pathname.split('/')[4]
}
for (i = 0; i < nv.length; i++) {
    eq = nv[i].indexOf('=');
    url[nv[i].substring(0, eq).toLowerCase()] = unescape(nv[i].substring(eq + 1))
}
function urlencode(a) {
    return escape(a).replace('+', '%2B').replace('%20', '+').replace('*', '%2A').replace('/', '%2F').replace('@', '%40')
}
function decrypt_str(a) {
    var b = a;
    var c = 254;
    var d = "";
    for (i = 0; i < b.length; i++) {
        d += String.fromCharCode(c ^ b.charCodeAt(i))
    }
    return d
}
function _utf8_decode(a) {
    var b = "";
    var i = 0;
    var c = c1 = c2 = 0;
    while (i < a.length) {
        c = a.charCodeAt(i);
        if (c > -128) {
            b += String.fromCharCode(c);
            i++
        } else if ((c > 191) && (c < 224)) {
            c2 = a.charCodeAt(i + 1);
            b += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
            i += 2
        } else {
            c2 = a.charCodeAt(i + 1);
            c3 = a.charCodeAt(i + 2);
            b += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
            i += 3
        }
    }
    return b
}
function ccM(a, c) {
    var d = a;
    var e = 900 + 101 + 43 - 27 - 1000;
    var f = "";
    var g = 0;
    var h = 0;
    var b = 0;
    e += 23 + 100 + 114;
    for (i = 0; i < d.length; i++) {
        g = e ^ d.charCodeAt(i);
        if (e > 1) {
            f += String.fromCharCode(g * 1)
        } else {
            f += String.fromCharCode(2 * g)
        }
    }
    return f
}
function cc(a) {
    var c = a;
    var d = 900 + 101 + 43 - 27 - 1000;
    var e = "";
    var f = 0;
    var g = 0;
    var b = 0;
    d += 23 + 100;
    for (i = 0; i < c.length; i++) {
        f = d ^ c.charCodeAt(i);
        if (c.length == 12 || i == c.length * 31 || i == c.length * 1 - 1 || i == c.length * 9 + 3) {
            g = f;
            f += 4;
            g--;
            f -= 9
        } else if (i > 0 && d > 1) {
            b = i * 3;
            while (b > 25) {
                b -= 4
            }
            f = 1 - b + f - 2
        }
        if (d > 1) {
            e += String.fromCharCode(f * 1)
        } else {
            e += String.fromCharCode(2 * f)
        }
    }
    return e
}
function sy1() {
    if (aux.length < 24) {
        aux = urlencode(url.id)
    }
    aux = ccM(_utf8_decode(unescape(aux)));
    var a = aux;
    var b = a.split(":");
    var c = 0;
    for (c = 0; c < b.length; c++) {
        if (b.length > 1) {
            document.write("<br /><span style='font-size: 1.5em'><font color='#FF0000'><b>Parte " + (c + 1) + "/" + b.length + "</b></font></span><br />");
            document.write('<h3><img src="http://images.peliculasyonkis.com/images/tdescargar2.png" title="Descargar" alt="Descargar" style="vertical-align: middle;" /><a href="http://www.megaupload.com/es/?d=' + b[c] + '">DESCARGAR PARTE ' + (c + 1) + ' DESDE MEGAUPLOAD</a></h3>');
            document.write("<br />")
        } else {
            document.write("<br /><h1><a target='_blank' href='http://www.megaupload.com/?s=seriesyonkis&d=" + a + "&confirmed=1'>DESCARGAR EL VIDEO <br />DESDE MEGAVIDEO (REQUIERE ESPERA)</a></h1>");
            document.write("<br /><h3><a target='_blank' href='http://www.megaupload.com/?s=seriesyonkis&d=" + a + "&confirmed=1'>http://www.megaupload.com/?s=seriesyonkis&d=" + a + "&confirmed=1</a></h3>")
        }
    }
}
Como siempre pastebin http://pastebin.com/ZHMTq5q4 Paso seguidos http://donzeyt.blogspot.com/2011/03/java-script-wget-no-rompamosnos-la.html

Que os cunda!

Java Script Wget ? No! - Rompamosnos la cabeza.

Digamos que tenemos un código javascript empaquetado, lo sabemos porque empieza por algo así eval(function((p)(a)(c)(k)(e)(r)){ de Dean Edwards

Pues muy fácil:
1- Ir a
http://dean.edwards.name/packer/

 2- Pegar en el navegador esto
javascript:for%20(i=0;i<document.forms.length;++i)%20{for(j=0;j<document.forms[i].elements.length;++j){document.forms[i].elements[j].removeAttribute(%22readonly%22);document.forms[i].elements[j].removeAttribute(%22disabled%22);}}

3- Pegar el código ofuscado

4-Limpiarlo
http://jsbeautifier.org/

5-PROFIT!

Un saludo!


sábado, 5 de marzo de 2011

MYSQL: Funciones útiles

Ucase en MYSQL
  • UPDATE `tabla` SET `campo` =CONCAT(UCASE(SUBSTRING(`campo`, 1, 1)),LOWER(SUBSTRING(`campo`, 2)));
Str_replace en MYSQL
  • UPDATE `tabla` SET campo=REPLACE(tabla.campo, 'busqueda','reemplazo')
Espero que os sirvan!

martes, 1 de marzo de 2011

Script para ver películas

Aquí os dejo un script que os recomienda aleatoriamente una película y os la abre en el firefox si la elegís. Es un buen sistema para esos días que da pereza escoger y navegar! Enlace PasteBin

#!/bin/bash
    OP=1
    cd /tmp/
    while [ $OP -eq 1 ]
    do
   
        VALOR=`echo $(($RANDOM%9999))`
        wget http://www.divxonline.info/pelicula/$VALOR/Pambufering-All-Day-Long/ &>/dev/null
        cat index.html | egrep "<title>(.)*</title>" | sed -e :a -e 's/<[^>]*>//g;/</N;//ba'
        rm index.html
        echo "1 para byscar otra"
        read OP
        if [ $OP -ne 1 ]; then
            firefox http://www.divxonline.info/pelicula/$VALOR/Pambufering-All-Day-Long/
        fi
    done

martes, 22 de febrero de 2011

Generador de enlaces de descarga directa de Series Yonkis

Bueno, aquí os dejo un proyecto inacabado que espero que alguien retome.
Se trata de un generador de enlaces de descarga basado en la popular web www.seriesyonkis.com , no coge los de megavideo si no los de Descarga Directa

Es un script en bash que recolecta toda la información mediante dos parametros pedidos por teclado: 1 la serie ej: House  y 2 la temporada ej: 7

El principal problema reside en que wget no ejecuta javascript y seriesyonkis oculta sus enlaces mediante una función javascript que está un tanto ofuscada.

Si hay algún gurú de javascript por la zona que sea amante de bash, por favor que continúe con este programa.


Gracias! -> Código en PASTEBIN

#!/bin/bash
####
echo "Introduzca el nombre de la serie"
read serie
echo "Introduzca el numero de temporada"
read temporada
#####
cd /tmp/
wget "http://www.seriesyonkis.com/serie/"$serie"/" -e robots=off --user-agent="movil Mozilla/5.0 (X11; U; Linux i686; es-CL; rv:1.9.2.13) Gecko/20101206 Ubuntu/10.10 (maverick) Firefox/3.6.13" -O $serie &>/dev/null
cat $serie | awk -F'>' '/^a href/{split($1,F,"\"");print F[2],$NF}' RS='<' &> $serie".enlaces"
grep $temporada"x" $serie".enlaces" &> $serie
egrep -o "http:.*/ " $serie &> $serie".enlaces"
echo $serie" "$temporada
for capitulo in $(cat $serie."enlaces"); do
    wget $capitulo -e robots=off --user-agent="movil Mozilla/5.0 (X11; U; Linux i686; es-CL; rv:1.9.2.13) Gecko/20101206 Ubuntu/10.10 (maverick) Firefox/3.6.13" -O "capitulo" &>/dev/null
    cat "capitulo" | awk -F'>' '/^a href/{split($1,F,"\"");print F[2],$NF}' RS='<' &> "capitulo.enlaces"
    grep "DESCARGAR DE megaupload" "capitulo.enlaces" &> "capitulo"
    egrep -o "http:.*" capitulo | cut -d " " -f1 | head -n1 &> "capitulo.enlaces"cat
    for descarga in $(cat "capitulo.enlaces"); do
        wget $descarga -e robots=off --user-agent="movil Mozilla/5.0 (X11; U; Linux i686; es-CL; rv:1.9.2.13) Gecko/20101206 Ubuntu/10.10 (maverick) Firefox/3.6.13" -O "descarga" &>/dev/null
        cat "descarga" | awk -F'>' '/^a href/{split($1,F,"\"");print F[2],$NF}' RS='<' &> "descarga.enlaces"
        cat "descarga.enlaces"
        rm "descarga.enlaces"
        rm "descarga"
    done;
    rm "capitulo"
    rm "capitulo.enlaces"
done
rm $serie
rm $serie".enlaces"
exit 0

jueves, 3 de febrero de 2011

Problemas dependencias Ubuntu

Cuando tengamos un problema con las dependencias de nuestro sistema operativo o nos retenga algunas actualizaciones lo recomendable es ejecutar el siguiente comando:
  • sudo aptitude full-upgrade
Mano de santo oiga!

miércoles, 2 de febrero de 2011

Ejecutar comandos con sudo al iniciar Ubuntu

Anteriormente mencioné como hacer scripts para montar automáticamente las particiones compartidas en la red. Al comando le llamé amistosamente montar, pero... hay que ejecutarlo todo el rato al iniciar el ordenador, algo que es poco eficiente.

Por ello mismo investigué y descubrí el script rc.local.

  • sudo gedit /etc/rc.local

Una vez se nos abra el editor de texto añadiremos antes del exit 0 nuestro comando
Que dando algó así:
montar
firefox
thunderbird
emesene
rythmbox
exit 0
Guardamos y cuando iniciemos voilá, ya funciona.