Util
Util
Por Paco Aldarias Raya
Impreso: 14 de abril de 2006
Email: pacolinux arroba inicia punto es
Web: http://pagina.de/pacodebian
Con Linux Debian. En Valencia (España)
El documento tiene version .html, y .pdf, cambiando en el navegador la parte
final podrás acceder a ambos.
Este documento es de libre reproducción siempre que se cite su fuente.
Realizado con: LATEX
Índice
Índice
1. Mantener un proceso al cerrar la terminal
2. Para ver los directorios que cuelgan
3. Una forma rapida de imprimir nuestros correos: mp
4. Configurar el entorno gráfico
5. Hacer que se abra y cierre el cdroom
6. Dejar el sistema limpio
7. Abrir varios entornos gráficos: startx
8. Saber la ip desde consola
9. Comprobar el iso con el md5
10.Controlar máquinas con ip dinámica
11.Cambiar la resilucion de imagenes jpg
12.Saber si cambia una web
1
1
1
1
2
2
2
2
2
3
3
3
4
Por Paco Aldarias
1/6
Util
13.Evitar lanzar un programa varias veces
14.Para levantar algun demonio caido
15.Obtener el man de forma bonita
16.Apagar el pc si no hay impresion ni usuarios
17.Pasar un fichero pdf a txt y sacar las imagenes
18.Proteger un fichero pdf con contraseñas
4
5
5
6
6
6
1. Mantener un proceso al cerrar la terminal
Si quieres que no se muera un proceso, cuando cierres el terminal, se lanza con:
nohup mldonkey &
2. Para ver los directorios que cuelgan
Instalar:
apt-get install tree
Usos:
tree
tree carpeta
tree -dfi directorio
3. Una forma rapida de imprimir nuestros correos:
mp
Esto es para cuentas imap. Coge todos los correos de /home/paco/Maildir/.hotmail/cur/
y genera un fichero correo.ps
mp -a4 -postscript -organiser franklinp -columns 1 \
-left 80 \
/home/paco/Maildir/.hotmail/cur/* > ~/correo.ps
kghostview ~/correo.ps &
4. Configurar el entorno gráfico
xf86cfg -textmode
Por Paco Aldarias
2/6
Util
5. Hacer que se abra y cierre el cdroom
eject /dev/cdrom; sleep 10s; eject -t /dev/cdrom
6. Dejar el sistema limpio
Esto permimte limpiar los ficheros desistalados:
dpkg --purge $(dpkg -l | grep ^rc | cut -d" " -f3)
7. Abrir varios entornos gráficos: startx
Suponiendo que estamos en el entorno gráfico normal de kde. Pulsamos con-
trol+alt+f2, se abrirá un consola de texto, y ponemos:
startx -- :1
esto abrirá otro entorno grafico.
Para regresar al anterior pulsarmos: Pulsamos control+alt+f2, se abrirá un con-
sola de texto, y pulsarmos Alt + F7
Para regresar al anterior pulsarmos: Pulsamos control+alt+f2, se abrirá un con-
sola de texto, y pulsarmos Alt + F8
8. Saber la ip desde consola
INET_IP=‘/sbin/ifconfig eth0 | grep "inet addr:" | awk ’{print $2}’ | cut -c 6-‘
echo $INET_IP
Se puede tb saber la ip consultando una pagina web http://www.whatismyip.com/,
y viendo la ip que pone:
cat ip.sh
wget http://www.whatismyip.com/
INET_IP=‘cat index.html | grep "Your IP is" | awk ’{print $5}’ | cut -f1 -d "<"‘
echo $INET_IP
9. Comprobar el iso con el md5
El valor: md5sum -c fichero.iso
Debe coincidir con: fichero.md5.asc
Por Paco Aldarias
3/6
Util
10. Controlar máquinas con ip dinámica
Te creas una cadena propia para detectar las conexiones al servidor FTP:
iptables -N entradaftp
Configuras el firewall para pasar las conexiones al servidor FTP por una cadena
en especial:
iptables -t filter -A INPUT -i ppp0 -m tcp -p tcp --dport 21 -j entradaftp
En cron configuras un script que se ejecute cada x minutos:
*/5 * * * *
root
/usr/local/sbin/firewallftp.sh
Y el script que debes crear debe ser algo como:
#!/bin/bash
IPTABLES=/sbin/iptables
TABLA=entradaftp
AMIGOS="amigo1.no-ip.org amigo2.no-ip.org"
# Vaciamos las reglas antiguas
iptables -F $TABLA
for host in $AMIGOS
do
$IPTABLES -A $TABLA -s $host -j ACCEPT
done
Todo esto funciona si en INPUT tienes como regla por defecto DROP para evitar
el ”pequeño”intervalo de actualización que permitiría conexiones no deseadas.
Es un ejemplo. O cómo configuro nfs para permitirle montar mis particiones
compartidas de forma segura y fiable?
Puedes montar un servidor NIS por ejemplo. O usar lo mismo que antes para el
FTP para NFS.
11. Cambiar la resilucion de imagenes jpg
Instalar:
apt-get install libjpeg-progs
Ejecutarlo:
djpeg < foo.jpg | cjpeg -quality 50 > bar.jpg
Por Paco Aldarias
4/6
Util
12. Saber si cambia una web
#!/bin/sh
URL=’http://ww1.msc.es/insalud/oposicionesytraslados/rrhh/consolidacion/puntuaSNF/ConsSNF_puntos.htm’
FICH_BASE=’base.html’
FICH_NUEVO=’nuevo.html’
MAIL=’
[email protected]’
if [ -f $FICH_BASE ];
then
wget -q $URL -O $FICH_NUEVO
diff $FICH_BASE $FICH_NUEVO > /dev/null
if [ $? -ne 0 ];
then
# Aviso por consola
#echo "¡La web a sido modificada!"
# Aviso con mensaje en las X
#xmessage -center "¡La web a sido modificada!"
# Aviso por correo
#echo "¡La web a sido modificada!" | mail $MAIL
mv -f $FICH_NUEVO $FICH_BASE
else
rm -f $FICH_NUEVO
fi
else
wget -q $URL -O $FICH_BASE
fi
13. Evitar lanzar un programa varias veces
#!/bin/sh
RUNFILE=/var/run/test.pid
if [ -e "$RUNFILE" ]; then
echo "$0: Ya estoy corriendo, para eliminar este mensaje ejecuta:\
kill ‘cat ${RUNFILE}‘"
exit 1
fi
trap "rm -f $RUNFILE" EXIT
echo "$$" > $RUNFILE
echo "$0: mátame para terminar este proceso.\
Por Paco Aldarias
5/6
Util
Soy el proceso: ‘cat ${RUNFILE}‘"
while (‘true‘); do
sleep 5
echo -n ’.’
done
exit 0
14. Para levantar algun demonio caido
PID=‘ps -uxcaw | grep ’named’ | awk ’{ print $2 }’‘
if [ "$PID" == "" ]; then
/usr/sbin/named
fi
15. Obtener el man de forma bonita
En modo texto
cat man.sh
#!/bin/sh
ARGS=2
EXIT_BADARG=65
if [ $# != $ARGS ]
then
echo "Uso: ‘basename $0‘ pagina_de_manual archivo_de_texto"
exit $EXIT_BADARG
fi
MANPAGE=$1
TEXTO=$2
‘man $MANPAGE | col -xb > $TEXTO‘
ok=$?
if [ $ok != 0 ]
then
echo "Hubo un error. Nro de error $ok"
exit $ok
else
exit 0
fi
else
echo "No existe la pagina de manual de $MANPAGE"
exit 1
fi
Por Paco Aldarias
6/6
Util
En formato ps y pdf
man man | col -b | groff > resultado
gv resultado.ps
ps2pdf resultado.ps
En formato html con konqueror:
man:/man
16. Apagar el pc si no hay impresion ni usuarios
#!/bin/bash
LOG=/var/log/shutdown.auto
# obtener el numero de usuarios que hay usando el sistema
((NUMERO_USUARIOS = ‘users | wc -w‘))
((HAY_COLA_IMPRESION = ‘lpq | grep -i "no entries" | wc -l‘ == 0))
# tenemos un cero si la cola está vacia
echo Numero de usuarios en el sistema: $NUMERO_USUARIOS
echo Hay trabajos en la cola de impresión: $HAY_COLA_IMPRESION
apagar() (
echo apagado automático del sistema / ‘date‘ / >> $LOG
halt
)
((NUMERO_USUARIOS <= 0)) && ((HAY_COLA_IMPRESION <= 0)) && apagar >> $LOG
17. Pasar un fichero pdf a txt y sacar las imagenes
f=fichero.pdf
t=imagen
pdftotext $f
pdfimages -j $f $t
f=$(ls $t*.ppm)
for i in $f
do
convert $i $i.jpg
done
18. Proteger un fichero pdf con contraseñas
pdftk $1.pdf output $1a.pdf owner_pw passroot user_pw passuser allow printing
Por Paco Aldarias
7/6
Comentarios de: Util (0)
No hay comentarios