Mostrando entradas con la etiqueta LINUX. Mostrar todas las entradas
Mostrando entradas con la etiqueta LINUX. Mostrar todas las entradas

jueves, 18 de febrero de 2021

FIND: Buscar ficheros y algo más.

 *Busca todos los ficheros y sus subdirectorios y elimina los que tengan .. en su nombre.
find . | rename "s/(\.\.)/./"

* Renombrar de forma recursiva. Renombre Fronte por cover.
find . -name "Fronte.jpg" -exec rename 's/Fronte/cover/' {} \;

* Renombrar en subdirectorios los jpeg por jpg., pudiéndose jpeg mayúscula o minúscula.
find . -iname "*.jpeg" -exec rename 'y/jpeg/jpg/' {} \; 

 *Borrar ficheros que empiza por parentesis.

find . -name "*\(*" -exec rm  {} \;

 * Borrar ficheros vacios en la carpeta  /media/backup/

find /media/backup/ -type f -size 0 -exec rm {} \;

miércoles, 13 de marzo de 2019

Grabar audio desde terminal con linux con arecord



Grabar audio con la fecha y hora de grabación desde la terminal de linux.
Crear el fichero grabar.sh con este contenido:

hora=$(date +%d-%m-%y-%H-%M)
arecord -q $hora-grabacion.mp3





miércoles, 17 de agosto de 2011

DESCARGAR TODOS LOS FICHEROS .ZIP DE UN PAGINA: WGET

Si queremos descargar todos los ficheros zip de una página web
pondremos está orden:

wget -r -A .zip http://paginaweb/

Si queremos descargar ficheros con otra extensión cambiaremos zip
por la extensión deseada ( Ejemplo: .jpg, .mpg, etc).

jueves, 17 de marzo de 2011

RENAME: RENOMBRADO DE MULTIPLES ARCHIVOS

La sintaxis es:
rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]

Es interesante probar antes el comando con -n para ver como quedaria
antes de realizar los cambios.

* Para borrar la palabra TEXTO del nombre:
rename 's/TEXTO//' *

* Pasar el nombre a minúsculas.
rename y/A-Z/a-z/ *

* Renombra todas las paginas a html.
rename -v 's/\.htm$/\.html/' *.htm

* Renombra los que tienen un dígito y un guión y quita el guión.
rename 's/(\d)-/$1 /' *.mp3

* Renombra los que tienen un dígitodigito guión por un 1digitodigito.
Añade un 1 al número de canción.
rename -n 's/(\d\d) - /1$1 /' *.mp3


* Quita los primeros dos blancos y deja 1.
rename 's/(\ )/\ /' *.mp3

* Elimina el texto (cd01) de los archivos con extensión mp3.
rename 's/\(cd01\)/ /' *.mp3

 

domingo, 20 de febrero de 2011

SEGURIDAD SERVIDORES EN LINUX

Disponemos de 2 herramientas para temas de seguridad:
  • Porsentry: Es un demonio que permite bloquear aquellas máquinas que escanean la nuestra, con objeto de poder ver puertos abiertos he intentar acceder al servidor.
  • Fail2ban: Es un demonio que permite bloquear aquellas máquinas que realizan accesos indebidos a nuestra máquina un número de veces, debido a probar contraseñas que no son correctas.
Instalación:
sudo aptitude intall portsentry fail2ban

Configuración porsentry:
sudo gedit /etc/portsentry/portsentry.conf

Configuración fail2ban:
sudo gedit /etc/fail2ban/fail2ban.conf

lunes, 3 de enero de 2011

QOS: CONTROL ANCHO BANDA CBQ CON UBUNTU Y COLAS

INTRODUCCIÓN

El contexto es una conexión de Ono, conectado a un
router inhalambrico y una red local 192.168.2.0/24

El objetivo es que el servidor Web no se coma
todo el ancho de banda de salida. Y la conexión
remota ssh vaya rápida.

Este script en bash permite configurar el ancho de banda por servicio. Tambien permite ver que trafico hay en cada separación de los servicios. Se va a crear 6 colas asociadas redes o servidios.



EJECUTARLO:

