Está en la página 1de 67

Material de pre-estudio Curso Asterisk Intensivo

La versión más reciente de este material está en

http://a-mx.com/MaterialCursos

Introducción #1 Telefonía tradicional

Ing. Christian Cabrera R.

Evolución del teléfono

Graham Bell patenta el primer teléfono en 1876

Los teléfonos se conectaban por pares, por lo que para hacer llamadas era necesario desplazarse a centros de telefonía.

La central telefónica se inventa en 1877, permitiendo conmutar llamadas.

Inicialmente, la señal telefónica viaja como voltaje análogo a través de las líneas

Las llamadas (sobretodo las de LD) sufren de pérdidas en volumen, ruidos en línea y problemas de eco.

Durante los 60s, se comienza a reemplazar la red de telefonía análoga por una red digital

Esto aumenta considerablemente la calidad, confiabilidad y capacidad de los enlaces telefónicos

Introducción a telefonía tradicional

3

Voz humana
Voz humana

El rango de frecuencia de la voz es de 30 a 18,000 Hz

La mayor intensidad está entre los 30 a 4,000 Hz.

Los circuitos telefónicos se diseñaron en torno a esta frecuencia.

Un filtro reduce el paso solo del rango 300 a 3,400 Hz

Esto quiere decir que menos del 20% del sonido que emitimos viaja realmente por el teléfono

Por eso confundimos voces y/o palabras

por el teléfono • Por eso confundimos voces y/o palabras Fuente: http://bit.ly/9332kI Introducción a telefonía

Fuente: http://bit.ly/9332kI Introducción a telefonía tradicional

4

Telefonía análoga vs digital
Telefonía análoga
vs digital

Las señales digitales (unos y ceros) pueden ser transmitidas sin sufrir problemas de ruido o atenuación

Para convertir una señal análoga a una digital, debemos atravesar por un proceso conocido como Pulse Code Modulation (modulación por impulsos codificados)

¿En qué consiste PCM?

Introducción a telefonía tradicional

5

Pulse Code Modulation
Pulse Code Modulation

Consta de 4 pasos:

Filtrado

Muestreo

Cuantificación

Codificación

Opcionalmente: compresión

Al inicio tenemos una señal de amplitud variable (onda)

Al final tendremos un tren de bits (001100100110…)

Introducción a telefonía tradicional

6

PCM: Filtrado
PCM: Filtrado

Restringir la cantidad de información que tenemos de la señal original

Concentrarnos en la porción que nos interesa

Nuestra voz tiene un espectro completo de 18Khz

Sin embargo, solo transmitimos el rango 300-3,400Hz

Esto reduce la cantidad de información que debe ser enviada

Introducción a telefonía tradicional

7

PCM: Muestreo
PCM: Muestreo

Tomar muestras de una señal analógica a una frecuencia constante

Saber cuanto vale la señal en un momento exacto

De acuerdo a la frecuencia de muestreo es la cantidad de valores que obtendremos

de muestreo es la cantidad de valores que obtendremos Fuente: Introducción Wikipedia a telefonía tradicional 8

Fuente: Introducción Wikipedia a telefonía tradicional

8

PCM: Cuantificación
PCM: Cuantificación

Tomar los valores muestreados en el paso anterior y redondearlos al escalón discreto más cercano.

La cantidad máxima de niveles está dada por 2 n

Donde n = número de bits que ocuparemos por dato

2 n • Donde n = número de bits que ocuparemos por dato Fuente: Wikipedia Introducción

Fuente: Wikipedia Introducción a telefonía tradicional

9

PCM: Codificación
PCM: Codificación

Convertir los niveles a un valor en bits

Opcionalmente, es posible comprimir los paquetes de bits para usar un menor ancho de banda

los paquetes de bits para usar un menor ancho de banda Fuente: http://bit.ly/rrOLB4 Introducción a telefonía

Fuente: http://bit.ly/rrOLB4

Introducción a telefonía tradicional

10

¿Qué determina la calidad?
¿Qué determina la calidad?

Respuesta: La frecuencia de muestreo y el número de niveles

Reduciendo la cuadrícula obtenemos más detalle

¿Qué valores de muestreo y niveles usar?

Todo depende del tipo de información que vamos a transmitir

Introducción a telefonía tradicional

11

