Lenguaje BASH,Crontab

12
Lenguaje BASH. Básicamente utilizamos script en lenguaje BASH para automatizar ciertas tareas que realizamos en nuestro sistema. Es un intérprete de comandos (Bourne-Again Shell), y que utiliza distintas sintaxis, como Korn Shell (KSC) o el C Shell (CSH). Los archivos con la extensión .sh podrán ser ejecutados siempre y cuando la primera línea contenga lo siguiente, donde # nos permite colocar comentarios: El comando echo muestra un mensaje en la pantalla.

description

programacion

Transcript of Lenguaje BASH,Crontab

Page 1: Lenguaje BASH,Crontab

Lenguaje BASH.

Básicamente utilizamos script en lenguaje BASH para automatizar ciertas tareas que realizamos en nuestro sistema.

Es un intérprete de comandos (Bourne-Again Shell), y que utiliza distintas sintaxis, como Korn Shell (KSC) o el C Shell (CSH).

Los archivos con la extensión .sh podrán ser ejecutados siempre y cuando la primera línea contenga lo siguiente, donde # nos permite colocar comentarios:

El comando echo muestra un mensaje en la pantalla.

Page 2: Lenguaje BASH,Crontab

CRONTAB Linux

Viene del griego chronos que significa “tiempo”. Cron es un administrador de procesos en segundo

plano (demonio) que ejecuta acciones en intervalos de tiempo regulares (EJ: cada minuto, día , mes

o año). Donde se identifican los procesos se van a ejecutar y la hora en que estos eventos se deben

ejecutar.

Estructura del crontab en Linux.

Ejemplo en la ejecución de un programa determinado a cierta hora.

Page 3: Lenguaje BASH,Crontab

Como funciona

El demonio cron se inicia de /etc/rc.d/ ò /etc/init.d dependiendo del tipo de distribución.

Cron se ejecuta en el background, revisando cada minuto la tabla de tareas crontab /ect/crontab ò en /var/spool/cron en búsqueda de tareas que se deben cumplir.

Al igual que los archivos bash, el crontab nos sirve para la automatización de tareas por EJ: de un sistema o un sistema de respaldo.

En resumen crontab en un achivo de texto que contiene una lista de comnados que se tiene que ejecutar cada cierto intervalo de tiempo que definamos en nuestro programa.crontab verifica la fecha y la hora en las cuales nuetsro script debe ejecutarse, los permisos de ejecución y lo realiza en el backgroun.

Comandos utilizados en la programación del modem.

Page 4: Lenguaje BASH,Crontab

COMANDO ps:

El comando ps se usa para informar del estado del proceso. ps es la abreviatura de Process Status.

SINTAXIS:

La sintaxis es ps [opciones]

OPCIONES:

-a Listar información sobre todos los procesos más frecuentemente solicitados: todos excepto los líderes de grupo de procesos y los procesos no asociados con un terminal.

-A ó e

Lista información para todos los procesos.

-d Lista información sobre todos los procesos excepto los líderes de sesión.

-e Listar información sobre todos los procesos en ejecución.

-f Genera un listado completo.

-j Mostrar identificador de sesión y de grupo de proceso.

-l Genera un listado largo.

Page 5: Lenguaje BASH,Crontab

COMANDO cd:

El comando cd se usa para cambiar de directorio.

SINTAXIS:

La sintaxis es cd [directorio | ~ | ./ | ../ | - ]

OPCIONES:

-L Usar la estructura física del directorio.

-P Fuerza enlaces simbólicos.

EJEMPLO:

1. cd linux-command

Este comando te llevará al subdirectorio (linux-command) desde el directorio raíz.

2. cd ..

Éste cambiará al directorio raíz desde el directorio actual.

3. cd ~

Éste comando irá al directorio de inicio del usuario que es "/home/username".

Page 6: Lenguaje BASH,Crontab

COMANDO kill:

El comando kill se usa para detener procesos en segundo plano.

SINTAXIS:

La sintaxis es kill [-s] [-l] %pid

OPCIONES:

-s Especifica la señal a enviar. La señal puede ser un nombre de señal o un número.

-l Escribe todos los valores de señal soportados por la implementación, si no se da ningún operando.

-pid Identificador de proceso o trabajo.

-9 Fuerza el kill de un proceso.

COMANDO grep:

El comando grep selecciona y muestra las líneas de los archivos que coincidan con la cadena o patrón dados.

SINTAXIS:

La sintaxis es grep [opciones] patrón [archivo]

OPCIONES:

Page 7: Lenguaje BASH,Crontab

-A Muestra el número de líneas de texto que hay después de la línea coincidente.

-a No suprime las lineas de salida con datos binarios, las trata como texto.

-b Mostrar el offset de bytes del archivo de entrada antes de cada linea en la salida.

-c Muestra la cuenta de líneas coincidentes.

-d acción

Definir acción para acceder a los directorios read lee todos los archivos del directorio. skip salta directorios. recurse lee reiterativamente todos los archivos y directorios

-e patrón

Busca un patrón.

-h Muestra las líneas coincidentes pero no los nombres de archivo.

-i Ignora los cambios mayúsculas y minúsculas, las considera equivalentes.

-n Muestra la línea y el número de línea.

-q Mostrar en modo silencioso, no muestra nada.

-r Lee iterativamente todos los archivos en los directorios y subdirectorios encontrados.

-v Muestra todas las lineas que no coinciden.

-V Muestra la versión.

-w Coincidencia en palabras completas únicamente.

También puedes usar patrones para la operación de búsqueda.

. Coincidencia de caracteres únicos.

* Caracter comodín.

^ Empieza por.