sudo bash cbq.sh start
[sudo] password for paco:
=================================================
|| QOS CON CQB. Por Paco Aldarias. 12.1.09.
=================================================
|| CONTROL ANCHO BANDA SALIDA.
=================================================
|| INTERFACES Y REDES
=================================================
|| Interface unico ..............: eth0
|| IP eth0 ......................: 192.168.2.2
|| LAN ..........................: 192.168.2.0/24
|| Velocidad subida inet ........:300kbit
|| Velocidad subida lan .........: 100000kbit
=================================================
|| CONFIGURACION VEL.GARANTIZADA/MAX(CEIL):
=================================================
|| COLA 10 INET : 270kbit/300kbit 33kbytes/37kbytes
|| COLA 20 LAN : 90000kbit/100000kbit 11250kbytes/12500kbytes
|| COLA 30 ICMP : 216kbit/300kbit 27kbytes/37kbytes
|| COLA 40 SSH,ET : 189kbit/270kbit 23kbytes/33kbytes
|| COLA 50 DEFAULT : 162kbit/240kbit 20kbytes/30kbytes
|| COLA 60 SERV.WEB: 54kbit/60kbit 6kbytes/7kbytes
=================================================
|| OTROS r2q/quamtum

=================================================
|| R2QL : 1000
|| R2QLR(Entre 1500-60.000) : 102400
|| QUANTUML : 12800
|| R2QI : 200
|| R2QIR(Entre 1500-60.000) : 1536
|| QUANTUMI : 192
=================================================

EL SCRIPT
cat cbq.sh

#http://www.esdebian.org/foro/9949/mldonkey-paraliza-navegacion

#!/bin/bash

# Aclaracion:
# quantum=rate*1024/8/r2q
# rate/r2q >= quantum
# QUANTUM debe estar entre 1500 (valor del MTU) y 60000 (valor maximo del leaf QUANTUM)
# 100mbit = 12.5 mbyte / r2q = 1.2 Mbyte > 60.000
# Por Paco Aldarias


echo "================================================="
echo "|| QOS con CBQ. Por Paco Aldarias. 12.1.09."


########################################
# VARIABLES
########################################

# EN kbits
UPINET=300
UPLAN=100000
DEV=eth0
LAN="192.168.2.0/24"
IP="192.168.2.2"
ALL="0.0.0.0/0"

echo "================================================="
echo "|| CONTROL ANCHO BANDA SALIDA. "
echo "================================================="
echo "|| INTERFACES Y REDES "
echo "================================================="
echo "|| Interface unico ..............: $DEV"
echo "|| IP $DEV ......................: $IP"
echo "|| LAN ..........................: $LAN"
echo "|| Velocidad subida inet ........:${UPINET}kbit"
echo "|| Velocidad subida lan .........: ${UPLAN}kbit"


#Calculamos un 90 % de nuestra tasa de subida
RATEUPINET=$[9*$UPINET/10]
RATEUPLAN=$[9*$UPLAN/10]

RATE10=${RATEUPINET}
RATE20=${RATEUPLAN}
RATE30=$[8*$RATEUPINET/10]
RATE40=$[7*$RATEUPINET/10]
RATE50=$[6*$RATEUPINET/10]
RATE60=$[2*$RATEUPINET/10]

CEIL10=${UPINET}
CEIL20=${UPLAN}
CEIL30=$[10*$UPINET/10]
CEIL40=$[9*$UPINET/10]
CEIL50=$[8*$UPINET/10]
CEIL60=$[2*$UPINET/10]

# http://www.ecualug.org/?q=2006/12/14/comos/como_segmentar_el_ancho_de_banda_de_una_red_con_htb&page=1

# r2q=10 quantum= rate*1024/8/r2q
R2QL=1000
R2QLR=$[${UPLAN}*1024/${R2QL}] # Entre 1500 y 6000
QUANTUML=$[${UPLAN}*1024/8/${R2QL}]

R2QI=200
R2QIR=$[${UPINET}*1024/${R2QI}] # Entre 1500 y 6000
QUANTUMI=$[${UPINET}*1024/8/${R2QI}]