Teorema de Nyquist- Shannon
Teorema de Nyquist-
Shannon

«Es posible recuperar una señal limitada en frecuencia a partir de una señal muestreada al doble de la frecuencia que la máxima original»

O dicho en palabras simples:

Si una señal tiene una frecuencia X, debe muestrearse a 2X

Ya mencionamos que un circuito telefónico transmite el rango de voz humana de los 300 a los 3,400 Hz

Por lo tanto, el rango de frecuencia es menor a 4Khz, así que 8Khz de frecuencia de muestreo resultan suficientes.

Como comparación, la música en CD está muestreada a 44.1 Khz (para comprender todo el espectro audible humano)

Introducción a telefonía tradicional

12

Ancho de banda
Ancho de banda

Ancho de banda = Niveles (bits) * muestreos

8 bits * 8,000 hz = 64 kbits/s

Esta unidad es conocida como un DS-0

Enlaces digitales (E1,T1) son múltiplos de DS-0

Por esta razón, un E1 (32 canales DS-0) ofrece exactamente 2mbits/s

32 * 64 = 2,048 kbit/s

El ancho de banda mencionado es para PCM puro

En VoIP podemos reducir el ancho de banda usando códecs

Introducción a telefonía tradicional

13

Dual Tone Multi Frequency (DTMF)
Dual Tone Multi Frequency
(DTMF)

Fuente: http://www.hamsexy.com/dtmf.jpg

Reemplazo del sistema de marcación por pulsos.

Marcación más rápida

Dos tonos que representan un único dígito.

Con 8 tonos podemos representar 16 dígitos diferentes

El receptor de los tonos puede descomponer las frecuencias y saber que dígito fue el que se presionó.

Introducción a telefonía tradicional

14

Resumen del capítulo
Resumen del capítulo

Los circuitos telefónicos convencionales están limitados en su diseño

Nunca se pensó que íbamos a transmitir la cantidad de información que ahora requerimos.

Los 4 pasos de PCM:

Filtrado, muestreo, cuantificación y codificación.

La calidad de una señal digital va en función de la frecuencia de muestreo y la cantidad de bits para la cuantificación

Al aumentar la calidad, el ancho de banda sube.

Cuando presionamos el teclado telefónico, existen 2 tonos únicos asignados a esa tecla.

Introducción a telefonía tradicional

15

Evaluación
Evaluación

Al final de cada capítulo se te pedirá que contestes una evaluación del material consultado.

Los resultados son personales, y únicamente tienen el propósito de hacerte notar cuanto aprendiste. También nos ayudan a hacer notar que conceptos no están claros en el material.

Para contestar la evaluación, abre la siguiente liga:

http://enlaza.mx/quiz

Debes proporcionar tu correo electrónico y el capítulo que estás respondiendo.

Introducción a telefonía tradicional

16

Introducción #2 Voz sobre IP

Ing. Christian Cabrera R.

VoIP: Antecedentes
VoIP: Antecedentes

Voice over Internet Protocol

La voz humana (análoga) es convertida en datos digitales.

Los datos se convierten en paquetes que son enviados a través de enlaces compartidos, basados en IP.

Costos reducidos al no tener que rentar circuitos/enlaces dedicados.

La mayoría de usuarios cree que VoIP = Skype

Aunque VoIP no necesariamente necesita una PC

Probablemente la usemos todos los días sin saberlo

Una buena implementación es aquella que es invisible al usuario final

Introducción a VoIP

18

La mala imagen de VoIP
La mala imagen de VoIP

Recordemos que VoIP empezó su boom en el 2005:

Infraestructura de redes deficiente para las necesidades de comunicación.

Falta de conocimientos al implementarla.

Protocolos como SIP se lanzaron al mercado apresuradamente.

Hay más variables involucradas

Más puntos posibles de falla (energía eléctrica, ancho de banda, disponibilidad en componentes, etc).

No es plug & play como la telefonía tradicional.

Los usuarios están acostumbrados a prácticas de la vieja escuela.

Introducción a VoIP

19

Entonces… ¿la telefonía tradicional es mejor?
Entonces… ¿la telefonía
tradicional es mejor?

No necesariamente, simplemente sacrifica algunos puntos para obtener más funcionalidades

Introducción a VoIP

20

Códecs
Códecs

Significa codificador/decodificador

