====== Utilidades básicas de redes ======
Así que finalmente se las ha arreglado para configurar su conexión de red, ¿y ahora? ¿cómo saber si está funcionando? ¿cómo saber si está configurada correctamente? ¿y qué hacer ahora que está configurada? Bien, este capítulo es para usted.
===== Herramientas de diagnóstico de red =====
Slackware Linux incluye un gran número de herramientas de red para
resolución de problemas y diagnóstico de problemas de conexión de red, o simplemente para
ver lo que hay por ahí en la red. La mayoría de estas herramientas son
para que pueda ejecutarlas desde un terminal virtual o en una ventana de terminal en su escritorio gráfico. Algunas de ellas incluso tienen
interfaces gráficas, pero vamos a tratar casi exclusivamente con
herramientas de línea de comandos por ahora.
==== ping ====
**//ping//**(8) es una herramienta útil para determinar si un ordenador está operativo en su red o en Internet en general.
Puede considerarlo un tipo de sonar para ordenadores. Al usarlo, usted
envia un //"ping"// y escucha un eco para determinar si otro
ordenador o dispositivo de red está escuchando. De manera predeterminada,
**//ping//** verifica el equipo remoto una vez por segundo indefinidamente, pero puede modificar el intervalo entre verificaciones y
el número total de comprobaciones fácilmente, sólo tiene que revisar la página de manual. Puede
terminar la aplicación en cualquier momento con
'CTRL'+'c'. Cuando
**//ping//** ha terminado, muestra un práctico
resumen de su actividad. **//ping//** es muy útil
para determinar si un ordenador de su red o de Internet está
disponible, pero algunos sistemas bloquean los paquetes que
**//ping//** envía, así que a veces un sistema puede estar
funcionando correctamente, pero no enviar respuestas.
darkstar:~# ping -c 3 www.slackware.com
64 bytes from slackware.com (64.57.102.34): icmp_seq=1 ttl=47 time=87.1 ms
64 bytes from slackware.com (64.57.102.34): icmp_seq=2 ttl=47 time=86.2 ms
64 bytes from slackware.com (64.57.102.34): icmp_seq=3 ttl=47 time=86.7 ms
--- slackware.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2004ms
rtt min/avg/max/mdev = 86.282/86.718/87.127/0.345 ms
==== traceroute ====
**//traceroute//**(8) es una herramienta útil para determinar
qué ruta toman sus paquetes para llegar a otra computadora. Es principalmente
útil para determinar qué ordenadores están //"cerca"// o //"lejos"// de usted.
Esta distancia no es estrictamente geográfica, ya que su proveedor de servicios de Internet
puede enrutar el tráfico de su ordenador de forma extraña.
**//traceroute//** le muestra cada uno de los enrutadores entre
su ordenador y cualquier otra máquina a la que desee conectarse.
Desafortunadamente, muchos proveedores, cortafuegos y enrutadores bloquearán
**//traceroute//** así que puede que no obtengas un informe completo cuando lo use. Aún así, sigue siendo una herramienta útil para la resolución de problemas de red.
darkstar:~# traceroute www.slackware.com
traceroute to slackware.com (64.57.102.34), 30 hops max, 46 byte
packets
1gw.ctsmacon.com (192.168.1.254)1.468 ms2.045 ms1.387 ms
210.0.0.1 (10.0.0.1)7.642 ms8.019 ms6.006 ms
368.1.8.49 (68.1.8.49)10.446 ms9.739 ms7.003 ms
468.1.8.69 (68.1.8.69)11.564 ms6.235 ms7.971 ms
5dalsbbrj01-ae0.r2.dl.cox.net (68.1.0.142)43.859 ms43.287 ms 44.125 ms
6dpr1-ge-2-0-0.dallasequinix.savvis.net (204.70.204.146)41.927 ms 58.247 ms44.989 ms
7cr2-tengige0-7-5-0.dallas.savvis.net (204.70.196.29)42.577 ms 46.110 ms43.977 ms
8cr1-pos-0-3-3-0.losangeles.savvis.net (204.70.194.53)78.070 ms 76.735 ms76.145 ms
9bpr1-ge-3-0-0.LosAngeles.savvis.net (204.70.192.222)77.533 ms 108.328 ms120.096 ms
10wiltel-communications-group-inc.LosAngeles.savvis.net (208.173.55.186)79.607 ms76.847 ms75.998 ms
11tg9-4.cr01.lsancarc.integra.net (209.63.113.57)84.789 ms85.436 ms85.575 ms
12tg13-1.cr01.sntdcabl.integra.net (209.63.113.106)87.608 ms 84.278 ms86.922 ms
13tg13-4.cr02.sntdcabl.integra.net (209.63.113.134)87.284 ms 85.924 ms86.102 ms
14tg13-1.cr02.rcrdcauu.integra.net (209.63.114.169)85.578 ms 85.285 ms84.148 ms
15209.63.99.166 (209.63.99.166)84.515 ms85.424 ms85.956 ms
16208.186.199.158 (208.186.199.158)86.557 ms85.822 ms86.072 ms
17sac-main.cwo.com (209.210.78.20)88.105 ms87.467 ms87.526 ms
18slackware.com (64.57.102.34)85.682 ms86.322 ms85.594 ms
==== telnet ====
En los días de antaño, **//telnet//**(1) era lo más grande
desde el pan de molde. Básicamente, **//telnet//**
abre una conexión de red no cifrada entre dos ordenadores y da
el control de la sesión al usuario en lugar de a otra aplicación.
Usando **//telnet//**, la gente podría conectarse a las shells
en otros ordenadores y ejecutar comandos como si estuviese físicamente
presente. Debido a su naturaleza no codificada, esto ya no es recomendable;
sin embargo, **//telnet//** se sigue utilizando para este propósito
por muchos dispositivos.
Hoy en día, **//telnet//** se utiliza mejor como una
herramienta de diagnóstico de red. Al pasar el control de la sesión
directamente al usuario, se puede utilizar para una gran variedad de
propósitos de pruebas. Siempre y cuando sepa qué comandos ASCII enviar a la aplicación
de la computadora, usted puede hacer cualquier número de actividades, tales como leer la web
o comprobar su correo electrónico. Simplemente informe a
**//telnet//** que puerto de red usar, y está
todo listo.
darkstar:~$ telnet www.slackware.com 80
Trying 64.57.102.34...
Connected to www.slackware.com.
Escape character is '^]'.
HEAD / HTTP/1.1
Host: www.slackware.com
HTTP/1.1 200 OK
Date: Thu, 04 Feb 2010 18:01:35 GMT
Server: Apache/1.3.27 (Unix) PHP/4.3.1
Last-Modified: Fri, 28 Aug 2009 01:30:27 GMT
ETag: "61dc2-5374-4a973333"
Accept-Ranges: bytes
Content-Length: 21364
Content-Type: text/html
==== ssh ====
Como hemos mencionado, **//telnet//** puede ser útil como herramienta de diagnóstico
pero su naturaleza no encriptada lo convierte en un problema de seguridad
para el acceso al shell. Afortunadamente, está el protocolo de shell seguro. Casi
cada distribución de Linux, UNIX y BSD hoy en día utiliza OpenSSH, o
**//ssh//**(1) para abreviar. Es una de las más importantes
herramientas de red de uso común en la actualidad y hace uso de las más potentes
técnicas criptográficas. **//ssh//** tiene muchas
características, opciones de configuración, y hackeos limpios, suficientes para llenar su propio libro
así que sólo entraremos en lo básico. Simplemente ejecute
**//ssh//** con el nombre de usuario y el host y
estarás conectado a él de forma rápida y segura. Si esta es la primera vez que
está conectando a este ordenador, **//ssh//**
le pedirá que confirme su deseo, y que haga una copia local de la
clave de encriptación a utilizar. Si esta llave cambia más tarde,
**//ssh//** le advertirá y se negará a conectarse
porque es posible que alguien esté intentando secuestrar la conexión
usando lo que se conoce como un ataque de hombre en el medio.
darkstar:~# ssh alan@slackware.com
alan@slackware.com's password: secret
alan@slackware.com:~$
El usuario y el nombre de host están en la misma forma que las direcciones de correo electrónico.
Si no pone la parte del nombre de usuario, **//ssh//** utilizará su nombre de usuario actual al establecer la conexión.
==== tcpdump ====
Hasta ahora todas las herramientas que hemos visto se han centrado en hacer conexiones
a otras computadoras, pero ahora vamos a ver el tráfico en sí.
**//tcpdump//**(1) (que debe ejecutarse como root)
nos permite ver todo o parte del tráfico de la red que se origina o
se recibe por nuestro ordenador. **//tcpdump//** muestra
los paquetes de datos en bruto de diversas maneras con todas las cabeceras de red
intactas. No se alarme si no lo entiende todo.
**//tcpdump//** es una herramienta para los profesionales ingenieros de redes y administradores de sistemas. De forma predeterminada, sondea la
primera tarjeta de red que encuentre, pero si tiene múltiples interfaces,
simplemente use el argumento //-i// para especificar en cuál está interesado.
También puede limitar los datos mostrados usando expresiones
y cambiar la manera en que se muestran, pero eso está mejor
explicado en la página de manual y otros materiales de referencia.
darkstar:~# tcpdump -i wlan0
tcpdump: verbose output suppressed, use -v or -vv for full protocol
decode
listening on wlan0, link-type EN10MB (Ethernet), capture size 96 bytes
13:22:28.221985 IP gw.ctsmacon.com.microsoft-ds > 192.168.1.198.59387:
Flags [P.], ack 838190560, win 3079, options [nop,nop,TS val 1382697489
ecr 339048583], length 164WARNING: Short packet. Try increasing the
snap length by 140
SMB PACKET: SMBtrans2 (REPLY)
13:22:28.222392 IP 192.168.1.198.59387 > gw.ctsmacon.com.microsoft-ds:
Flags [P.], ack 164, win 775, options [nop,nop,TS val 339048667 ecr
1382697489], length 134WARNING: Short packet. Try increasing the snap
length by 110
SMB PACKET: SMBtrans2 (REQUEST)
==== nmap ====
Suponga que necesita saber ¿qué servicios de red se están ejecutando en una
máquina, o múltiples máquinas, o que desea determinar si múltiples
las máquinas son receptivas? Podría hacer **//ping//**
a cada una individualmente, hacer **//telnet//** a cada puerto
que le interesara, y anotar cada detalle, pero eso es muy tedioso y lleva mucho tiempo. Una alternativa mucho más fácil es utilizar un escáner de puertos,
y **//nmap//**(1) es justo la herramienta para la tarea.
**//nmap//** es capaz de escanear los puertos TCP y UDP,
determinar el sistema operativo de un dispositivo de red, probar
cada servicio localizado para determinar su tipo específico, y mucho mucho más.
Quizás la forma más sencilla de usar **//nmap//** es hacer //"ping"// a varias computadoras a la vez. Puede utilizar la notación de dirección de red
(CIDR) o especificar un rango de direcciones y
**//nmap//** escaneará cada uno de ellos y devolverá los resultados cuando haya terminado. Incluso puede especificar nombres de host si gusta.
Para //"hacer ping"// a los hosts, tendrás que usar el argumento //-sP//. El siguiente comando le indica a **//nmap//** que haga //"ping"// a www.slackware.com y que las 16 direcciones IP comiencen en 72.168.24.0 y terminen en 72.168.24.15.
darkstar:~# nmap -sP www.slackware.com 72.168.24.0/15
Si necesita realizar un análisis de puertos, **//nmap//**
tiene muchas opciones para hacer justamente eso. Cuando se ejecuta sin argumentos,
**//nmap//** realiza un escaneo de puerto TCP estándar en todos los
hosts especificados. También hay opciones para hacer
**//nmap//** más o menos agresivo con sus
escaneos para obtener resultados más rápidos o esquivar los servicios de detección de intrusos. Para una discusión completa, usted debe referirse a la más bien
exhaustiva página de manual. Los siguientes tres comandos ejecutan un escaneo de puertos regular, un escaneo SYN y un escaneo //"Christmas tree"//.
darkstar:~# nmap www.example.com
darkstar:~# nmap -sS www.example.com
darkstar:~# nmap -sX www.example.com
¡Esté advertido! Algunos proveedores de servicios de Internet desaprueban en gran medida el escaneo de puertos
y pueden tomar medidas para evitar que lo haga.
**//nmap//** y aplicaciones como esta es mejor
utilizarlas en sus propios sistemas con fines de mantenimiento y seguridad,
no como escáneres de Internet de uso general.
==== host ====
A menudo, los problemas de red se derivan de un fallo del DNS (Servicio de Nombres de Dominio)
que asigna los nombres de dominio a las direcciones IP. Una manera fácil de realizar una rápida revisión de
DNS es el comando **//host//**(1). Cuando
se ejecuta, su ordenador realizará algunas búsquedas de DNS comunes y
devolverá los resultados.
darkstar:~# host www.slackware.com
www.slackware.com is an alias for slackware.com.
slackware.com has address 64.57.102.34
slackware.com mail is handled by 1 mail-mx.cwo.com.
==== dig ====
Las búsquedas de DNS más complejas se pueden realizar manualmente con la herramienta
**//dig//**(1). **//dig//** es //"el perro más malo de la perrera"// cuando se trata de resolver problemas de DNS. Con esta herramienta, puede realizar prácticamente cualquier búsqueda de DNS desde
búsquedas inversas en registros A, CNAME, MX, SP, TXT y más. Hay
demasiadas opciones de línea de comandos y tipos de búsqueda para profundizar en ellas
aquí, pero la página de manual enumera todos los casos de uso común.
darkstar:~# dig @207.69.188.185 www.slackware.com a
; <<>> DiG 9.4.3-P4 <<>> @207.69.188.185 www.slackware.com a
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57965
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 0
;; QUESTION SECTION:
;www.slackware.com. IN A
;; ANSWER SECTION:
www.slackware.com. 86400 IN CNAME slackware.com.
slackware.com. 86400 IN A 64.57.102.34
;; AUTHORITY SECTION:
slackware.com. 86400 IN NS ns2.cwo.com.
slackware.com. 86400 IN NS ns1.cwo.com.
;; Query time: 348 msec
;; SERVER: 207.69.188.185#53(207.69.188.185)
;; WHEN: Sat Jul 3 16:25:10 2010
;; MSG SIZE rcvd: 105
Veamos las opciones de la línea de comandos usadas arriba.
El argumento //@207.69.188.185// le dice a **//dig//** qué servidor DNS consultar. Si no se especifica, **//dig//** simplemente usará los que
estén listados en ''/etc/resolv.conf''. El argumento
//a// al final es el tipo de registro DNS a buscar.
En este caso buscamos un registro //"A"// que ha devuelto una dirección IPv4.
==== finger ====
**//finger//**(1) no es tanto una herramienta de diagnóstico de red como una herramienta de diagnóstico para el usuario de la red. Usando
**//finger//**(1) puedes juntar una pequeña cantidad de información útil sobre los usuarios en los servidores que ejecutan el demonio
**//fingerd//**(8). Hoy en día muy pocos servidores
todavía ofrecen **//fingerd//**, pero para los que lo hacen
puede ser una herramienta útil para hacer un seguimiento de tus amigos y
compañeros de trabajo.
darkstar:~# finger alan@cardinal.lizella.net
[cardinal.lizella.net]
Login: alan Name: Alan Hicks
Directory: /home/alan Shell: /bin/bash
Office: 478 808 9919, 478 935 8133
On since Wed Apr 13 17:43 (UTC) on pts/9 from
75-150-12-113-atlanta.hfc.comcastbusiness.net
32 minutes 24 seconds idle
(messages off)
On since Wed Apr 13 17:45 (UTC) on pts/10 from :pts/9:S.0
48 minutes 56 seconds idle
Mail forwarded to alan@lizella.net
No mail.
No Plan.
===== Navegadores Web =====
Slackware incluye una variedad de navegadores web. Si está usando un entorno de escritorio gráfico, encontrará **//Firefox//**, **//Seamonkey//**, y otros con los que esté ya familiarizado, pero ¿qué pasa con el acceso mediante consola? Afortunadamente hay un número de navegadores web capaces aquí también.
==== lynx ====
El navegador web basado en consola más antiguo incluido con Slackware es
definitivamente **//lynx//**(1), un navegador web muy capaz si bien
algo limitado. **//lynx//** no soporta marcos (frames), javascript, o imágenes; es estrictamente un navegador web de texto. La navegación se realiza con las teclas de flecha de su teclado y
opcionalmente, un ratón. Si bien carece de muchas características de otros navegadores **//lynx//** es una de los navegadores web más rápidos.
que utilizará para recopilar información. Por ejemplo, el argumento
//-dump// envía la página web formateada directamente a la consola
que luego puede ser canalizada a otros programas.
{{ :slackbook:lynx.png |lynx}}
==== links ====
Una alternativa más rica en prestaciones es el popular
**//links//**(1), un navegador web basado en consola que
soporta marcos y tiene un mejor renderizado de tablas que
**//lynx//**. Como su predecesor,
**//links//** es navegable con las teclas de flechas, y está soportado el uso del ratón.
**//lynx//** también incluye un menú práctico (simplemente
haga clic en la línea superior con el ratón para activarlo) y, en general
formatea mejor las páginas web.
{{ :slackbook:links.png |links}}
==== wget ====
A diferencia de los otros navegadores que hemos visto,
**//wget//**(1) no es interactivo. En lugar de mostrar
el contenido HTTP, **//wget//** lo descarga. Esto significa
el //"navegar"// fuera del navegador web. A diferencia de los modos de descarga de otros
**//wget//** no formatea el archivo que
descarga; más bien copia el contenido en su forma exacta en la web
con todas las etiquetas y datos binarios en su lugar. También soporta varios
opciones recursivas que pueden reflejar de manera efectiva el contenido en línea en su
computadora local. **//wget//** no necesita funcionar
exclusivamente con contenido HTTP; también soporta FTP y varios otros protocolos.
darkstar:~# wget ftp://ftp.osuosl.org/pub/slackware/slackware-current/ChangeLog.txt
--2010-05-01 13:51:19--
ftp://ftp.osuosl.org/pub/slackware/slackware-current/ChangeLog.txt
=> `ChangeLog.txt'
Resolving ftp.osuosl.org... 64.50.236.52
Connecting to ftp.osuosl.org|64.50.236.52|:21... connected.
Logging in as anonymous ... Logged in!
==> SYST ... done. ==> PWD ... done.
==> TYPE I ... done. ==> CWD /pub/slackware/slackware-current ... done.
==> SIZE ChangeLog.txt ... 75306
==> PASV ... done. ==> RETR ChangeLog.txt ... done.
Length: 75306 (74K)
100%[======================================>] 75,306 110K/s in 0.7s
2010-05-01 13:51:22 (110 KB/s) - `ChangeLog.txt' saved [75306]
===== Mail Clients =====
Slackware también incluye una variedad de clientes de correo electrónico. Si está utilizando un entorno gráfico, encontrará **//Thunderbird//**,
**//Kmail//**, **//sylpheed//**
y otros. Al igual que con los navegadores web, también hay aplicaciones que funcionan en el shell. Una vez que empiece a utilizar un cliente de correo electrónico en la consola, es posible que no quiera usar nada más; la flexibilidad y la configurabilidad pueden ser adictivas.
==== pine ====
**//pine//** es uno de los interfaces de clientes de correo en línea de comandos más antiguas todavía en existencia y sigue siendo uno de los más
fáciles de usar. **//pine//** fue creado por la
Universidad de Washington y lleva consigo tanto una marca registrada como un
licencia de derechos de autor con los que son difíciles de trabajar. Afortunadamente, de vuelta en
2005, la universidad consideró conveniente reescribirlo sin la marca registrada, y
con una licencia más abierta, así que **//alpine//**(1), el
clon de pine distribuido con Slackware, nació.
Para empezar a utilizar **//alpine//**,
simplemente escriba **//pine//** en la línea de comandos.
Su uso es muy sencillo gracias a su sistema de menús, así como la referencia de comandos que se encuentra en la parte inferior de la pantalla. Vea por sí mismo:
{{ :slackbook:pine.png?550 |pine}}
Antes de configurar cualquier cliente de correo, debe comprobar la documentación de su servidor de correo para reunir toda la información pertinente sobre los protocolos y medidas de seguridad que usa su servicio de correo electrónico. Esto le ayudará a configurar
**//pine//** correctamente. De manera predeterminada,
**//pine//** comprobará si hay nuevos correos electrónicos entregados
a un servicio de correo que se ejecute en su ordenador. A menos que esté realmente
ejecutando un servicio de correo de este tipo (mucha gente lo hace) esto probablemente no es
lo que quiera. Afortunadamente configurar
**//pine//** es un proceso sencillo.
Simplemente entre en el menú [S]etup y seleccione la opción [C]onfig. Se le dará la opción de introducir su nombre, ruta de correo, servidor SMTP y
muchas otras opciones.
==== mutt ====
A algunas personas no les gusta **//pine//**. Algunas personas
quieren más control. Algunas personas quieren un cliente de correo totalmente configurable
con soporte para plugins y una actitud sensata. Esa gente usa
**//mutt//**(1). **//mutt//**
no es tan fácil de usar como **//pine//**, pero lo compensa
con potencia. No encontrará la referencia a los comandos en la parte inferior de la pantalla, **//mutt//** utiliza cada pulgada de su espacio para el servicio de procesamiento de correo. Sus funciones soportadas son extensas ¡las pantallas consecutivas no son un problema para el potente mestizo! Puede configurar **//mutt//** con el archivo
".muttrc" en su directorio de inicio. Con las
muchas opciones de configuración posibles, incluso hay una página de manual
para ello, muttrc(5). Quizá quiera leer más sobre ello.
{{ :slackbook:sb_16-3_2_mutt.jpg?550 |mutt}}
El uso de **//mutt//** es único porque es por propia naturaleza un Agente de Usuario de Correo (MUA), lo que significa que su verdadero propósito es leer
y ordenar el correo electrónico. Este fue su única función originalmente, aunque algunas
características adicionales como la recuperación de correo a través de POP3 e incluso una muy
básica transferencia a través de SMTP se han colado en la aplicación.
Como suele ocurrir con las aplicaciones robustas basadas en la consola, las opciones de configuración son innumerables, y no hay una manera //"correcta"// o //"errónea"// de usar **//mutt//** siempre y cuando
haga lo que quiera que haga. Una cosa a tener en cuenta si usted
está considerando usar **//mutt//** para el correo
es que su capacidad de envío y recepción de correo es muy limitada. **//mutt//** se centra únicamente en la clasificación,
lectura y redacción de mensajes de correo, además de las tradicionales
funciones de agente de correo de usuario. Esto mantiene el foco con la filosofía de UNIX de pequeñas herramientas que hacen una cosa muy bien y que pueden combinarse (o //"encadenarse"//) con otras herramientas para completar cualquier tarea necesaria. Con esto en mente, es probable que necesite configurar
alguna herramienta externa para recibir correo, como mínimo.
Los comandos utilizados para navegar por **//mutt//** son altamente configurables pero los predeterminados se pueden listar tecleando '?'.
==== mailx ====
Así que son geniales y todo eso, ¿pero qué pasa si sólo quieres un correo
que no está basado en menús? Afortunadamente
**//mailx//** está aquí para salvarte.
**//mailx//** está basado en la aplicación Berkeley Mail
con un comando **//mail//**
que aparece en la Versión 1 del UNIX de AT&T. Puede ser
utilizados de forma interactiva o no interactiva.
**//mailx//** lee el correo de la computadora
y muestra la combinación habitual de remitente, asunto, estatus,
y el tamaño en una lista, dejando al usuario en una línea de consola interactiva.
De hecho, podría parecerle familiar si se tomó la molestia de
revisar su correo inmediatamente después de instalar Slackware y leyó
el saludo de Pat Volkerding.
darkstar:~# mailx
Heirloom mailx version 12.4 7/29/08.Type ? for help.
"/var/spool/mail/root": 2 messages 2 new
>N1 To rootThu Mar 10 23:33 52/1902Register with the Linux counter project
N2 To rootThu Mar 10 23:35321/15417 Welcome to Linux (Slackware 14.0)!
?;
Para leer un mensaje, introduzca el número del mensaje en el campo
en el momento oportuno. Esto muestra el mensaje utilizando
**//more//** así que utilice la tecla 'RETORNO''.
para ver la página siguiente. Una vez que ha alcanzado el final del mensaje
pulse 'q' para volver a la vista de lista, o bien
'RETORNO' para continuar con el siguiente mensaje.
Para ver una lista de los comandos disponibles, introduzca '?' en el campo
**//mail//**; usando los comandos proporcionados,
puede visualizar las cabeceras de correo en el SPOOL, responder, borrar, grabar,
y muchas otras tareas comunes de correo electrónico.
**//mailx//** es más potente cuando se usa en
scripts. Para todas las opciones disponibles para
**//mailx//**, vea su página de manual. Una manera sencilla de
enviar un correo electrónico a alguien requiere sólo el comando en sí y la dirección de destino.
darkstar:~$mailx bob@example.com
Después de que se haya ejedutado el comando, aparece una línea de comandos interactiva para
la línea de asunto, el cuerpo del mensaje y el carácter final (un simple punto
en una línea vacía).
**//mailx//** puede ser completamente utilizado sin intervención humana, sin embargo. Generalmente, es seguro asumir que cualquier atributo
que se pueda definir en el shell interactivo para
**//mailx//** también se puede definir durante la creación de scripts
o usándolo como un comando no interactivo.
darkstar:~$ mailx -n -s "Test message" bob@example.com < ~/message.txt
En este ejemplo, el contenido del archivo
"message.txt" sería enviado como el cuerpo del mensaje
al destinatario especificado. No se requiere la interacción del usuario.
Dentro de su propio ordenador (localhost) o de su propia red, enviar correo
de esta manera es perfectamente posible. Pero a través de Internet generalmente se requieren algunos pasos más. Por supuesto, normalmente hay un servidor smtp que se encarga de la entrega de su
correo electrónico. Esto también se puede especificar como parte de su
comando **//mail//**:
darkstar:~$env MAILRC=/dev/null
from="bob@example.com (Bob Dobbs)"
smtp=relay.example.com mail -n -s "Test message" connie@example.com < ~/message.txt
En este caso, la variable //MAILRC// se fija en
/dev/null para poder anular cualquier valor por defecto del sistema, y el servidor
smtp así como la línea //FROM:// se definen. El resto del comando es el mismo que usar
**//mailx//** internamente dentro de la propia
computadora o red.
Sobre todo, **//mailx//** es usualmente visto como un
cliente de correo con las prestaciones mínimas; esto es en gran medida cierto,
pero cuando necesita ser capaz de hacer un script enviando correos electrónicos de notificación
o mensajes de actualización importantes, rápidamente se vuelve mucho más valioso
que una aplicación completamente interactiva como
o **//pine//** o **//mutt//**.
===== Clientes FTP =====
Muchos datos se almacenan en servidores FTP en todo el mundo. De hecho,
Slackware Linux se ofreció por primera vez públicamente a través de FTP y sigue siendo
distribuido de esta manera hoy. La mayoría del software de código abierto puede ser
descargado en código fuente o en forma binaria a través de FTP, por lo que saber cómo
recuperar esta información es una habilidad muy útil.
==== ftp ====
El cliente FTP más simple incluido con Slackware se llama simplemente,
**//ftp//**(1) y es un fiable, aunque algo simple medio de envío y recuperación de datos. **//ftp//**
se conecta a un servidor FTP, le pide su nombre de usuario y contraseña, y
entonces le permite poner o recibir datos desde y hacia ese servidor.
**//ftp//** ha caído en desgracia con los usuarios más experimentados ante la falta de funcionalidades, pero sigue siendo una herramienta útil,
y gran parte de la documentación que ve en línea le remitirá a ella.
Una vez que se ha inicializado una sesión FTP, se le colocará en una linea de comandos similar a una de shell.
Desde aquí puede cambiar y listar directorios usando los comandos //"cd"// y //"ls"//, igual que en una shell.
Adicionalmente, puede ejecutar el comando //"put"// para enviar un archivo al servidor, o un //"get"//
para recuperar datos del servidor. Si se está conectando a un
servidor FTP público, querrá usar el nombre de usuario //"anónimo"// y
simplemente introduzca su dirección de correo electrónico (o una falsa) para obtener la contraseña.
darkstar:~$ ftp ftp.osuosl.org
Name (ftp.osuosl.org:alan): anonymous
331 Please specify the password.
Password: secret
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd pub/slackware/slackware-current/
250 Directory successfully changed.
ftp> get ChangeLog.txt
local: ChangeLog.txt remote: ChangeLog.txt
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for ChangeLog.txt (33967
bytes).
226 File send OK.
33967 bytes received in 0.351 secs (94 Kbytes/sec)
ftp> bye
221 Goodbye.
==== ncftp ====
**//ncftp//**(1) (se pronuncia nick-f-t-p), es un
sucesor más rico en prestaciones que **//ftp//**, soportando
compleción de tabulador y recuperación recursiva. Se conecta automáticamente a un servidor
como usuario anónimo, a menos que especifique un nombre de usuario diferente
en la línea de comandos con el argumento //-u//. La principal
ventaja sobre **//ftp//** es la capacidad de enviar
y recuperar varios archivos a la vez con los comandos //"mput"// y //"mget"//. Si le pasas el argumento //-R// a cualquiera de ellos, pondrán u obtendrán datos recursivamente de los directorios.
darkstar:~# ncftp ftp.osuosl.org
Logging in...
Login successful.
Logged in to ftp.osuosl.org.
ncftp / > cd pub/slackware/slackware-current
Directory successfully changed.
ncftp ...ware/slackware-current > mget -R isolinux
isolinux/README.TXT: 4.63 kB 16.77 kB/s
isolinux/README_SPLIT.TXT: 788.00 B5.43 kB/s
isolinux/f2.txt: 793.00 B5.68 kB/s
isolinux/initrd.img:13.75 MB 837.91 kB/s
isolinux/iso.sort:50.00 B354.50 B/s
isolinux/isolinux.bin:14.00 kB 33.99 kB/s
isolinux/isolinux.cfg: 487.00 B3.30 kB/s
isolinux/message.txt:760.00 B5.32 kB/s
isolinux/setpkg: 2.76 kB 19.11 kB/s
ncftp ...ware/slackware-current > bye
==== lftp ====
El último cliente que vamos a ver es
**//lftp//**(1). Como
**//ncftp//**, soporta compleción de tabulador y
actividad recursiva, pero tiene una licencia más amigable. Más bien que usando //"mget"// y //"mput"//, todas las operaciones recursivas se manejan con el comando
//"mirror"//. //"mirror"// tiene muchas opciones diferentes disponibles, así que
tendré que dirigirte a la página de manual y al comando incorporado //"help"//
para más detalles.
darkstar:~# lftp ftp.osuosl.org
lftp ftp.osuosl.org:~> cd /pub/slackware/slackware-current
cd ok, cwd=/pub/slackware/slackware-current
lftp ftp.osuosl.org:/pub/slackware/slackware-current> mirror isolinux
Total: 2 directories, 16 files, 1 symlink
New: 16 files, 1 symlink
14636789 bytes transferred in 20 seconds (703.7K/s)
lftp ftp.osuosl.org:/pub/slackware/slackware-current> bye
===== rsync =====
¿Listo para ver algo genial? ¿Alguna vez se ha encontrado a sí mismo necesitando sólo
un puñado de archivos de un directorio grande, pero no está del todo seguro
de qué archivos ya dispone y cuáles necesita? Puede descargar
el directorio entero de nuevo, pero eso es duplicar mucho trabajo. Usted
puede escoger y elegir, revisar manualmente todo, pero eso es muy tedioso.
¿Tal vez ha descargado un archivo grande como un ISO, pero algo
salió mal con la descarga? No tiene sentido que usted deba volver a descargar el archivo completo si sólo se han corrompido unos pocos bits. Introduzca **//rsync//**(1), una rápida y
versátil herramienta de copia para archivos locales y remotos.
**//rsync//** usa un grupo de simples, pero muy
efectivas técnicas para determinar qué es lo que hay que cambiar. Verificando el
tamaño de archivo y la marca de tiempo, puede determinar si dos archivos son diferentes.
Si algo ha cambiado, puede determinar qué bytes son diferentes,
y simplemente descargar ese puñado de datos en lugar de un archivo entero.
Es realmente una maravilla de la tecnología moderna.
En su forma simplista, **//rsync//** se conecta a un protocolo
rsync y descarga una lista de archivos y directorios,
junto con sus tamaños, marcas de tiempo y otra información. A continuación,
la compara con los archivos locales (si los hay) para determinar lo que necesita para la
transferencia. Sólo se sincronizarán los archivos que sean diferentes. Adicionalmente
divide los archivos grandes en trozos más pequeños y compara esos trozos
utilizando una función de hash rápida y sencilla. Cualquier trozo que coincida no será
transferido, de modo que la cantidad de datos que deben copiarse puede ser
dramáticamente reducida. **//rsync//** también soporta
compresión, verbosidad, borrado de archivos, manejo de permisos y
muchas otras opciones. Para obtener una lista completa, deberá consultar la sección de manual
pero he incluido una pequeña tabla con algunas de las más comunes.
**Table 16.1. rsync Arguments**
|-v |Verbosidad incrementada|
|-c |Compruebe la suma de todos los archivos en lugar de confiar en el tamaño del archivo y la fecha y hora.|
|-a |Modo archivo (equivalente a -rlptgoD)|
|-e |Especifica una shell remota a usar|
|-r |Modo recursivo|
|-u |Actualizar - omitir archivos que son más nuevos en el extremo receptor|
|-p |Preservar permisos|
|-n |Ejecutar en prueba - realizar una ejecución de prueba sin hacer ningún cambio|
|-z |Compresión - práctico para conexiones de red lentas|
Debido a la potencia y versatilidad de **//rsync//**, se puede invocar de varias maneras.
Los dos ejemplos siguientes se conectan a un servidor de protocolo rsync para recuperar alguna información y a otro servidor vía ssh para encriptar la transmisión.
darkstar:~# rsync -avz rsync://ftp.osuosl.org/pub/slackware/slackware-current/ \
/src/slackware-current/
darkstar:~# rsync -e ssh ftp.slackware.com:/home/alan/foo /tmp/foo
====== Navegación de Capítulos ======
**Capítulo Anterior: [[es:slackbook:wifi|Redes inalámbricas]]**
**Capítulo siguiente: [[es:slackbook:package_management|Gestión de paquetes]]**
====== Fuentes ======
* Fuente original: [[http://www.slackbook.org/beta]] \\
* Escrito originalmente por Alan Hicks, Chris Lumens, David Cantrell, Logan Johnson
* Traducido por //[[wiki:user:pedro.herrero|Pedro Herrero García]] 2019/02/05 19:41 (UTC)//
{{tag>slackbook networking mail_clients web_browsers rsync}}