echo "================================================="
echo "|| CONFIGURACION VEL.GARANTIZADA/MAX(CEIL): "
echo "================================================="
echo "|| COLA 10 INET : ${RATE10}kbit/${CEIL10}kbit $[$RATE10/8]kbytes/$[$CEIL10/8]kbytes "
echo "|| COLA 20 LAN : ${RATE20}kbit/${CEIL20}kbit $[$RATE20/8]kbytes/$[$CEIL20/8]kbytes "
echo "|| COLA 30 ICMP : ${RATE30}kbit/${CEIL30}kbit $[$RATE30/8]kbytes/$[$CEIL30/8]kbytes "
echo "|| COLA 40 SSH,ET : ${RATE40}kbit/${CEIL40}kbit $[$RATE40/8]kbytes/$[$CEIL40/8]kbytes"
echo "|| COLA 50 DEFAULT : ${RATE50}kbit/${CEIL50}kbit $[$RATE50/8]kbytes/$[$CEIL50/8]kbytes"
echo "|| COLA 60 SERV.WEB: ${RATE60}kbit/${CEIL60}kbit $[$RATE60/8]kbytes/$[$CEIL60/8]kbytes"

echo "================================================="
echo "|| OTROS r2q/quamtum
"
echo "================================================="
echo "|| R2QL : ${R2QL}"
echo "|| R2QLR(Entre 1500-60.000) : ${R2QLR}"
echo "|| QUANTUML : ${QUANTUML}"
echo "|| R2QI : ${R2QI}"
echo "|| R2QIR(Entre 1500-60.000) : ${R2QIR}"
echo "|| QUANTUMI : ${QUANTUMI}"
echo "================================================="


########################################
# STATUS
########################################

if [ "$1" = "status" ]
then
exit
fi


########################################
# STATUS1
########################################

if [ "$1" = "status1" ]
then
echo "======================================="
echo "|| qdisc"
echo "======================================="

tc -s qdisc show dev $DEV

echo "======================================="
echo "|| class"
echo "======================================="


tc -s class show dev $DEV

echo "======================================="
echo "|| iptables"
echo "======================================="

iptables -t mangle -L MYSHAPER-OUT -n -v
exit
fi

########################################
# STATUS2
########################################

if [ "$1" = "status2" ]
then
watch tc -s qdisc
exit
fi

########################################
# STOP
########################################


# Reset everything to a known state (cleared)
tc qdisc del dev $DEV root 2> /dev/null > /dev/null

iptables -t mangle -D POSTROUTING -o $DEV -j MYSHAPER-OUT 2> /dev/null > /dev/null
iptables -t mangle -F MYSHAPER-OUT 2> /dev/null > /dev/null
iptables -t mangle -X MYSHAPER-OUT 2> /dev/null > /dev/null


if [ "$1" = "stop" ]
then
echo "Shaping removed on $DEV."
exit
fi




########################################
# CONFIGURANDO COLAS
#######################
#################



# Cola padre htb
tc qdisc add dev $DEV root handle 1: htb default 10 r2q $R2QL


#Limitamos el trafico
tc class add dev $DEV parent 1: classid 1:10 htb rate ${RATEUPINET}Kbit ceil ${CEIL10}Kbit burst 6k prio 1 quantum $QUANTUMI #inet
tc class add dev $DEV parent 1: classid 1:20 htb rate ${RATEUPLAN}Kbit ceil ${CEIL20}Kbit burst 6k prio 2 quantum $QUANTUML #lan

# Repartimos el sobrante de ancho de banda equitativamente
tc qdisc add dev $DEV parent 1:10 handle 10: sfq perturb 10
tc qdisc add dev $DEV parent 1:20 handle 20: sfq perturb 10


#Iniciamos iptables
iptables -t mangle -N MYSHAPER-OUT
iptables -t mangle -I POSTROUTING -o $DEV -j MYSHAPER-OUT

###########################
# Marca de paquetes
##########################

# COLA 10. INET

iptables -t mangle -A MYSHAPER-OUT -s $IP ! -d $LAN --j MARK --set-mark 1 # inet
iptables -t mangle -A MYSHAPER-OUT -m mark --mark 1 -j CLASSIFY --set-class 1:10

