Este es mi pequeño cajón de sastre (o cajón desastre). Un lugar para poner todas esas cosas que resulta útil poder consultar de vez en cuando, pero que no encajan o no tienen suficiente contenido para tener una sección propia.
Reiniciar Linux 'suavemente' cuando se ha quedado colgado (y CTRL+ALT+SUPR no funciona):
Pulsar ALT+SysRq (ImprPant) y sin soltar teclear REISUB (dejando algunos segundos entre cada tecla):
R: raw - teclado en modo directo
E: end - pedirle a los procesos que terminen (si pueden, SIGTERM).
I: kill - matar los procesos que no hayan terminado (forzar su cierre, SIGKILL).
S: sync - Volcar (sincronizar) el buffer de escritura a disco.
U: umount - desmonta los sistemas de ficheros .
B: reboot - reinicia el ordenador.
Conectarse por SSH sin password:
ssh-keygen -t rsa; ssh-copy-id -i ~/.ssh/id_rsa.pub usuario@maquina-remotao ssh-keygen -t rsa; scp ~/.ssh/id_rsa.pub usuario@maquina-remota:~/.ssh/authorized_keys2
Clonar un disco con dd si no hay errores (más rápido al copiar bloques grandes):
dd bs=4M if=/dev/sda of=/dev/sdb
Clonar un disco con dd ignorando errores (ignorando sectores defectuosos tras un desastre):
dd bs=512 if=/dev/sda of=/dev/sdb conv=noerror,sync
Clonar un disco con ddrescue (equivalente a lo anterior):
ddrescue -v /dev/sda /dev/sdb
Hacer una imagen (comprimida de disco) con dd, mostrando el progreso para un disco de 120 gigas:
dd bs=4M if=/dev/sda | pv -brept -s 120g | gzip > imagen.bin.gz
Aun más rebuscado... Hacer una copia de seguridad comprimida de un disco local (de 500GiB) a un equipo remoto de forma segura (sobre SSH) y mostrando progreso:
sudo dd if=/dev/sdc | pv -brept -s 500g | gzip | ssh usuario@maquina-remota dd of=imagen.bin.gz
Regenerar el UUID de una partición (tras clonarla por ejemplo):
tune2fs -U random /dev/sda1
Comprobar el UUID de una partición (para añadirlo a /etc/fstab por ejemplo). Cualquiera de estas alternativas ayudará:
vol_id /dev/sda1blkid /dev/sda1ls -l /dev/disk/by-uuid/
Iniciar / parar / reiniciar un servicio en Debian (y Ubuntu)
sudo /etc/init.d/nombreDelServicio start # stop, restart...
Añadir un servicio en Debian (y Ubuntu):
cd /etc/init.d
sudo cp skeleton nombreDelServicio
sudo chmod u+x nombreDelServicio
vi nombreDelServicio # (editar el script para ejecutar el programa deseado)
update-rc.d nombreDelServicio start 99 2 3 4 5 . stop 0 1 6 .
Eliminar un servicio en Debian (y Ubuntu):
update-rc.d –f nombreDelServicio remove
Listar todo el software instalado (mediante paquetes) en el equipo (para instalarlo en otro equipo tal cual :D ):
dpkg --get-selections > pkg.list
Buscar archivos que contengan cierto texto, y evitar problemas con los archivos que contengan espacios en el nombre:
find . -type f -print0 | xargs -0 grep -l 'cadenaBuscada'o find . -name "patronArchivos" -type f -print0 | xargs -0 grep -l 'cadenaBuscada'Reemplazar todas las coincidencias de texto en un archivo (ver http://www.ee.ucl.ac.uk/~hamed/misc/awk1line.txt):
cat archivo.txt | awk '{gsub(/texto-a-reemplazar/,"texto-reemplazado");print}' > archivo-salida.txt
Copiar un directorio
rsync -av directorioorigen/ directoriodestino/Duplicar un directorio (borra archivos que no existan en origen)
rsync -av --delete directorioorigen/ directoriodestino/Actualizar un directorio (borra archivos que no existan en origen, pero no sobreescribe archivos más nuevos en destino)
rsync -av --delete -u directorioorigen/ directoriodestino/Backup incremental diario de un directorio (las versiones antiguas de archivos modificados se mueven a otro directorio)
rsync -avb --delete --backup-dir=../backup_$(date -d yesterday +%y-%m%-d) directorioorigen/ backup_actual/Backup completo diario, conservando antiguo backup completo y usando sólo el espacio necesario para las diferencias (hard links a los archivos no modificados)
rsync -av --delete --link-dest=../backup_$(date -d yesterday +%y-%m%-d_%H-%M) directorioorigen/ backup_$(date +%y-%m%-d_%H-%M)/
Eliminar los ^M al final de un archivo de texto importado desde Windows; en vi escribir:
:%s/^V^M//g
Evitar que al pegar texto se retabule (conservar la tabulación del texto pegado)::se noai
(http://cumu.li/2008/5/13/recompiling-php5-with-bundled-support-for-gd-on...):
# Instalar herramientas básicas
apt-get install build-essential debhelper fakeroot
# Ruta para el código fuente
cd /usr/src
# Descargar el código de PHP
apt-get source php5
# Instalar las dependencias necesarias para compilar PHP
apt-get build-dep php5
# Editar la configuración
cd php5-5.2.3
vi debian/rules
# Sustituir "--with-gd=shared,/usr " por "--with-gd=shared "
# Compilar (¡lleva un buen rato!)
dpkg-buildpackage -rfakeroot
cd ..
# Instalar el nuevo paquete que hemos compilado con GD incluido.
dpkg -i php5-gd_5.2.3-1ubuntu6.3_i386.deb
# sudo tcpdump -s 0 -l -A 'tcp dst port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'
Instalar OpenSSH (sobre Cygwin)
- Agregar los paquetes Admin -> cygrunsrv y Net -> openssh
- En un terminal bash de cygwin:
ssh-host-config -y- Cuando nos pregunte por "CYGWIN=" responderemos con:
tty ntsec- Iniciamos el servicio:
net start sshd
Ejecutar un comando remoto sobre SSH usando Putty (desde Windows contra una máquina remota Linux por ejemplo) y sin tener que teclear la contraseña cada vez que lo usamos:
plink.exe USUARIO@MAQUINA -pw PASSWORD -P PUERTO "COMANDO REMOTO"
Recent comments
25 weeks 4 days ago
33 weeks 5 days ago
35 weeks 2 days ago
37 weeks 5 days ago
40 weeks 5 days ago
1 year 27 weeks ago
1 year 36 weeks ago
1 year 37 weeks ago
1 year 37 weeks ago
1 year 51 weeks ago