$ Termina en.

Page 8: Lenguaje BASH,Crontab

COMANDO ls:

El comando ls lista los archivos y directorios en el directorio de trabajo actual.

SINTAXIS:

La sintaxis es ls [OPCIONES]... [ARCHIVO]

OPCIONES:

-l Lista todos los archivos, directorios y su modo, número de enlaces, propietario del archivo, tamaño del archivo, fecha y hora de modificación y nombre de archivo.

-t Ordena por fecha de última modificación.

-a Lista todas las entradas incluyendo archivos ocultos.

-d Lista archivos del directorio en vez de contenidos.

Page 9: Lenguaje BASH,Crontab

-p Pone una barra al final de cada directorio.

-u Ordena por fecha de último acceso.

-i Muestra información de inodo.

-ltr Ordena archivos por fecha.

-lSr Ordena archivos por tamaño.

COMANDO chmod:

El comando chmod te permite alterar / cambiar los derechos de acceso a archivos y directorios. El Permiso de Archivo se da a usuarios, grupos y otros como,

SINTAXIS:

La sintaxis es chmod [options] [MODE] FileName Permiso de Archivo

# Permiso de Archivo

0 ninguno

1 sólo ejecutar

2 sólo escritura

3 escritura y ejecución

4 sólo lectura

5 lectura y ejecución

6 lectura y escritura

7 todos los permisos

Page 10: Lenguaje BASH,Crontab

Resumen de comando ocupados:

Comandos utilizados en Config Modem

Comando Función

$ ejecuta una macro

cd Cambio de directorio, cambia el SHELL directorio de trabajo actual

$ cd /icm_3g/explotacion Camdio directorio a /icm_3g/explotación

ps informa del estado del proceso (process status)

–A | grep Información para el procesos especifico indica nº procesos, tiempo ejecución y nombre

sudo realizar una tarea como super ususario

kill terminar un proceso

-9 fuerza el killl de un procesos en ejecución

PID identificador del proceso o trabjo

ls enlista los archivos en los cuales estamos trabajando actualmente

–la en lista ademas los archivos ocultos

$ sudo realizar una acción como super usuario

chmod 756 free_mem.sh cambio los derechos derechos de acceso y modificación de archivos

7 todos los permisos

5 lectura y ejecución

6 lectura y escritura

| tuberia se usa para tomar la salida de un proceso como entrada de otro

Operadores

Sintaxis Explicación Ejemplo

> redirige el resultado para un archivo en vez de para la pantalla ls >

listado

>> igual que el anterior, pero añade al archivo en vez de sobreescribirlo

< recupera parámetros de un archivo cp < ruta

| la salida del comando anterior pasa a ser parámetro del comando siguiente ls | less

/etc/rc.local

Este tipo de fichero nos permite ejecutar un script cada vez que iniciamos un sistema, por lo general se suele ocupar uno solo, pero cada ve que queramos ejecutar nuestro script lo llamaremos de/etc/rc.local.

Page 11: Lenguaje BASH,Crontab

Permisos en Linux

Todo archivo contiene tres niveles de permiso:

los que se aplican al propietario del archivo.

Los que se aplican al grupo que contiene el archivo.

Los que se aplican a todos los usuarios que contienen el archivo.

Podremos ver est listado cuando estemos dentro de un directorio con el comando ls –l:

Los antecedentes al inicio representan los siguiente:

-un archivo en común.

D representa un directorio.

L , link representa un enlace o acceso directo.

B binario, generalmente un archivo ejecutable.

Los consecuentes restantes deben verse en grupos de tres.

rwx rwx rwx

usuario grupo otros

Las letras tienen el siguiente significado:

R read - lectura.

W write -escritura (permisos de modificar, en directorios: permisos para la creación de

archivos en el dir.)

X execution – ejecucuión.

Las posiciones son en realidad un bit que se muestra con una letra la cual si esta encendido se

escribe una letra y si se está apagado se representa con un guion.

Permisos en formato numérico.

La combinación de bit de encendido se representara también de forma numérica siendo la suma

de los bits anteriores.

Page 12: Lenguaje BASH,Crontab

Permisos Valor Descripción

rw------- 600 El propietario tiene permisos de lectura y escritura.

rwx--x--x 711 El propietario lectura, escritura y ejecución, el grupo y otros solo ejecución.

rwxr-xr-x 755 El propietario lectura, escritura y ejecución, el grupo y otros pueden leer y ejecutar el archivo.

rwxrwxrwx 777 El archivo puede ser leido, escrito y ejecutado por quien sea.

r-------- 400

Solo el propietario puede leer el archivo, pero ni el mismo puede modificarlo o ejecutarlo y por supuesto ni elgrupo ni otros pueden hacer nada en el.

rw-r----- 640

El usuario propietario puede leer y escribir, el grupo puede leer el archivo y otros no pueden hacer nada.

De forma que entendiendo lo anterior podremos cambiar los permisos asignados de forma fácil

con el comando chmod :

$> chmod 755 reporte1

Comando dev/null:

Este tipo de comando se utiliza cuando estamos ejecutando un archivo y quereos descartar la

información que se escribe o redirecciona en el EJ: si nos arroja un error un script

Si no estuviese creado el directorio o estubisese incorrecto escrito el fichero nos arrojaría el

siguiente error

Para que no nos arroje este tipo de error realizaremos el dev/null.

¿Cómo especificamos que sea en caso de error? Aquí entran los valores estándar de entrada,

salida y error para un programa: STDIN, STDOUT y STDERR (que pueden ser sustituidos por 0, 1 y 2

respectivamente). De esta forma, si ponemos…