# COLA 20. LAN.

iptables -t mangle -A MYSHAPER-OUT -s $LAN -d $LAN -j MARK --set-mark 2 # lan
iptables -t mangle -A MYSHAPER-OUT -o lo -j MARK --set-mark 2
iptables -t mangle -A MYSHAPER-OUT -m mark --mark 2 -j CLASSIFY --set-class 1:20


# Clasificamos el trafico de inet

tc class add dev $DEV parent 1:10 classid 1:30 htb rate ${RATE30}Kbit ceil ${CEIL30}Kbit burst 6k prio 3 quantum $QUANTUMI # dns,icmp,router
tc class add dev $DEV parent 1:10 classid 1:40 htb rate ${RATE40}kbit ceil ${CEIL40}kbit burst 6k prio 4 quantum $QUANTUMI # ssh
tc class add dev $DEV parent 1:10 classid 1:50 htb rate ${RATE50}kbit ceil ${CEIL50}kbit burst 6k prio 5 quantum $QUANTUMI # resto
tc class add dev $DEV parent 1:10 classid 1:60 htb rate ${RATE60}kbit ceil ${CEIL60}kbit burst 6k prio 6 quantum $QUANTUMI # www


# Repartimos el sobrante de ancho de banda equitativamente
tc qdisc add dev $DEV parent 1:30 handle 30: sfq perturb 10
tc qdisc add dev $DEV parent 1:40 handle 40: sfq perturb 10
tc qdisc add dev $DEV parent 1:50 handle 50: sfq perturb 10
tc qdisc add dev $DEV parent 1:60 handle 60: sfq perturb 10

# Mldonkey
tc filter add dev $DEV parent 1:10 protocol ip prio 10 u32 match ip tos 0x08 0xff flowid 1:60



########################################
# MARCANDO DE PAQUETES Y ENCOLANDO
########################################

# COLA 30. MAXIMA PRIORIDAD. MAX VELOCIDAD

iptables -t mangle -A MYSHAPER-OUT -p tcp -m tcp --tcp-flags SYN,RST,ACK ACK -s $LAN ! -d $LAN -j MARK --set-mark 3 # MAX PRIORIDAD
iptables -t mangle -A MYSHAPER-OUT -m tos --tos Minimize-Delay -s $LAN ! -d $LAN -j MARK --set-mark 3 # tos
iptables -t mangle -A MYSHAPER-OUT -p icmp -s $LAN ! -d $LAN -j MARK --set-mark 3 # icmp
iptables -t mangle -A MYSHAPER-OUT -s $IP -p udp --sport 27960 -j MARK --set-mark 3 # enemy
iptables -t mangle -A MYSHAPER-OUT -p udp -s $IP --dport 53 -j MARK --set-mark 3 # dns
iptables -t mangle -A MYSHAPER-OUT -m mark --mark 3 -j CLASSIFY --set-class 1:30


# COLA 40

iptables -t mangle -A MYSHAPER-OUT -p tcp -s $IP ! -d $LAN --sport ssh -j MARK --set-mark 4 # ssh
iptables -t mangle -A MYSHAPER-OUT -p tcp -m length --length :64 -j MARK --set-mark 4 # small packets (probably just ACKs)
iptables -t mangle -A MYSHAPER-OUT -m mark --mark 4 -j CLASSIFY --set-class 1:40

# COLA 50

iptables -t mangle -A MYSHAPER-OUT -p tcp -s $IP ! -d $LAN -j MARK --set-mark 5 # Resto
iptables -t mangle -A MYSHAPER-OUT -m mark --mark 5 -j CLASSIFY --set-class 1:50


# COLA 60. MINIMA PRIORIDAD. MIN. VELOCIDAD

iptables -t mangle -A MYSHAPER-OUT -p tcp -s $IP ! -d $LAN -j MARK --sport http --set-mark 6 # www

