Eliminar guiones en ficheros pdf: rename ‘s/\-//g’ *.pdf
Eliminar guiones en ficheros pdf: rename ‘s/\_//g’ *.pdf
Eliminar blancos en ficheros pdf: rename ‘s/\ //g’ *.pdf
Eliminar guiones en ficheros pdf: rename ‘s/\-//g’ *.pdf
Eliminar guiones en ficheros pdf: rename ‘s/\_//g’ *.pdf
Eliminar blancos en ficheros pdf: rename ‘s/\ //g’ *.pdf
*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 {} ;
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
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).
Gmail tiene videollamada en linux instalando el programa
google-talkplugin:
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/(dd) – /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
Disponemos de 2 herramientas para temas de seguridad:
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
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
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.
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.