En este partado hemos colocado todas las aportaciones que los coordinadores TICs han ido aportando sobre como sobrevivir en un centro TIC.... Y tener tiempo para trabajar como coordinadores docentes de un proyecto (¡eso es lo que somos!)
sysctl
Configurar los paràmetros del kernel en tiempo de ejuecución.
Ejemplos: sysctl -a
adduser
añadir usuario de sistema.
Ejemplos: adduser pepe, adduser -s /bin/false pepe
userdel
eliminar usuario de sistema
Ejemplos: userdel pepe
usermod
modificar usuario de sistema
Ejemplos: usermod -s /bin/bash pepe
df
disk free. espacio en disco disponible. Muy util.
Ejemplos: df, df -h
uname
Informacion sobre el tipo de unix en el que estamos, kernel, etc.
Ejemplos: uname, uname -a
netstat
la informacion sobre las conexiones de red activas.
Ejemplos: netstat, netstat -ln, netstat -l, netstat -a
traceroute
herramienta de red que nos muestra el camino que se necesita para llegar a otra maquina.
Ejemplos: traceroute www.rediris.es
du
disk use. uso de disco. Muestra el espacio que esta ocupado en disco.
Ejemplos: du *, du -sH /*, du -sH /etc
ifconfig
On Linux systems, the ethernet device is typically
called eth0. In order to find the MAC address of the ethernet device,
you must first become root, through the use of su. Then, type ifconfig
-a and look up the relevant info.
For example:
# ifconfig -a eth0
Link encap:Ethernet HWaddr 00:60:08:C4:99:AA
inet addr:131.225.84.67 Bcast:131.225.87.255 Mask:255.255.248.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:15647904 errors:0 dropped:0 overruns:0
TX packets:69559 errors:0 dropped:0 overruns:0
Interrupt:10 Base address:0x300
The MAC address is the HWaddr listed on the first line.
In the case of this machine, it is 00:60:08:C4:99:AA.
route
gestiona las rutas a otras redes.
Ejemplos: route, route -n
iptraf
muestra en una aplicacion de consola TODO el trafico de red IP, UDP, ICMP.
Permite utilizar filtros, y es SUMAMENTE UTIL para diagnostico y depuracion de firewalls
Ejemplos: iptraf
tcpdump
vuelca el contenido del trafico de red.
Ejemplos: tcpdump, tcpdump -u
lsof
muestra los ficheros(librerias, conexiones) que utiliza cada proceso
Ejemplos: lsof, lsof -i, lsof | grep fichero
lsmod
Muestra los modulos de kernel que estan cargados.
Ejemplos: lsmod
modprobe
Trata de instalar un modulo, si lo encuentra lo instala pero de forma temporal.
Ejemplos: modprobe ip_tables, modprobe eepro100
rmmod
Elimina modulos del kernel que estan cargados
Ejemplos: rmmod <nombre de modulo>
sniffit
Sniffer o husmeador de todo el trafico de red. No suele venir instalado por defecto.
Ejemplos: sniffit -i
who
El comando "who" informa de los usuarios que se hallan presentes en el sistema
Estas son algunas aplicaciones que os pueden interesar.
Kino es una aplicación que nos permite editar directamente nuestras grabaciones con Guadalinex. Contiene algunas herramientas interesantes que permite la realización de fundidos entre varias fuentes vídeos, asi como la programación de diversos tipos de "transiciones".
Si dispones de la clave del root, su instalación puede resultar muy rápida desde el gestor de paquetes synaptic.
Si deseas obtener más información sobre esta aplicación, pulsa este enlace.
En este documento se explica el funcionamiento del cañón virtual que viene en el Guadalinex 2004 instalado en los centros TIC.
Ver documento
Esto es una lista " no completa" de algunas de las aplicaciones que podemos encontrar en linux.
Si encuentras alguna más, edita esta página y añade tus aportaciones
Entornos de Escritorio
Gnome
Alacarte : Editor de menús.
Beagle-gui: Búsqueda de escritorio.
byzanz: Graba videos del escritorio.
compiz: Para poder activar nuevos efectos del escritorio.
gdesklets: Pequeñas aplicaciones para el escritorio.
Aplicaciones
Gráficos
blender: Modelado 3d, super poderoso, estilo 3d studio.
Inkscape: Para gráficos vectoriales, estilo Frehand.
wings: Modelado subdivisión 3d, moderno y excelente.
Internet Gráfica
amsn: clon del messenger.
amule: Para explorar la red edonkey.
azureus: Cliente para el torrente
bittorrent-gui: Ciente original del torrente,mucho mas liviano que
azureus, cualquiera de los dos cumple buena función.
bluefish: Para diseñadores Web, estilo Dreamweaver.
fwbuilder: Para construir reglas del iptables firewall (Usuarios Avanzados)
gtk-gnutella: Cliente para red gnutella (como Limewire)
gwget: Interfaz de usuario para el manejador de descargas más poderoso, wget.
licq: Cliente para ICQ
linphone: Telefonía, voz sobre IP.
mldonkey: Cliente para diferentes redes P2P.
screem: Interfaz para diseño web.
thunderbird: Cliente para leer correo electrónico. Semejante a Outlook,
pero mucho mejor.
xchat: Cliente para I.R.C. (Chat)
Oficina/Productividad
abiword: Si no quieres instalar el openoffice, esta es una buena opción para procesador de textos.
openoffice-base : Frontend para bases de datos, nuevo en openoffice.
tinyerp: ERP, sirve para administrar las finanzas.
tinyerp-server: Servidor para EPR.
xchm: Aplicación para visualizar documentos .chm.
Sonido y Video
audacity: Editor de audio Multitrack
audacity-nonfree: Solo aparece si está instalado el repositorio Livna
k3b: Aplicación para quemar CD/DVD (Mejor que Nero)
k3b-extras-nonfree: Extensiones para k3b. Livna
gnomeradio: Aplicación gráfica para utilizar el radio de las tarjetas bttv.
grip: Aplicación para extraer audio de los CDs y comprimirlo en OGG o en mp3(requiere lame).
mplayer: Reproductor de Vídeo. Livna
mplayer-gui: Frontend para mplayer. Livna
rosegarden4: Aplicación para notación de midis, Soporta VST y VSTi.
tvtime: Aplicación para ver TV de las tarjetas bttv-saa7130, etc..
vlc: Reproductor de multimedia multiplataforma.
xine: Reproductor multimedia.
xmms: Reproductor de audio, super completo(mp3,wma,mpc,ogg..)
En este pequeño manual podemos ver como se utiliza el cañón virtual para ver el escritorio y para ver vídeos.
Ver el manual
Debian y Ubuntu permiten crear perfiles para adaptar, casi de forma automática, nuestro portatil (u otro ordenador) de las características de la red de nuestro puesto de trabajo (Ej CEP) a la red definida en nuestra casa:
El procedimiento es el siguiente:
En el archivo /etc/network/interfaces definimos dos interfaces lógicas: casa y trabajo (por ejemplo cep).
"casa" tiene dirección estática.
"cep" utiliza dhcp.
Por defecto se activa la interfaz "casa".
El archivo me ha quedado de la siguiente manera:
iface casa inet static
wireless-essid essid_casa
address 192.168.2.2
netmask 255.255.255.0
gateway 192.168.2.1
auto eth1=casa
iface cep inet dhcp
wireless-essid cepjerez
Para activar el perfil "cep", haría:
# ifdown eth1
# ifup eth1=cep
Esto se puede realizar con un archivo script que asociamos por ejemplo a un lanzador.
Quizás algunos conoceis el Cantasia, bueno pues ahora en linux tenemos una aplicación similar.
He colocado en esta misma página el paquete en formato deb, de forma que si tienes una distribución basada en debian, quizás lo puedas utilizar directamente.
De todas formas este paquete también esta disponible en otras distribuciones: xvidcap_1.1.5_i386.deb
Lo primero es instalar los paquetes debian asociados al servicio Bluetooth, en este caso yo utilizo el proyecto bluez
Luego conectamos el Bluetooth, en mi caso un dispositivo USB, y veremos si una vez instalados todos los paquetes anteriores lo detecta. En caso afirmativo creará un nuevo dispositivo: hcix
En mi caso este es el resultado:
| root@pioRemoto:/home/pio# sdptool browse 00:0F:DE:6B:92:E5 Browsing 00:0F:DE:6B:92:E5 ... Service Name: Dial-up Networking Service RecHandle: 0x10000 Service Class ID List: "Dialup Networking" (0x1103) "Generic Networking" (0x1201) Protocol Descriptor List: "L2CAP" (0x0100) "RFCOMM" (0x0003) Channel: 1 Profile Descriptor List: "Dialup Networking" (0x1103) Version: 0x0100 Service Name: Voice gateway Service RecHandle: 0x10002 Service Class ID List: "Headset Audio Gateway" (0x1112) "Generic Audio" (0x1203) Protocol Descriptor List: "L2CAP" (0x0100) "RFCOMM" (0x0003) Channel: 3 Profile Descriptor List: "Headset" (0x1108) Version: 0x0100 Service Name: Serial Port 1 Service RecHandle: 0x10003 Service Class ID List: "Serial Port" (0x1101) Protocol Descriptor List: "L2CAP" (0x0100) "RFCOMM" (0x0003) Channel: 4 Service Name: Serial Port 2 Service RecHandle: 0x10004 Service Class ID List: "Serial Port" (0x1101) Protocol Descriptor List: "L2CAP" (0x0100) "RFCOMM" (0x0003) Channel: 5 Service Name: OBEX Object Push Service RecHandle: 0x10005 Service Class ID List: "OBEX Object Push" (0x1105) Protocol Descriptor List: "L2CAP" (0x0100) "RFCOMM" (0x0003) Channel: 10 "OBEX" (0x0008) Profile Descriptor List: "OBEX Object Push" (0x1105) Version: 0x0100 Service Name: IrMC Synchronization Service RecHandle: 0x10006 Service Class ID List: "IrMC Sync" (0x1104) Protocol Descriptor List: "L2CAP" (0x0100) "RFCOMM" (0x0003) Channel: 11 "OBEX" (0x0008) Profile Descriptor List: "IrMC Sync" (0x1104) Version: 0x0100 Service Name: HF Voice gateway Service RecHandle: 0x10007 Service Class ID List: "Handfree Audio Gateway" (0x111f) "Generic Audio" (0x1203) Protocol Descriptor List: "L2CAP" (0x0100) "RFCOMM" (0x0003) Channel: 6 Profile Descriptor List: "Handsfree" (0x111e) Version: 0x0100 Service Name: OBEX Basic Imaging Service RecHandle: 0x1000b Service Class ID List: "Imaging Responder" (0x111b) Protocol Descriptor List: "L2CAP" (0x0100) "RFCOMM" (0x0003) Channel: 15 "OBEX" (0x0008) Profile Descriptor List: "Imaging" (0x111a) Version: 0x0100 Service Name: OBEX File Transfer Service RecHandle: 0x1000f Service Class ID List: "OBEX File Transfer" (0x1106) Protocol Descriptor List: "L2CAP" (0x0100) "RFCOMM" (0x0003) Channel: 7 "OBEX" (0x0008) Profile Descriptor List: "OBEX File Transfer" (0x1106) Version: 0x0100 |
Esto nos proporciona toda la información que necesitamos acerca de todos los servicios presentes en el dispositivo, en nuestro caso el teléfono móvil.
Buscamos este servicio en la información que nos ha ofrecido el último comando. Es más o menos el siguiente:
Service Name: Dial-up Networking
Service RecHandle: 0x10000
Service Class ID List:
"Dialup Networking" (0x1103)
"Generic Networking" (0x1201)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 1
Profile Descriptor List:
"Dialup Networking" (0x1103)
Version: 0x0100
Para utilizar este servicio, configuramos adecuadamente el fichero: /etc/bluetooth/rfcomm.conf
Incluimos el siguiente texto:
rfcomm1 {
bind no;
device00:0F:DE:6B:92:E5;
channel 1;
comment "Dial-up networking";
}
donde el device es el identificador del movil y el channel el que nos indica
el registro obtenido con sdptool, justo despues de "RFCOMM" (0x0003).
Reiniciamos para cargar la nueva configuración:
/etc/init.d/bluez-utils restart Restarting bluez-utils: hcid sdpd rfcomm.
Para conectar este dispositivo: # rfcomm connect 1 Connected /dev/rfcomm1 to 00:0F:DE:6B:92:E5 on channel 1 Press CTRL-C for hangup
Ya tienes una conexión lista, con lo cual, por ejemplo, si estas en un
portátil en mitad del campo y quieres conectarte a internet con tu
portátil a través de tu móvil tienes que configurar un enlace ppp a través del móvil.
En este sentido, tienes los siguientes comandos muy interesantes:
Si no has establecido una "relación de confianza" entre tu móvil y tu
portátil te pedirá en ambos dispositivos el pin.
En esta receta pueden encontrar como crear CD ó DVD a nivel de comandos del sistema operativo ( puede ser útil, si no funciona el K3b, y deseamos "ver" que pasa).
Comenzaremos creando copias ISO de un sistema de ficheros que se encuentre en una carpeta:
mkisofs -o copia.iso /home/usuario/Desktop/carpeta1
En el anterior comando, mkisofs, con la opción "-o", indicamos el nombre del fichero de salida. El segundo parametro será la ubicación de la carpeta a crear ( en este caso carpeta1).
apt-get install java-package fakeroot
java-package no te instala Java, lo que te instala es una herramienta (make-jpkg) que se encarga de crear un paquete Debian a partir del instalador Java.
Tendrás que irte a http://java.sun.com/j2se/1.5.0/download.jsp, bajarte la versión de Java que vayas a usar (si sólo quieres ejecutar programas, y no compilar, solo necesitas el JRE). Una vez bajado el fichero .bin (ojo, el .bin, NO el .rpm) haces:
fakeroot make-jpkg ficheroquetehasbajado.bin
esto hay que ejecutarlo como usuario ya que como root no nos va a dejar.
Y eso se encargará de hacer un fichero .deb listo para instalar con "dpkg -i fichero.deb", que te dejará instalado java maravillosamente.
He colocado un interesante documento sobre como configurar apache a un nivel básico. El documento esta en Internet ( Descargarlo desde internet).
También disponemos de un documento un poco más "técnico" sobre la configuración de APACHE 2. Realizado por la univesidad de Sevilla, podemos descargarlo desde interner en este enlace
Algo tan simple como esto les cuesta a algunos nuevos usuarios averiguar cómo se hace, especialmente a los que vienen de un sistema Windows pues se hace de otra forma e insisten en intentarlo como saben.
Es especialmete útil crear lanzadores en el escritorio a páginas muy visitadas o bien cuando nuestros alumnos son muy pequeños.
Comenzamos haciendo click con el botón derecho sobre el escritorio y seleccionar “Crear lanzador…”
Se nos abrirá una ventana con un pequeño formulario:
Este sería el formulario rellenado para un acceso directo de Firefox (hubiera sido más fácil arrastrarlo desde Aplicaciones > Internet, pero que sirva de ejemplo):
Es sencillo, ¿verdad? Pero muchos se preguntarán cómo hacen un lanzador a una carpeta, por ejemplo a nuestro directorio de vídeos o del incoming de aMule. Pues es igual de sencillo.
Supongamos que tenemos nuestros vídeos en /home/tu_cuenta/videos. Los datos del formulario serían los siguientes:
* Tipo: Aplicación (usaremos nautilus)
* Nombre: Vídeos
* Comando: nautilus –browser /home/tu_cuenta/videos
* Comentario: Mis vídeos
* Icono: El que quieras
Como véis es también sencillo, lo único que debéis saber es que nautilus es el navegador del sistema de ficheros y que el parámetro “–browser” seguido de la ruta le indicará qué carpeta debe abrir.
Necesitamos crear una carpeta con permisis de ejecución para nuestro script y otra para almacenar el log
>mkdir ~/script
>mkdir ~/.dyndns
>touch ~/script/dyndns-update.sh
>chmod 700 ~/script/dyndns-update.sh
vi ~/script/dyndns-update.sh
#!/bin/sh
USERNAME=nombre de usuario
PASSWORD=Tu Clave
HOSTNAME=tu dominio (mmm.homelinux.net)
cd ~/.dyndns
if [ -f ~/.dyndns/ipcheck.dat ];
then
/usr/sbin/ipcheck -r checkip.dyndns.org:8245 \
$USERNAME $PASSWORD $HOSTNAME
else
/usr/sbin/ipcheck --makedat -r checkip.dyndns.org:8245 \
$USERNAME $PASSWORD $HOSTNAME
fi
Para terminar dejamos que"CRON" realice todo el trabajo:
>crontab -e
Y agregamos la siguiente linea para que se ejecute el script diariamente y asi se actualize la informacion de la ip en nuestra cuenta de DynDNS
* 6 * * * bin/dyndns-update.sh
Linux organiza la información en archivos, los cuales están contenidos en directorios. Un directorio puede contener subdirectorios, teniendo así una estructura jerárquica, como en cualquier otro sistema operativo.
| Directorio | Descripción |
| / | Raíz (root), forma la base del sistema de archivos. |
| /auto | |
| /boot | Archivos del kernel (compilados). |
| /bin | Archivos ejecutables esenciales para todos los usuarios. |
| /cdrom | Archivos del dispositivo CD ( Pueden existir varios) |
| /dev | Archivos de dispositivos. |
| /etc | Archivos de configuración. |
| /etc/rc.d | Archivos de inicialización (Red Hat). |
| /home | Generalmente, directorios de los usuarios. |
| /floppy | Para montar el disco de 1.44 |
| /home/compartido | Carpera compartida para usuarios del sistema |
| /initrd | Contenido del servidor WWW. |
| /lib | Librerías esenciales y módulos del kernel. |
| /lostfound | |
| /media | |
| /mnt | Directorios donde ``montar'' diversos dispositivos temporalmente. |
| /mnt/Linux1 | Ej- 1º Partición de Linux |
| /mnt/usb2 | Dispositivo de almacenamiento sobre usb |
| /opt | |
| /proc | Información sobre partes del sistema. |
| /root | Directorio del usuario principal del sistema. |
| /sbin | Archivos ejecutables para tareas de administración. |
| /tmp | Temporal. |
| /share | |
| /sys | |
| /usr | Programas, documentación, fuentes,...compartidos por todo el sistema |
| /var | Archivos variables del sistema, bitácoras, temporales,... |
Es poco frecuente, pero quizás en alguna ocasión desee imprimir un documento directamente, sin necesidad de abrir "openoffice". Bien el siguiente comando realiza este proceso
openoffice -norestore -nofirststartwizard -nologo -headless -pt Cups-PDF sample.ppt
Siendo Cups-PDF el nombre de la impresora, y sample.ppt el archivo a imprimir
También existen utilidades en la red que nos permiten realizar "conversiones" entre distintos tipos de documentos. Una de estas utilidades es : JODConverter
Puede encontrar más información sobre esta aplicación en: http://www.artofsolving.com/opensource/jodconverter
Para Guadalinex 2004
Podemos realizar la instalación para
Si tenemos un archivo que contenga un tipo de fuente descargado en nuestro escritorio, o bien en algún dispositivo de almacenamiento, sólo tendremos que abrir Nautilus (Doble click en la carpeta de inicio del usuario en el escritorio) y dirigirnos al Directorio Fuentes. Una vez ahí, arrastramos y soltamos el archivo correspondiente a la fuente deseada, y proceso finalizado.
Ya podremos utilizar esta nueva fuente tanto en OpenOffice, como en Abiword o cualquier otro programa que haga uso de fuentes para dar formato de texto.
Instalación de fuentes para todos los usuarios
Si ya tenemos un archivo que contenga un tipo de fuente descargado en nuestro escritorio, o bien en algún dispositivo de almacenamiento, tendremos que realizar las siguientes operaciones:
Para V3 y otros "ubuntus"
Como ejemplo vamos a instalar las fuentes escolares que nos aporta el PNTIC. Las codemos descargar desde el siguiente enlace: http://guindo.pntic.mec.es/jmag0042/alpha.php?d=letras_garabatos.zip.
Si desea más información sobre estas fuentes las puedes conseguir en la siguiente web: http://guindo.pntic.mec.es/jmag0042/garabato.html
Luego necesitamos ejecutar el "nautilus" con privilegios de administrador. Para esto utilizaremos un terminal o el comando ejecutar que aparecerá al pulsar simultanemaente Alt+F2
En cualquiera de ambos casos necesitaremos teclear la siguiente línea:
>gksu nautilus /usr/share/fonts/truetype/
Tras introducir la contraseña de administrador nos abre la carpeta de tipografías, en la cual debemos copiar las que descomprimimos anteriormente.
¡¡Hemos finalizado!!.
.. es algo que no nos hace falta. Pero, en algunos casos puede ser útil: Más que todo para revisar diseños web o utilizar páginas web no compatibles con Firefox. No recomiendo el uso diario! La instalación es fácil y rápido gracias a la herramienta ies4linux. Necesitamos el emulador de windows wine y ies4linux.
apt-get install wine
cd /tmp
wget http://www.tatanka.com.br/ies4linux/downloads/ies4linux-latest.tar.gz
cd ies4linux-*
./ies4linux
La aplicación ies4linux descarga el Internet Explorar y instala en el directorio ~/ies4linux - Durante la instalación tenemos que responder algunas preguntas sencillas sobre versiones deseadas, idiomas etc.
Si deseas instalar la aplicación multi-usuario tienes que moverla a otro lugar, por ejemplo /usr/local/share:
mv ~/ies4linux /usr/local/share/ies4linux
#############################################################################
#!/bin/sh
# Launch script for multiuser ies4linux, master copy in /usr/local/share.
# Install as /usr/local/bin/ie6 (or ie55 or ie5)
#
# Blame Andrew Chadwick , not Sérgio.
# Blame also dirk, he moved a line - see comment!
# Released under the GNU GPL version 2 (or later, your call).
# See ies4linux's own LICENSE or COPYING file for more information.
##############################################################################
IE=`basename "$0"`
MASTERPREFIX="/usr/local/share/ies4linux/$IE"
WINEPREFIX="${HOME}/.ies4linux/$IE"
# If we're not set up, create the user's magic symlink-copy of the master
# installation.
IE=`basename "$0"`
MASTERPREFIX="/usr/local/share/ies4linux/$IE"
WINEPREFIX="${HOME}/.ies4linux/$IE"
# If we're not set up, create the user's magic symlink-copy of the master
# installation.
if ! test -d "$WINEPREFIX"; then
if ! mkdir -p "$WINEPREFIX"; then
echo "mkdir $WINEPREFIX failed"
exit 1
fi
cp -rs $MASTERPREFIX/* "$WINEPREFIX/";
# The profile directory will be recreated automatically by wine on the
# first run, so it's OK to blow away eny existing copy hanging around in
# unwritable symlink form from the install, and it's OK to just create a
# blank one.
PROFILES="$WINEPREFIX/drive_c/windows/profiles"
rm -fr "$PROFILES"
mkdir -p "$PROFILES"
# WINE needs to be able to write to the following files, so they can't be
# symlinks to root-owned ones.
for file in .no_prelaunch_window_flag system.reg userdef.reg user.reg; do
if test -L "$WINEPREFIX/$file"; then
rm -f "$WINEPREFIX/$file"
cp "$MASTERPREFIX/$file" "$WINEPREFIX/$file"
fi
done
chmod -R og-rwx "$WINEPREFIX"
fi
export WINEPREFIX
exec wine "$WINEPREFIX/drive_c/Program Files/Internet Explorer/IEXPLORE.EXE"
echo "Failed to launch WINE: see above for details"
exit 1
chmod 775 /usr/local/bin/ie6
Si todo está bien el comando which nos muestra:
minombre@appserver:~> which ie6
/usr/local/bin/ie6


En el manual de Guadalinex de J.J.Grimaldos,
podeis encontrar los siguientes temas que os pueden ser útiles y servir
para la formación de vuestros centros:
1- Proyecto Guadalinex y software libre
2- Instalación de Guadalinex
3- Entorno Guadalinex
4- Archivos y directorios
5- Administración básica
6- Configuración de dispositivos
7- Guadalinex para comunicarse
8- Instalar aplicaciones y plugins
9- Usando Guadalinex: textos, gráficos, ofimática, base de datos, maquetación, multimedia...
10- Cómo obtener ayuda.
¿Alguna vez habeis borrado un fichero por equivocacion desde
consola, cuando estabais trabajando con el? Supongo que habeis echado
mil maldiciones por la equivocacion y el tiempo perdido cuando esto os
ha pasado.
En este articulo vamos a hablar de la utilidad 'lsof'. Con este programa, la informacion en /proc y un poco de suerte, probablemente podamos recuperar el fichero que por arte de magia desaparecio de vuestro sistema cuando lo borrasteis accidentalmente. La 'poca de suerte' de la que hablamos es que el fichero que habeis borrado estuviese siendo accedido por un programa en el momento de realizar la operacion de borrado. A continuacion vamos a ver un ejemplo de como podemos realizar esta recuperacion.
Primero vamos a ver un poco como podemos acceder a la informacion o estatus de un fichero. Para esto podemos utilizar el programa de sistema stat. Veamos como funciona:
Primero creamos un fichero de texto:
user@test# echo "ESTO ES UN FICHERO DE TEXTO DE PRUEBAS" > fichero_pruebas.txt
A continuacion podemos usar stat para obtener la informacion de este fichero:
user@test# stat fichero_pruebas.txt File: `fichero_pruebas.txt' Size: 39 Blocks: 8 IO Block: 4096 regular file Device: 301h/769d Inode: 512495 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 1000/ user) Gid: ( 1000/ user) Access: 2008-02-04 22:28:57.000000000 +0100 Modify: 2008-02-04 22:28:57.000000000 +0100 Change: 2008-02-04 22:28:57.000000000 +0100
Alguna de esta informacion tambien la podriamos haber obtenido usando el comando ls:
user@test# ls -li fichero_pruebas.txt 512495 -rw-r--r-- 1 root root 39 2008-02-04 22:28 fichero_pruebas.txt
De toda esta informacion, la que nos interesa en este articulo es la denominada Inode. Segun Wikipedia, un inodo (inode en ingles) se puede definir como:
"... una estructura de datos propia de los sistemas de archivos tradicionalmente empleados en los sistemas operativos tipo UNIX como es el caso de Linux. Un inodo contiene las características (permisos, fechas, ubicación, pero NO el nombre) de un archivo regular, directorio, o cualquier otro objeto que pueda contener el sistema de ficheros.
El término "inodo" refiere generalmente a inodos en discos (dispositivos en modo bloque) que almacenan archivos regulares, directorios, y enlaces simbólicos. El concepto es particularmente importante para la recuperación de los sistemas de archivos dañados.
Cada inodo queda identificado por un número entero, único dentro del sistema de ficheros, y los directorios recogen una lista de parejas formadas por un número de inodo y nombre identificativo que permite acceder al archivo en cuestión: cada archivo tiene un único inodo, pero puede tener más de un nombre en distintos o incluso en el mismo directorio para facilitar su localización."
En nuestro caso el inodo de nuestro fichero es 512495, este es el identificador de nuestro fichero en el sistema. Cuando borramos un fichero con el comando rm, lo que hacemos es borrar la referencia al inodo en cuestion, durante un tiempo dicho inodo seguira existiendo en nuestro sistema aunque no podamos verlo y parezca que el fichero borrado ha desaparecido de nuestro sistema.
Si algun programa esta accediendo el fichero que hemos borrado, estamos de suerte. El programa en cuestion tendra una referencia al inode del fichero borrado y siempre que no cerremos este programa podremos recuperar el contenido de dicho fichero. (Un caso practico que a muchos nos a pasado alguna vez es el borrar el fichero log de algun servicio del sistema (apache, postgresql, mysql. etc) mientras que el servicio esta funcionando)
A continuacion presentamos una session completa desde que borramos un fichero hasta que lo recuperamos:
Abrimos nuestro fichero ejemplo con less (por ejemplo)
user@test# less fichero_pruebas.txt ESTO ES UN FICHERO DE TEXTO DE PRUEBAS fichero_pruebas.txt (END)
Pulsamos Ctrl+z para suspender el programa less sin pararlo (el programa seguira abierto, accediendo nuestro fichero, pero suspendido)
user@test# less fichero_pruebas.txt [1]+ Stopped less fichero_pruebas.txt
Comprobamos que nuestro fichero sigue intacto:
user@test# ls -li fichero_pruebas.txt 512495 -rw-r--r-- 1 root root 39 2008-02-04 22:28 fichero_pruebas.txt
Lo borramos ... accidentalmente ;-)
user@test# rm ficheros_de prueba.txt
Comprobamos que no existe en nuestro directorio
user@test# ls -li fichero_pruebas.txt ls: fichero_pruebas.txt: No such file or directory
Como hemos comentado mas arriba, si tenemos un programa accediendo el fichero estamos de suerte. Utilizamos lsof para ver si algun programa esta accediendo el fichero que hemos borrado:
user@test# lsof |grep fichero_pruebas.txt less 28410 user 4r REG 3,1 39 512495 /home/user/fichero_pruebas.txt (deleted)
No deberia de ser una sorpresa que nuestro programa less este accediendo nuestro fichero borrado. Las columnas que nos interesan de esta linea son la primera (PID del programa accediendo el fichero, 28410), y la cuarta, el 'file descriptor' (4r) con la referencia al inodo de nuestro fichero (512495).
Con esta informacion nos vamos al sistema de ficheros virtual /proc con informacion de nuestro sistema linux.
user@test# ls -l /proc/28410/fd/4 lr-x------ 1 user user 64 2008-02-04 22:38 /proc/28410/fd/4 -> /home/user/fichero_pruebas.txt (deleted)
Como era de esperar, una referencia al fichero borrado. Lo unico que tenemos que hacer ahora es copiar los datos a los que /proc/28410/fd/4 esta haciendo referencia. Para esto podemos utilizar simplemente el comando cp
user@test# cp /proc/28410/fd/4 fichero_pruebas.txt.restaurado
Ahora no importa que nuestro programa less termine de ejecutarse, porque nuestro fichero borrado ya esta recuperado.
user@test# cat fichero_pruebas.txt.restaurado ESTO ES UN FICHERO DE TEXTO DE PRUEBAS
En este articulo hay que tener un poco de suerte para no perder nuestro fichero, pero en futuros articulos veremos otras tecnicas a usar cuando la suerte no esta de nuestro lado. Esto es todo por hoy, que lo disfruteis.
Este pequeño truco le permitirá recuperar los botones de mover, redimensionar o cerrar cualquier ventana.
Es necesario incluir las siguientes opciones en el fichero de configuración del entorno gráfico:
/etc/X11/xorg.conf
Section "Device"
Identifier ".....
Boardname ".....
Busid "......
Driver "......"
Screen 0
Vendorname ".....
Option "AddARGBVisuals" "True"
Option "AddARGBGLXVisuals" "True"
EndSection
En las siguientes líneas podemos encontrar como compartir una carpeta entre varios usuarios de la red, hemos utilizado la versión de Guadalinex V3
* Instala nfs-common, nfs-kernel-server así.
Es muy fácil desde Synaptic, busca estos dos paquetes e instala
Se asume la siguiente situación
El directorio que se desea exportar es: /publico/Red en modo lectura/escritura
El directorio remoto exportado se desa montar en el equipo local /home/usuario/Red
* Edita el fichero /etc/hosts.deny
$ sudo gedit /etc/hosts.deny
*Añade el las siguientes líneas.
portmap:ALL
lockd:ALL
mountd:ALL
rquotad:ALL
statd:ALL
* Guarda el Fichero editado.
* Edita el fichero /etc/hosts.allow
$ sudo gedit /etc/hosts.allow
* Añade las siguientes líneas.
portmap: 192.168.X.
lockd: 192.168.X.
rquotad: 192.168.X.
mountd: 192.168.X.
statd: 192.168.X.
(1) Sustituye X por lo que corresponda en tu red.
* Guarda el Fichero editado.
* Edita el fichero /etc/default/portmap
$ sudo gedit /etc/default/portmap
* Sustituye la línea
ARGS="-i 127.0.0.1"
* por esta otra
#ARGS="-i 127.0.0.1"
* Guarda el Fichero editado.
* Edita el fichero /etc/exports
$ sudo gedit /etc/exports
* Añade la siguiente línea.
/publico/Red *(rw,async)
* Guarda el fichero editado.
* Reinicia todos los demonios.
$ sudo /etc/init.d/nfs-common restart
$ sudo /etc/init.d/nfs-kernel-server restart
$ sudo /etc/init.d/portmap restart
Con esto tenemos preparado el servidor vamos a la parte del cliente
* Monta el fichero remoto exportado en tu sistema local.
El directorio local tiene que existir
$ mount equipo_remoto:/publico/Red /home/usuario/Red
* Si quieres que el sistema lo monte automáticamente al arrancar
$ sudo gedit /etc/fstab
* Añade la siguiente línea al final del fichero
equipo_remoto:/publico/Red /home/usuario/Red nfs defaults,auto