Es el algoritmo usado para comprimir la voz

La calidad de un códec determina la calidad de la voz.

El ancho de banda usado también es responsabilidad del códec.

Se escogen de acuerdo a la topología de la red y del procesador.

Si el ancho de banda es barato (ej. LAN), usamos códecs de alta calidad y baja compresión (ej. G722 o G711)

Si el tiempo de CPU es más económico que el enlace, usamos códecs de alta compresión (ej. G729)

Regla general común:

Menor ancho de banda = menor calidad y mayor uso de CPU

Introducción a VoIP

21

Calidad/ancho de banda por códec

70 60 50 G711 G729 40 G723.1 30 GSM G728 20 G722 10 iLBC 0
70
60
50
G711
G729
40
G723.1
30
GSM
G728
20
G722
10
iLBC
0
3.2
3.4
3.6
3.8
4
4.2
4.4
Calidad MOS
G711
G729
G723.1
G726
GSM
G722
G728
iLBC
Bitrate Nominal (Kbps)
64
8
6.3
32
12.2
64
16
15.2
MOS
4.1
3.92
3.9
3.85
3.5
4.3
3.61
4.14
Bitrate Nominal (kbps)

Introducción a VoIP

22

Bitrate vs. Calidad

Bitrate vs. Calidad Fuente: http://www.opus-codec.org/comparison/ Introducción a VoIP 2 3

Fuente: http://www.opus-codec.org/comparison/

Introducción a VoIP

23

Bitrate vs. Latencia

Bitrate vs. Latencia Fuente: http://www.opus-codec.org/comparison/ Introducción a VoIP 2 4

Fuente: http://www.opus-codec.org/comparison/

Introducción a VoIP

24

Códecs (2)
Códecs (2)

Pueden ser gratuitos o patentados

G729 y G723 requieren licencia.

Para que 2 sistemas que usan diferentes códecs puedan comunicarse, debe realizarse un transcoding.

Traducir entre códecs.

Es muy costoso en CPU. Evitarlo en lo posible.

Son independientes del protocolo usado.

Introducción a VoIP

25

Protocolos
Protocolos

Son un conjunto de reglas que regulan como es que el emisor y el receptor entablan la llamada

Autenticación, intercambio de datos, negociación, etc.

Es necesario que ambas partes hablen el mismo protocolo.

Existen muchos protocolos que pueden utilizarse para la comunicación en tiempo real:

SIP, IAX2, H323, Skinny, MGCP, Skype, etc

Algunos protocolos están estandarizados y son abiertos (SIP, IAX2). Otros son cerrados (Skype)

Nos centraremos en los 2 protocolos más importantes para Asterisk.

Introducción a VoIP

26

Protocolos: SIP
Protocolos: SIP

Session Initiation Protocol

Protocolo de Inicio de Sesión

Desarrollado por el Internet Engineering Task Force El protocolo más utilizado para VoIP en la actualidad

Es un estándar, con cientos de implementaciones en software y hardware

SIP fue desarrollado “en papel”

Hasta su implementación se detectaron problemas en su diseño

Introducción a VoIP

27

Diálogo de SIP
Diálogo de SIP
Diálogo de SIP Fuente: askozia.com Se aprovecha de otros protocolos para hacer su trabajo • Session

Fuente: askozia.com

Se aprovecha de otros protocolos para hacer su trabajo

Session Description Protocol (SDP)

Real Time Protocol (RTP)

SIP tiene 2 partes:

Señalización enviada en SDP por el puerto 5060 UDP por default

La voz viaja usando RTP por un puerto aleatorio

Este diseño trae problemas de NAT

Audio en un solo sentido

Introducción a VoIP

28

Protocolos: SIP (2)
Protocolos: SIP (2)

SIP nunca se diseñó para ser usado en telefonía

Las instrucciones de SIP sirven para crear sesiones en general (no explícitamente llamadas)

Se hizo para lograr que los recursos actúen en conjunto, usando un formato común, y que permitan comunicarse.

Los encabezados SIP viajan en texto simple

Fácil de hacer debug, pero permite que sea susceptible a sniffing.

Soporta encriptación con el uso de módulos adicionales (se verá en la sección de seguridad).

Hablaremos más de SIP durante la introducción a Asterisk.

Introducción a VoIP

29