#f="mltcpdump.txt"
#f="ml-port.txt"
#for i in $(cat $f);do
#if [ $i -gt 1024 ];then
# echo "Marcando $i"
# iptables -t mangle -A MYSHAPER-OUT -p tcp -j MARK --dport $i --set-mark 6 # p2p
# iptables -t mangle -A MYSHAPER-OUT -p udp -j MARK --dport $i --set-mark 6 # p2p
#fi
#done

EDONKEY_PORT=4662
KAD_PORT=8443
OVERNET_PORT=5865
BITTORRENT_PORT=6882
OPENNAP_PORT=9999


iptables -t mangle -A MYSHAPER-OUT -p tcp -j MARK --dport $EDONKEY_PORT --set-mark 6 # p2p
iptables -t mangle -A MYSHAPER-OUT -p udp -j MARK --dport $(($EDONKEY_PORT + 4)) --set-mark 6 # p2p
iptables -t mangle -A MYSHAPER-OUT -p tcp -j MARK --dport $KAD_PORT --set-mark 6 # p2p
iptables -t mangle -A MYSHAPER-OUT -p udp -j MARK --dport $KAD_PORT --set-mark 6 # p2p
iptables -t mangle -A MYSHAPER-OUT -p tcp -j MARK --dport $OVERNET_PORT --set-mark 6 # p2p
iptables -t mangle -A MYSHAPER-OUT -p udp -j MARK --dport $OVERNET_PORT --set-mark 6 # p2p
iptables -t mangle -A MYSHAPER-OUT -p tcp -j MARK --dport $(($EDONKEY_PORT - 1)) --set-mark 6 # p2p
iptables -t mangle -A MYSHAPER-OUT -p tcp -j MARK --dport $BITTORRENT_PORT --set-mark 6 # p2p
iptables -t mangle -A MYSHAPER-OUT -p tcp -j MARK --dport $OPENNAP_PORT --set-mark 6 # p2p

iptables -t mangle -A MYSHAPER-OUT -m mark --mark 6 -j CLASSIFY --set-class 1:60

P2P EN LINUX UBUNTU: MLDONKEY

TENEMOS QUE INSTALAR
sudo aptitude install kmldonkey mldonkey-gui mldonkey-server


DANDO PRIORIDAD BAJA AL MLDONKEY

Crear la carpeta .mldonkey
Crear el script: mldonkey.sh

cat mldonkey.sh

#Por Paco Aldarias
p="kmldonkey"
#p="/usr/bin/mlgui"
w="http://127.0.0.1:4080/"

case "$1" in
start)
echo "Arrancando mldonkey"
rm -f /home/paco/.mldonkey/shared_files.ini.tmp
cd /home/paco/.mldonkey
nohup nice -n 19 mlnet &
sleep 10
$p &
$w &
;;
stop)
killall mlnet &
killall "$p" &
;;
other)
echo "$0 start|stop"
;;
esac

kMLDONEY
Gestiona las descargas. La primera vez que entremos poner usuario: admin, contraseña
la del usuario de linux.

sábado, 1 de enero de 2011

RHYTHMBOX CARATULAS

COPIA DE SEGURIDAD:
Podemos hacer una copia de seguridad de las caratulas de los cds de música
que se encuentra en la carpeta:
~/.cache/rythmbox/covers

ASOCIAR CARATULAS
Poner el nombre cover.jpg para asociar las caratulas.

sábado, 28 de agosto de 2010

COMPARTIR MUSICA LOCALMENTE: Rhythmbox

Es posible tener la música en un ordenador y escucharla en otro,
para ello usaremos el complemento: DAAP, que significa "Compartir música y reproducir la música compartida en tu red local"

Linux Ubuntu.
Versión: Rhythmbox 0.12.8

En el servidor: Vamos a Editar - Complementos. Lo activamos y lo configuramos poniendo un nombre que luego usaremos.

En el cliente: Lo activamos y nos saldra en compartido el nombre que le hayamos dad en el servidor.

miércoles, 19 de mayo de 2010

LATEX KILE CORRECTOR ORTOGRAFICO AUTOMATICO

 Menos faltas de ortografía con kile.

Recientemente he podido activar la corrección ortográfica mientras se escribe. Es decir, mientras escribimos va revisando la ortografía y subrayando en rojo posibles incorrecciones. La versión de kile es la 1:2.1.0 