Protocolos: IAX2
Protocolos: IAX2

Inter Asterisk eXchange v2

IAX v1 es obsoleto. Cuando decimos “IAX” se da por entendido que hablamos de la v2.

Creado por Mark Spencer (el autor de Asterisk) para ser un protocolo de telefonía desde el inicio

No es un estándar, por lo que no mucho hardware lo soporta

Casi exclusivo para interconectar 2 equipos Asterisk

No solo transporta audio y video

Se utiliza también para compartir el plan de marcación del PBX.

Introducción a VoIP

30

Protocolos: IAX2 (2)
Protocolos: IAX2 (2)

Tiene notables ventajas con respecto a SIP

No tiene problemas con NAT porque usa un único puerto (UDP 4569) Ahorra ancho de banda reutilizando los encabezados de múltiples llamadas agrupadas.

Sus encabezados viajan en binario (también consumiendo menor ancho de banda)

Es más ligero (su stack completo cabe en una memoria 4KB)

Hablaremos más a detalle de este protocolo en el módulo intermedio.

Introducción a telefonía/VoIP

31

DTMFs en VoIP
DTMFs en VoIP

Previamente comentamos que en telefonía convencional, los tonos viajan como audio a través del par de cobre

En VoIP hay más alternativas

Según el códec o protocol que usemos, tendremos 2 alternativas:

Inband (en banda)

RFC2833 (fuera de banda)

Una mala configuración ocasiona que no se detecten los tonos.

Ej. El receptor espera recibir tonos en RFC2833, pero nosotros los enviamos en banda.

Introducción a VoIP

32

DTMFs en VoIP (2)
DTMFs en VoIP (2)

¿Qué significa cada mecanismo? En banda (inband)

Los tonos se envían como audio.

Susceptible a entrecortes de llamada.

Solo puede usarse en códecs que no “corten” el audio de los tonos al comprimir (como G711 o G726)

Fuera de banda (RFC2833)

Este es el mecanismo preferido para enviar tonos.

En lugar de enviar audio, enviamos señales (paquetes) que indican el dígito presionado.

Todos los códecs los soportan.

SIP puede usar ambos tipos (si el códec se lo permite) IAX2 siempre envía los DTMFs usando RFC2833

Introducción a telefonía/VoIP

33

En resumen
En resumen

VoIP es más avanzado, pero más delicado

Hay más detalles a considerar dentro de un sistema VoIP.

El códec que usemos será el responsable de la calidad de la llamada

Nos corresponde a nosotros elegir el adecuado

SIP e IAX2 son los protocolos mejor soportados en Asterisk

Cada uno tiene sus características y por lo tanto, sus usos.

Junto con el protocolo y los códecs, es necesario elegir como transmitiremos los DTMFs

Inband o RFC2833

Introducción a VoIP

34

Evaluación
Evaluación

No se olviden de contestar la evaluación sobre lo aprendido en este capítulo:

http://enlaza.mx/quiz

Recuerda proporcionar tu correo electrónico y el capítulo que estás respondiendo.

Introducción a telefonía/VoIP

35

Introducción #3 Linux

Ing. Christian Cabrera R.

¿Qué es Linux?

Sistema operativo de código abierto.

Creado por Linus Torvalds en 1991

Similar a Unix y regido bajo la licencia GNU/GPL

GNU Not Unix/General Public License

No necesariamente es gratuito

Muy usado en ambiente de servidores

es gratuito Muy usado en ambiente de servidores • Sin pago por uso del software (generalmente)

Sin pago por uso del software (generalmente)

Sin recursos consumidos por una GUI

Comienza a tomar auge en distribuciones de usuario final

Difícil medir penetración en mercado

No hay conteo de licencias activadas

Introducción a Linux

37

Open Source
Open Source

Es una filosofía que promueve el libre acceso y redistribución de la información

Permite que los desarrollos se mejoren a través de una comunidad, sin que deba haber una empresa detrás de ellos

La comunidad se encarga de mantenerlos/mejorarlos

Existen cientos de ideas y proyectos que son open source:

se encarga de mantenerlos/mejorarlos Existen cientos de ideas y proyectos que son open source: Introducción a
se encarga de mantenerlos/mejorarlos Existen cientos de ideas y proyectos que son open source: Introducción a

Introducción a Linux

38