Instalar: sudo aptitude install kile aspell-es wspanish myspell-es ispanish dictionaries-common 

Configurar kile. Ir a: Setting - Configure kile - Editor - Editing - Spellcheck- Activar la opción: Automatic spell checking enable by default.

martes, 20 de abril de 2010

RECUPERAR FICHEROS BORRADOS: FOREMOST

Instalarlo:
sudo aptitude install foremost

Copiamos el pendrive al disco duro:

dd if=/dev/sdc1 of=/home/paco/info.dd

Si queremos recuperar fotos jpg:
sudo foremost -v -t jpg -i info.dd

Veremos las fotos en la carpeta output creada.

martes, 23 de marzo de 2010

VIDEO TUTORIAL VLSM

Aqui teneis un video tutorial realizado con recordmydesktop, para explicar VLSM.

Corresponde al ejercicio de Cisco Discover 2, Cap.4.1.4

Url:
http://www.youtube.com/watch?v=33o5no1eHLI

lunes, 11 de enero de 2010

DISCO DURO LINUX: Palimpsest




En Karmic Koala tenemos esta utilidad instalada por defecto (y disponible en el Centro de software de Ubuntu) y podemos acceder a ella acudiendo a Sistema > Administración > Utilidad de discos.


La aplicación nos permite montar las unidades, desmontarlas, etiquetarlas, nos ofrece información sobre el sistema de ficheros utilizado, borrar el contenido de determinadas unidades, etc. Además de proporcionarnos información acerca de la “salud” de nuestros dispositivos, gracias al acceso a los datos SMART del disco: Temperatura, tiempo de funcionamiento, número de serie, versión de firmware, sectores erróneos… y un largo etcétera.

viernes, 25 de diciembre de 2009

UBUNTU 9.1 KARMIC POSTINSTALACION

Una vez instalado ubuntu 9.1 se recomienda instalar:

prog="gparted \
gqview \
manpages-es manpages-es-extra \
netspeed \
jigl \
flashplugin-installer \
netpanzer xqf \
gqview \
gpodder \
lookup mailutils \
ssh \
gzip unrar \
mldonkey-server mldonkey-gui kmldonkey \
vlc \
mplayer \
wireshark wireless-tools \
iptraf \
dnsmasq \
fail2ban \
amsn emessene \
gqrellm \
apache2 apachetop libapache2-mod-php5 php5 phpmyadmin \
xpf
"

sudo apt-get update && sudo apt-get upgrade
for i in $(echo $prog);do
echo "************* Instalando $i"
sudo aptitude install $i
done


Corregir problemas de alsa:

sudo add-apt-repository ppa:ricotz/unstable
sudo /etc/init.d/alsa-mixer-save restart
sudo alsa force-reload

Instalar nuevos temas:

sudo add-apt-repository ppa:bisigi
sudo apt-get update
sudo aptitude install zgegblog-themes

martes, 3 de noviembre de 2009

ESCRIBIR EN FICHEROS PDF CON GIMP

Si abrimos los fichero pdf con gimp, podemos escribir sobre ellos texto,
para luego poder imprimir el archivo junto con el texto.

jueves, 10 de septiembre de 2009

Fondos de escritorio en linux: Webilder

INSTRODUCCION

Webilder en un programa que descarga fondos muy bonitos de escritorio con filkr.


INSTALACION


Se instala poniendo:
sudo aptitude install weblider

Si tiene ubuntu hardy, puedes descartarte los ficheros y luego instalarlos:

wget http://www.getdeb.net/download/3065/0
wget http://www.getdeb.net/download/3065/1
sudo dpkg -i webilder-gnome_0.6.3-0~getdeb1_all.deb webilder_0.6.3-0~getdeb1_all.deb