Licenciamiento
Licenciamiento

Todo el software (incluyendo el gratuito) tiene algún tipo de licenciamiento

Comercial, Open Source, Shareware, dominio público, freeware, etc

Las licencias determinan que es lo que el usuario final puede hacer con el software:

Distribución, alteración, uso comercial, restricciones, garantía, derechos, etc

La licencia GPL te permite alterar, copiar y usar libremente el código, siempre y cuando trabajos derivados se liberen también como GPL

Introducción a Linux

39

Distribuciones de Linux
Distribuciones de Linux
Distribuciones de Linux Conocidas como “distros” • Varían en los paquetes que contienen, pero todas usan

Conocidas como “distros”

Varían en los paquetes que contienen, pero todas usan el mismo kernel (núcleo)

Cualquier distribución puede configurarse para igualar a cualquier otra

Especializadas en diferentes entornos

Ej. Servidores, sistemas embebidos, usuario final, teléfonos móviles, etc

2 distros principales desde las que se derivan las demás

Debian: su variantes más famosas son Ubuntu y Mint

RedHat: CentOS, Fedora, Mandriva son algunas de sus derivaciones más usadas

Introducción a Linux

40

Para ver la lista completa de distribuciones, consulta la imagen Distribuciones de linux.png ubicada en el DVD

Introducción a Linux

41

Características de Linux
Características de Linux

Free as in freedom

Libre, no necesariamente gratis

Cualquiera puede copiar, modificar y redistribuir el código. Inclusive, cobrar por él

Multi-usuario, multi-proceso

Múltiples usuarios trabajando en un mismo sistema

Fuerte énfasis en seguridad

Respaldado por una comunidad con privilegios de modificación (cualquiera puede corregir el código de alguien más)

con privilegios de modificación (cualquiera puede corregir el código de alguien más) Introducción a Linux 4

Introducción a Linux

42

Características de Linux (2)
Características de Linux (2)

Soporte modular altamente configurable

Puedes personalizar literalmente todo.

Si algo no cubre todas tus necesidades, puedes modificar el código.

Sistema universal de archivos

Todo dispositivo se puede identificar por una ruta y se puede montar en cualquier lugar.

Control del sistema por línea de comandos

Tener una GUI es opcional (y poco recomendada en ambiente de servidores)

Introducción a Linux

43

Línea de comandos (CLI)
Línea de comandos (CLI)

Más fácil de automatizar que una interfaz gráfica

Ahorra ancho de banda al administrarlo

Ideal para servidores

Control remoto por SSH

Telnet es inseguro

Nos permite transferir archivos y tunelizar tráfico

PuTTY es el software más usado para SSH

Introducción a Linux

44

Editor de archivos: nano
Editor de archivos: nano

Más sencillo de usar que vi o vim.

Apto para principiantes, pero si ya se tiene control sobre otro editor, puede usarse cualquier reemplazo

Editar un archivo de texto se hace con

nano <ruta al archivo> Ejemplo nano /etc/asterisk/sip.conf

Comandos básicos:

Ctrl + O : confirmar y guardar

Ctrl + X : guardar y salir

Ctrl + W : buscar

Si editamos un archivo que no existe, lo crearemos.

Es conveniente familiarizarse con el proceso, ya que lo usaremos mucho durante el curso

Introducción a Linux

45

Práctica 2.1

Instalación de Linux (Consulta tu manual de prácticas)

Sistema de archivos

Estructura jerárquica (árbol)

Todo empieza desde la ruta / (raíz, slash)

Todo en Linux es case-sensitive

Ej. Archivo.txt no es igual a archivo.txt

slash) Todo en Linux es case-sensitive • Ej. A rchivo.txt no es igual a a rchivo.txt

Introducción a Linux

47

Rutas
Rutas

Rutas relativas

Aquellas que solo son válidas dependiendo de la carpeta donde se esté trabajando

Rutas absolutas

Son válidas desde cualquier posición

Comienzan siempre con /

amx:~# significa «Estoy conectado al equipo amx, en la carpeta home del usuario root»

¿Cómo saber en donde estamos ‘parados’?

Observando el prompt

Comando pwd

amx:/etc/asterisk# significa «Estoy dentro del equipo llamado amx, en la carpeta /etc/asterisk. Soy el usuario root»

La # significa que tienes poderes de root

El $ indica que no tienes privilegios

syncuser@amx:/root$ significa «Estoy en el equipo amx, dentro de la carpeta /root. No soy root, sino que soy el usuario syncuser»

Introducción a Linux

48

Ejecución de archivos
Ejecución de archivos

En todo SO, existe una variable PATH

Determina la ruta default a buscar si el comando solicitado no existe en la actual

Pueden verla usando echo $PATH desde el CLI

El PATH incluye parejas de directorios bin y sbin:

/usr/local/bin | /usr/local/sbin

/usr/bin | /usr/sbin

/bin | /sbin

Si el archivo que ejecutaremos está en el mismo directorio donde estamos trabajando, es necesario prefijarlo con ./

Ejemplo: ./configure

Para que un archivo sea ejecutable, debe tener permiso de ejecución

Introducción a Linux

49

Permisos de archivo
Permisos de archivo

Todo archivo/directorio en Linux tiene permisos para 3 entidades diferentes:

Dueño

Grupo

Todos los demás

A su vez, cada entidad puede tener diferentes permisos:

R -> Read (lectura)

W -> Write (escritura)

X -> Execute (ejecución)

drwxr-x---

3 root root

4096 Nov 3 23:00 .

drwxr-xr-x 25 root root

4096 Oct 31 21:18

-rw-------

1 root root

942 Sep 22 15:28 anaconda-ks.cfg

-rw-------

1 root root

2043 Nov 5 18:10 .asterisk_history

-rw-------

1 root root

25695 Nov 5 19:55 .bash_history

-rw-r--r--

1 root root

24 Jan 6 2007 .bash_logout

-rw-r--r--

1 root root

191 Jan 6 2007 .bash_profile

-rw-r--r--

1 root root

176 Jan 6 2007 .bashrc

-rwxr-xr-x 1 root root

117 Oct 22 12:58 canales.sh

-rw-r--r--

1 root root

100 Jan 6 2007 .cshrc

-rw-r--r--

1 root root

191 Sep 26 17:59 ifcfg-eth0

Introducción a Linux

50

Permisos de archivo (2)
Permisos de archivo (2)

Los permisos se asignan de manera binaria (recordemos el orden RWX)

111 significa “leer, escribir y ejecutar”

101 significa “leer y ejecutar, pero no escribir”

100 significa “solo leer”

Convertimos el número a decimal

111 = 4 + 2 + 1 = 7

101 = 4 + 0 + 1 = 5

100 = 4 + 0 + 0 = 4

Escribimos el permiso en 3 dígitos decimales

754 significa “dueño hace todo, grupo lee y ejecuta, todos los demás solo pueden leer”

Introducción a Linux

51

Permisos de archivo (3)
Permisos de archivo (3)

Entonces:

755 permite que todos lean y ejecuten, pero solo el dueño puede modificar el archivo

777 permite a todos hacer todo (¡inseguro!)

600 es muy restrictivo (solo el dueño puede leer o modificar el archivo)

El usuario root puede modificar cualquier archivo, aún si no se le conceden los permisos para hacerlo

Introducción a Linux

52

Comandos básicos
Comandos básicos

Comando

Descripción

 

Ejemplo

ls

Enlista archivos y carpetas

ls

-la

cd

Cambiar directorio

cd

/etc/asterisk

mv

Mueve o renombra un archivo

mv

viejo.txt nuevo.txt

 

Copia un archivo

cp

/etc/asterisk/sip.conf

cp

/home/sip.conf

pwd

Imprime el directorio actual

pwd

cat

Concatena archivos y los imprime a pantalla

cat sip.conf sip_additional.conf

top

Despliega estadísticas de las tareas actuales

top

ps

Muestra los procesos activos

ps

eF

Introducción a Linux

53

Comandos básicos (2)
Comandos básicos (2)

Comando

Descripción

Ejemplo

nano

Editor de texto simple

nano sip.conf

man

Despliega información de ayuda sobre una aplicación

man cp

wget

Descarga un URL

wget http://asteriskmx.com

chmod,

Cambia los permisos o el propietario de un archivo

chmod 755 script.sh; chown www-data /var/www

chown

ssh

Conecta con un host remoto usando SSH

ssh 64.123.45.67

 

Copia de o hacia un host remoto usando SSH