(sacados de esta web: http://www.getdeb.net/release/3065


CONFIGURACION

Boton derecho sobre la barra superior del escritorio y añadimos webilder.

Después pinchamos sobre el icono y elegimos preferencias.
Ver imagen:




En la parte de flikr, debemos abrirla, para luego descargar y arrastrar los archivos que nos bajemos de los canales (hay una camara de fotos en el enlace) de la web de weblider:

http://www.webilder.org/channels/popular/

Un saludo.

martes, 25 de agosto de 2009

CORTAR FICHERO MP3 EN UN TROZO: MP3SPLT-GTK



En cuestión de 2 minutos tuve el trozo que queria.



Estuve viendo la opcion de quedarme con un trozo de un fichero mp3, y encontre MP3SPLT-GTK


Es un programa para linux gráfico, muy sencillo (en inglés).

Instalas antes estas librerias:
sudo aptitude install libaudclient1 libmcs1 libmowgli1

Te lo descargas de aquí:
http://www.ubuntips.com.ar/2009/05/02/mp3splt-gtk-055/

Lo instalas así:
sudo dpkg -i mp3splt-gtk_0.5.7a.intrepid_amd64.deb

Cargas el mp3, lo pones en play, después le das al simbolo + para marcar inicio y fin del trozo, y acontinuación le das al boton superior verde o ok, y ya esta.

Un saludo.

Parar una aplicacion cuando otras se ejecutan

#!/bin/bash
# Por Paco Aldarias.
# 23.8.2009
# idle.sh
# Este scripts en bash permite activar
# mldonkey cuando esta idle o inactivo
# Siendo el estado activo, cuando se ejecuta firefox xql etc


apli="firefox xql et.x86"
temp="/tmp/idle.txt"
ml="/home/paco/mldonkey.sh"
flog="/tmp/idle.log"
log=1

[ -f $flog ] && rm -f $flog
[ $log -eq 1 ] && echo "Arrancado: $(date +%H:%M:%S) $flog" >> $flog

# tiempos en segundos
tini=3m
tidle=1m
tbusy=5m

# Limpiamos si esta en ejecución el script.
if [ -f $temp ];then
kill $(cat $temp)
rm -f $temp
fi

# Si esta en marcha paramos ml
proc=$(ps aux | grep mlnet | grep -v grep | wc -l)
[ $proc -gt 0 ] && $ml stop
[ $1 ] && [ $1 = "stop" ] && exit

sleep $tini

# Bucle infinito
while :
do
descargar=1

# Hacemos esto por cada aplicacion que queremos que para ml
for i in $(echo $apli)
do
if [ $descargar -eq 1 ];then
up=$(ps aux | grep "$i" | grep -v grep | awk '{print $11}')
if [ $up ];then
descargar=0
[ $log -eq 1 ] && echo "UP: $up $i">> $flog
fi
fi
done

# Descargamos. Ponemos en marcha mldonkey
if [ $descargar -eq 1 ]
then
[ $log -eq 1 ] && echo "$(date +%H:%M:%S) Podemos descargar" >> $flog
if [ ! -f $temp ];then
echo $$ > $temp
sh $ml start
fi
sleep $tidle
# Apagamos. Paramos mldonkey
else
[ $log -eq 1 ] && echo "$(date +%H:%M:%S) No podemos descargar" >> $flog
if [ -f $temp ];then
sh $ml stop
rm -f $temp
fi
sleep $tbusy
fi

done

domingo, 2 de agosto de 2009

MT3/4: CREATIVE ZEN MOSAIC EN LINUX

A continuación veremos comandos de consula para gestionar
un dispositivo con protocolo MTP, desde consola linux,
unsando las funciones de libreria mtp.

QUE NECESITAMOS INSTALAR

sudo aptitude install mtp-tools


ESTADO DEL DISPOSITIVO

Para gestionarlo desde consola:

mtp-detect
Conocer la carga de bateria, y otraas propiedades

libmtp version: 0.3.0
Listing raw device(s)
Device 0 (VID=041e and PID=4161) is UNKNOWN.
Please report this VID/PID and the device model to the libmtp development team
Found 1 device(s):
041e:4161 @ bus 0, dev 9
Attempting to connect device(s)
PTP: Opening session


mtp-detect | grep Space

Ver espacio disponible

mtp-detect | grep Capacity

Ver capacidad total

mtp-detect | awk '/Battery level/ {print $6}' | cut -d "(" -f2 | cut -d "%" -f1

Permite ver carga de bateria.

LISTAS DE REPRODUCCION

mtp-playlists
Muestra todas las (play list) listas de reprodccion con sus mp3.

Ejemplo:
Playlist ID: 105932
Name: rosa
Parent ID: 100
Tracks:
69564: RosaVientosPodcast.com - RVP #409 (13 Julio 2009)
70752: RosaVientosPodcast.com - RVP #408 (12 Julio 2009)
...

mtp-getplaylist id
Muestra una playlist

Ejemplo:
mtp-getplaylist 105932
libmtp version: 0.3.0
Device 0 (VID=041e and PID=4161) is UNKNOWN.
Please report this VID/PID and the device model to the libmtp development team
PTP: Opening session
Number of items: 28
69564: RosaVientosPodcast.com - RVP #409 (13 Julio 2009)
70752: RosaVientosPodcast.com - RVP #408 (12 Julio 2009)


mtp-getplaylist -n playlistid
Borra lista

mtp-newplaylist -i 16777249 -i 16777247 -i 16777224 -n milista
Introduce ficheros de música con File ID 16777249,16777247,16777224 dentro de una lista de reproducción llamada milista, la cual la crea si no existe. Podemos ver los File ID con la orden mtp-files.



GESTION DE FICHEROS

mtp-files - lista los ficheros

Ejemplo:
File ID: 110740
Filename: 20090209.mp3
File size 38723605 (0x00000000024EE015) bytes
Parent ID: 96
Storage ID: 0x00010001
Filetype: ISO MPEG-1 Audio Layer 3
File ID: 111925
Filename: 20090208.mp3
File size 38629147 (0x00000000024D6F1B) bytes
Parent ID: 96
Storage ID: 0x00010001
Filetype: ISO MPEG-1 Audio Layer 3

mtp-delfile fichero - borra los ficheros


mtp-getfile - coge un fichero

mtp-sendfile fichero-origen fichero-destino
Envia un fichero

Ejemplo:
mtp-sendfile 20090706.mp3 20090706.mp3
Your system does not appear to have UTF-8 enabled ($LANG="es_ES.UTF-8")
If you want to have support for diacritics and Unicode characters,
please switch your locale to an UTF-8 locale, e.g. "en_US.UTF-8".
libmtp version: 0.3.0

Device 0 (VID=041e and PID=4161) is UNKNOWN.
Please report this VID/PID and the device model to the libmtp development team
PTP: Opening session
Sending 20090706.mp3 to 20090706.mp3
type:mp3,1
Sending file...
Progress: 39621060 of 39621060 (100%)
New file ID: 45632
PTP: Closing session



mtp-sendfile audio.mp3 -f U2
Envia un el fichero f.mp3 a la carpeta U2

mtp-tracks
Muestra las pistas grabadas.

Grabar todos los mp3 nuevos de una carpeta
ls -la | grep mp3 | awk '{print $8}' > temp.txt

for i in $(cat temp.txt);do
echo $i
existe=0
for j in $(mtp-tracks | awk '/Origfilename/ {print $2}');do
if [ $i = $j ];then
existe=1
echo "existe"
fi
done
if [ $existe -eq 0 ];then
echo "Grabando $i"
mtp-sendfile $i Music/$i
fi
done

GESTION DE CARPETAS

mtp-folders Muestra lista de carpetas

Attempting to connect device(s)
Device 0 (VID=041e and PID=4161) is a Creative ZEN Mozaic.
mtp-folders: Successfully connected
Friendly name: paco aldarias
96 Music
2331 ACM Music
100 My Playlists
104 My Recordings

mtp-newfolder U2 96
El numero es la carpeta padre llamada Music





Administrador de archivos
Si queremos gestionarlo mediante el administrador de archivos, haremos:
sudo /sbin/modprobe fuse
mkdir $HOME/zen
mtpfs $HOME/zen
nautilus $HOME/zen

SCRIPT
zen.sh
Descargarlo y ejecutarlo con:
bash ./zen.sh

BIBLIOGRAFÍA.
  1. Linux Magazine. Número. 53. Artículo MTP en Linux. Página 25.