scp file.txt

scp

64.123.45.67:/destino

grep

Filtra texto basado en una RegExp

grep ‘Wrong password’ /var/log/asterisk/full

Introducción a Linux

54

Comandos básicos (3)
Comandos básicos (3)

Comando

Descripción

Ejemplo

more, less

Pagina una salida de datos

cat hola.txt | more

tar

Empaqueta (agrupa) archivos, pero no reduce el tamaño total

tar cf backup.tar /etc/asterisk/*

gzip

Comprime un archivo

gzip -9 miarchivo.tar

crontab

Edita o muestra el crontab del sistema

crontab e

find

Encuentra archivos que coincidan con el criterio proporcionado

find / -name ‘file.txt’

passwd

Cambia la contraseña del usuario actual

passwd miusuario

netstat

Da el estado actual de puertos y conexiones abiertas

netstat anpl

Introducción a Linux

55

Comandos adicionales
Comandos adicionales

Comando

Descripción

Ejemplo

iptraf

Muestra estadísticas del tráfico IP

iptraf

make

Compila una aplicación basado en reglas del archivo Makefile

make; make install

apt

Gestor de paquetes del repositorio de Debian

apt-get install links

yum

Gestor de paquetes del repositorio de CentOS/Redhad

yum install openvpn

links

Navegador en modo texto

links http://asteriskmx.com

Introducción a Linux

56

Operadores
Operadores

A veces no es conveniente la salida a pantalla

Ej. Imprimir reportes demasiado largos

Existen caracteres especiales que alteran el flujo de datos

Son llamados operadores

Los operadores pueden concatenar múltiples flujos para hacer todo en un solo proceso

Introducción a Linux

57

Operadores (2)
Operadores (2)

> (mayor que)

Direcciona un flujo hacia un archivo/dispositivo

Si el archivo no existe, lo crea. Si ya existe, lo sobreescribe cat file.txt next.txt > total.txt

>> (doble mayor que)

Igual que >, pero si el archivo ya existe, agrega el texto al final cat hoy.log >> siempre.log

Introducción a Linux

58

Operadores (3)
Operadores (3)

< (menor que)

Redireccionamiento hacia atrás

Envía el contenido de un archivo hacia el proceso anterior mysql -u root bd < /home/file.sql

; (punto y coma)

Permite introducir múltiples comandos por línea, introduciendo uno tras de otro echo 1; echo 2; echo 3

Introducción a Linux

59

Operadores (4)
Operadores (4)

| (pipe)

Envía la salida de un proceso hacia otro.

Útil para hacer filtrados o para evitar el uso de archivos temporales cat /var/log/messages | egrep -i “Oct 10”

$( )

También pueden utilizarse comillas invertidas ` `

Evalúa un comando al momento e inserta el resultado en la línea en que fue invocado apt-get install linux-headers-$(uname r)

Introducción a Linux

60

Operadores (5)
Operadores (5)

& (ampersand)

Ejecuta un comando y lo envía al fondo.

Regresa el control del cursor inmediatamente mysql -p < proceso_largo.sql &

&& (doble ampersand)

Ejecuta comandos en serie, si y solo si el comando inmediato anterior terminó sin errores ./configure && make && make install

Introducción a Linux

61

Scripts
Scripts

Archivos de texto que contienen comandos por lotes

Mayoritariamente escritos en bash, pero cualquier intérprete instalado es válido La primera línea del archivo determina el intérprete

Deben hacerse ejecutables previamente:

chmod 755 miScript.sh

Es conveniente programar tareas largas en scripts para ejecutarlas rápidamente

Introducción a Linux

62

#!/bin/bash

#!/bin/bash Declaración del intérprete. Nos dice en que lenguaje está escrito el script # Invocar como:

Declaración del intérprete. Nos dice en que lenguaje está escrito el script

# Invocar como: sync_grabaciones <año> <mes> <dia>

# Ejemplo: ./sync_grabaciones 2012 07 13

<dia> # Ejemplo: ./sync_grabaciones 2012 07 13 Comentarios ORIGDIR=/var/spool/asterisk/monitorDONE/MP3

Comentarios

ORIGDIR=/var/spool/asterisk/monitorDONE/MP3

DESTDIR=/mnt/Grabaciones FILE1=/tmp/find`date +"%N"` FILE2=/tmp/find`date +"%N"`

YEAR=$1

MONTH=$2

DAY=$3

FILE2=/tmp/find`date +"%N"` YEAR=$1 MONTH=$2 DAY=$3 Constantes o valores iniciales Argumentos de invocación if

Constantes o valores iniciales

YEAR=$1 MONTH=$2 DAY=$3 Constantes o valores iniciales Argumentos de invocación if [ ! -n "$1" ]

Argumentos de invocación

if [ ! -n "$1" ] then

YEAR=`date +"%Y"` MONTH=`date +"%m"` DAY=`date +"%d"`

Fi

MONTH=`date +"%m"` DAY=`date +"%d"` Fi En caso de que no se le proporcionen argumentos de

En caso de que no se le proporcionen argumentos de invocación, creamos los nuestros propios

touch --date "$YEAR-$MONTH-$DAY 00:00:00" $FILE1 touch --date "$YEAR-$MONTH-$DAY 23:59:59" $FILE2

touch --date "$YEAR-$MONTH-$DAY 23:59:59" $FILE2 Creamos archivos temporales con la fecha de modificación

Creamos archivos temporales con la fecha de modificación que calculamos previamente

if [ ! -d $DESTDIR/$YEAR/$MONTH/$DAY ] then

previamente if [ ! -d $DESTDIR/$YEAR/$MONTH/$DAY ] then Nos aseguramos que la carpeta de destino (AÑO/MES/DIA),

Nos aseguramos que la carpeta de destino (AÑO/MES/DIA), exista. Si no, la creamos

echo "Carpeta $DESTDIR/$YEAR/$MONTH/$DAY no existe. Creando" mkdir $DESTDIR/$YEAR mkdir $DESTDIR/$YEAR/$MONTH mkdir $DESTDIR/$YEAR/$MONTH/$DAY

fi echo Procesando $YEAR $MONTH $DAY

find $ORIGDIR -maxdepth 1 -type f -name "*.mp3" -newer $FILE1 -not -newer $FILE2 -mmin +3 -exec mv {}

$DESTDIR/$YEAR/$MONTH/$DAY \;

rm $FILE1

rm $FILE2

mv {} $DESTDIR/$YEAR/$MONTH/$DAY \; rm $FILE1 rm $FILE2 Eliminamos los archivos temporales Ejecutamos la sentencia

Eliminamos los archivos temporales

Ejecutamos la sentencia de movimiento

Introducción a Linux

63

Crontab
Crontab

Automatizador de tareas de Linux

Aquí se programan las tareas de mantenimiento que el sistema debe ejecutar a ciertas horas

Se edita con crontab –e

Recibe 5 argumentos que indican la hora y fecha de ejecución:

Minuto de la hora (0

59)

Hora del día (0

23)

Mes del año (1

12)

Día del mes (1

31)

Día de la semana (0

6)

Introducción a Linux

64

Ejemplos de Crontab
Ejemplos de Crontab

0 * * * * /miscript.sh

Ejecuta un script personalizado al minuto 0 de cada hora, 365 días al año

30 5 * * * /sbin/reboot

Reiniciar el servidor todos los días a las 5:30 horas

0 12 1 1 * /miscript.sh

Ejecuta un script al mediodía del de enero

30 18 * * 5 /bin/mysqlbackup.sh

Hacer un respaldo de MySQL todos los viernes a las 18:30 horas

Introducción a Linux

65

En resumen
En resumen

Linux es un sistema operativo de código abierto

Recuerda: es libre, no necesariamente gratis.

Todas las rutas parten desde /

Estructura jerárquica. Todo el sistema de archivos es un árbol.

Bash es su lenguaje nativo

Los operadores nos permiten encadenar comandos

<, >, >>, &, &&, |, ;

Podemos programar tareas con scripts y agendarlas con el crontab

Un script debe tener permisos de ejecución (chmod 755)

Es preferible trabajar remotamente con SSH

Más cómodo, y podemos controlar el equipo desde donde sea

Introducción a Linux

66

Evaluación
Evaluación

No se olviden de contestar la evaluación sobre lo aprendido en este capítulo:

http://enlaza.mx/quiz

Recuerda proporcionar tu correo electrónico y el capítulo que estás respondiendo.

Introducción a telefonía/VoIP

67