Shell Script en Debian

Documentos relacionados
Rawel E. Luciano B Sistema Operativo III. 6- Creación de Script. José Doñe

Creación De Scripts Ejecutables

Creación de Shell Scripts

Instituto Tecnológico Las Américas (ITLA) Sistemas Operativos 3 (SO3) Daniel Alejandro Moreno Martínez. Matrícula:

Creación de Scripts. Qué es un script? Como funciona un shell script en Linux?

Instituto Tecnológico de Las Américas (ITLA)

Ubuntu Server HOW TO : Creación de Scripts. EN ESTE SE REALIZA LO SIGUIENTE: En este how to se le va a enseñar como crear scripts.

$0 Representa al parámetro cero o nombre del programa $1 Representa al parámetro uno $2 Representa al parámetro dos

How to #6: Creación de Script

Creacion de Script. Que es un Script?

CREACION DE USUARIO, GRUPOS Y POLITICAS

Servidor FTP. Instalación del servidor FTP. Rocío Alt. Abreu Ortiz

- CON UN CLIENTE FTP - POR LINEA DE COMANDO - CREAR UN SCRIPT QUE ME PERMITA ENVIAR SUBIR UN BACKUP AL SERVIDOR FTP, PROGRAMADO CON CRON

Administración de usuarios y grupos en Debian {Terminal}

Taller de programación shell

How to 5 Creación de usuarios y grupos

Crear servidor NFS en Debian

Console Ninja: Como dejar de ser un usuario desconsolado. Universidad Tecnológica Nacional Nicolás Brailovsky 27 de noviembre del 2009

RAID 1 en Debian 6.0. Rocío Alt. Abreu Ortiz

Compartiendo Archivos en una red NFS

Ubuntu Server HOW TO : NFS EN ESTE SE REALIZA LO SIGUIENTE: En este how to se le va a enseñar como compartir datos en una Red Linux, usando NFS.

UT06: REDES LINUX Y REDES MIXTAS ADMINISTRACIÓN DE SISTEMAS OPERATIVOS

Mª DOLORES CARBALLAR FALCÓN L

Tema: Uso de Bash en Linux.

EJERCICIOS MANEJO DE ESTRUCTURAS BÁSICAS SCRIPTS

Directorios predefinidos, hourly, daily, weekly y monthly

Seguridad Lógica. - Realizar una Copias de seguridad con herramientas del sistema. - Realizar una Copias de Seguridad con aplicaciones específicas.

Crear usuarios y grupos, unir un equipo a un dominio y perfiles móviles

Rawel E. Luciano B Sistema Operativo III 10- SERVIDOR FTP. José Doñe

TEMA 6: Manejo de archivos, permisos y navegación en GNU/LINUX.

Para: Asunto: Practica 1, Evaluación 4, Redes 2 sección 03. Cuerpo del msj: Su nombre completo y número de carnet

Usuarios y grupos, permisos en Ubuntu.

ADMINISTRACIÓN DE USUARIOS Y GRUPOS

CREACION DE USUARIOS & GRUPOS + CONCEDIENDO PERMISOS

Implantación de Webmin

Tema: Uso de Bash en Linux Parte II.

Raymer Acosta

Manual de Instalación y Administración de Base

MANUAL DE INSTALACIÓN DEL DIMM FORMULARIOS GENÉRICO Windows, Macintosh y Linux

Introducción al Sistema Operativo Unix

Comandos Básicos Jornadas Octubre 2009 GUL UC3M Tania Pérez

PYTHON. Programación básica

.- Realizar un script: ejercicio1.sh

Tema 5 Sistemas Operativos En Red. Ejercicio 6 Realizar copia de seguridad, Windows Server 2008.

PRÁCTICA 20 MANDATOS DE TRATAMIENTO DE CADENAS. CREACIÓN DE SCRIPTS DE SHELL SENCILLOS

ESCRITORIO REMOTO MULTIPLATAFORMA V 1.0. Por, Douglas Vasquez, Eleazar García, Michael Méndez.

PROGRAMACIÓ E SHELL DE LI UX.

DISPONE DE 50 MINUTOS PARA REALIZAR EL EJERCICIO

Creación Servidor FTP

How to #5: Creación de Usuarios, Grupos y Permisos

UNIDAD DIDACTICA 5 GESTIÓN DE USUARIOS

PRÁCTICA 14 GESTIÓN DE USUARIOS EN LINUX Y WINDOWS

Introducción a Linux. Ficheros de configuración

El shell de GNU/Linux

FREENAS INTALACIÓN Y CONFIGURACIÓN.

INTRODUCCIÓN A SHELL SCRIPT PARA ABRIR BOCA

Como crear usuarios y grupos, añadirles permisos.

EL SERVICIO WEB. ACTIVIDAD 1. Creación de un servidor Web para la empresa Informática Solutions S.A. con Windows Server 2008.

Servidor Web Apache. El servidor Apache se desarrolla dentro del proyecto HTTP Server (httpd) de la Apache Software Foundation.

1. Por qué decimos que "Linux" es solamente el kernel del sistema operativo que utilizamos?

Shell Script Sistemas Operativos III - ITS EMT - CETP

MANUAL DE INSTALACIÓN DEL DIMM FORMULARIOS PARA INSTALACIÓN POR PRIMERA VEZ Macintosh

Gestión de procesos en Linux

Firewall. Ahora vamos a inicial con la instalación en nuestro sistema operativo Debian GNU/Linux.

Configuración de PDAS en ITACTIL (Windows 10)

TEMA 3: IMPLANTACIÓN DE TÉCNICAS DE ACCESO REMOTO. Victor Martin

Práctica 13. Recursos Compartidos. 1º Parte

ÍNDICE. 1- Copias de seguridad en Windows Cobian backup...9

Agosto de 2012 TUTORIAL PSEINT. Servicio Nacional de Aprendizaje SENA Jordan Angulo Canabal

Rawel E. Luciano B Sistema Operativo III. 4- Compartir datos en una red Linux usando NFS. José Doñe

Comandos Básicos Jornadas Marzo 2009 Universidad Carlos III de Madrid Tania Pérez Asensio

Tema 2: Sistemas Operativos. Linux

Practica Extra: Creación de BACKUP+CRONTAB+NFS

Guía de instalación del SAE en plataforma Linux Versión 1

Gestión de usuarios y grupos en Linux

Servicio FTP SERVICIOS DE RED

PROGRAMACIÓN EN BATCH Programar en batch supone programar archivos con la extensión.bat.

Instituto Tecnológico de Las Américas (ITLA)

Sistema Operativo Linux

Conexión de Sistemas en Red

Introducción a Linux. II.

INSTALACIÓN DE GREENSTONE EN SISTEMAS LINUX

Servidor Ubuntu INFORME PRÁCTICO. Ruymán Milena Jacobo

SILLABUS CURSO : LINUX

PROGRAMACIÓN DEL INTÉRPRETE DE COMANDOS DE UNIX/LINUX

Ubuntu Server HOW TO : DHCP

Universidad Autónoma del Estado de México Facultad de Medicina

Transcripción:

Rocío Alt. Abreu Ortiz 2009-3393 Shell Script en Debian Un shell script ó script del shell, es una serie de comandos escritos en un archivo de texto plano. Es parecido a los archivos batch en Windows, pero los Shell script tienen mucho más poder. Los script son casi siempre interpretados, pero no todo programa interpretado es considerado un script. El uso habitual de los scripts es realizar diversas tareas como combinar componentes, interactuar con el sistema operativo o con el usuario. Por este uso es frecuente que los shells sean a la vez intérpretes de este tipo de programas. El Shell es un programa interface, que se provee como un elemento comunicacional entre el usuario y el sistema operativo. Tiene como función aceptar los comandos escritos y ejecutarlos. Cómo funcionan? Los Shell script se ejecutan de manera automática, leyendo cada uno de las líneas de comando que contiene el archivo. Debido a que Linux interpreta comandos de forma lineal-secuencial, es importante que al momento de redactar el script se separen con un ; cada línea de comando. Por ejemplo: Si escribimos: echo HOLA1 echo HOLA2 echo HOLA3 Estaríamos cometiendo un fallo sintáctico y es que el intérprete de Linux está preparado para ejecutar orden tras orden de forma lineal y secuencial y aquí se rompe esa secuencia. Cómo se identifican? Se identifican como tener como extensión.sh. También se pueden identificar por su encabezado en el contenido ó shebang: Para python es #!/usr/bin/env python #!/bin/bash ; #!/bin/ksh Shebang es, el nombre que recibe el par de caracteres #! que se encuentran al inicio de los programas ejecutables interpretados. En este tutorial, mostraré como crear diversos scripts funcionales para cualquier administrador de una red que esté basada en GNU/Linux Debian y sus derivados.

Antes de iniciar, aquí resalto algunos términos que debes de saber: Lo caracteres #! indican al sistema que el primer argumento que sigue en la linea es el programa a utilizar para ejecutar este fichero. En este caso usamos el shell /bin/sh. Variables son como una fuente de almacenamiento en la que depositamos un determinado dato. Además, sirven de enlace entre el usuario remoto y el programa, otra de sus utilidades es poder utilizarlas en distintas partes de nuestro código-script. Creación de variables: Para crear una variable se usa la sintaxis: namevar=valordatos Donde namevar es el nombre (identificador) de la variable y valordatos (contenido) es el valor o los datos que queremos almacenar Comillas simples El contenido no es interpretado por el shell. Se suele usar para indicar caracteres literales. Por ejemplo a es tomada como un carácter literal no es procesada por el Shell. Comillas dobles: Agrupa una cadena de carácteres literal no es procesada por el Shell. Por ejemplo: VAR= Hola amigos, aquí estaríamos almacenando en la variable VAR el texto Hola amigos. Comillas invertidas: Hacen que se evalue el contenido y que su resultado sea devuelto como el de una variable. Por ejemplo: verfecha=`date` Comodines El signo * es un comodín que funciona como sustitución de cadena de literales. Ejemplo *.doc indica todos los archivos que tengan extensión.doc El signo # sirve como comodín que sustituye un carácter. Si añadimos mas interrogantes sustituirá tantos caracteres como interrogantes haya. El signo (~) este carácter devuelve la ruta del home del usuario. El signo $ sirve para especificar que se muestre una variable. Read Sintaxis: read variable (s) La orden read se usa para leer información escrita en el terminal de forma interactiva. Expr Este comando se utiliza para realizar operaciones aritméticas. Echo Este comando escribe a la salida estándar la cadena de texto que se le pasa como parámetro. Recuerda que toda frase o cadena de caracteres deben estar entre comillas

Script funcional para crear usuarios 1- Haz click en: Aplicaciones Accesorios Terminal. 2- Escribe su y presiona Enter; y luego la contraseña del superusuario. En esta ocasión utilizaremos su (switch user), este comando te permite mover desde cualquier usuario hacia otro. No entramos directamente al modo root, porque este modo tiene poder de acceso ilimitado y la implementación de comandos peligrosos puede ocasionar daños permanentes. 3- Antes de empezar el script para crear usuarios, debemos saber bajo que shell estaremos trabajando, para lo cuál escribe: which bash y presiona enter.

4- Para crear el script, necesitas ayudarte de un editor de texto que pueden ser Emacs, Vi, gedit, entre otro. En mi caso utilizaré gedit, por lo cual escribe gedit [el nombre del script].sh 5- Para la creación de usuario podemos utilizar dos comandos: adduser ó useradd. Para este script emplearé el comando useradd (a diferencia de adduser, useradd no te permite introducir ninguna otra información acerca del usuario). He empleado este comando porque el script tendrá la información de una empresa X, lo que facilita crear usuarios de una misma empresa. Inicia el archivo escribiendo #!/bin/bash para indicar bajo que shell estas trabajando. Todos los usuarios comparten el nombre de oficina: ITLA y el número de teléfono 809-678-7878 Durante el script se ejecuta, te preguntará acerca del nombre completo, contraseña y número personal.

Var1 (guarda el nombre del usuario que introdujiste). El parámetro m indica que se creará el directorio personal del usuario en /home. Sudo passwd utilizado para pedir que introduzcas la contraseña para el nuevo usuario. Esta información será igual para todos los usuarios creados con este script. Chfn $var1 f para que se llene el campo del nombre completo del usuario, el cuál especificaste en var2 Chfn $var1 h para hacer que se llene el campo del número de teléfono personal del usuario que especificaste en var3 6- Ahora, estando haz click en Guardar y cierra la ventana. Verás como se ha creado un archivo similar al de la siguiente imagen. 7- Ahora sobre el archivo daremos permisos de lectura, escritura y ejecución designados por el número 777.

8- Ahora ejecutaremos el script, para mostrar que cumple con la funcionalidad para la cual fue creada. Antes de ejecutarlo recuerda posicionarte el directorio donde lo creaste. Luego, introduce en la terminal lo siguiente: sh [nombre del script].sh Nombre del usuario que crearé. Se crea el directorio personal del usuario, especificado en el código con mkdir Aquí se debe introducir el nombre completo del usuario. Aquí se debe introducir el número de teléfono. 9- Para comprobar que nuestro usuario ha sido creado, introduce el comando grep [nombre del usuario] /etc/passwd Como puedes observar, por medio de ese comando te muestra la información del usuario indicándote que existe en el sistema. Puede ver, que el número de teléfono personal coincide con el que introduje.

Ahora probaremos que podemos iniciar sesión con la cuenta de usuario que creamos. Este es el usuario que creamos rochell. Introduce la clave que escribiste cuando estabas creando el usuario.

Script funcional para crear grupos La forma de crear usuarios y la de crear grupos no difiere mucho, salvo en los comandos a emplear y en ciertas especificaciones que no se emplean. 1- Estando ya en la terminal, escribe gedit [el nombre del script].sh 2- Para la creación de grupos utilizaré el comando groupadd, y dentro del mismo script estará el comando gpasswd para especificar contraseña, administrador de grupo y agregar usuario. Indica que se cree el grupo, que se ha especificado en var1 Te permitirá introducir la contraseña del grupo. Asignará como administrador del grupo al usuario que especificaste en var2 Agregará al grupo al usuario que especificaste en var3 Groupadd= para crear el grupo. Gpasswd = para establecer la contraseña. Gpasswd A =designar administrador de grupo. Gpasswd a = para agregar un usuario al grupo.

3- Ahora le daremos permisos de lectura, escritura y ejecución (representado con el 777) al archivo crearusuario.sh 4- Ahora ejecutaremos el script, para mostrar que cumple con la funcionalidad para la cual fue creada. Antes de ejecutarlo recuerda posicionarte el directorio donde lo creaste. Luego, introduce en la terminal lo siguiente: sh [nombre del script].sh 5- Para comprobar que nuestro usuario ha sido creado, introduce el comando grep [nombre del usuario] /etc/group El comando grep, tiene por funcionalidad escribir en salida estándar aquellas líneas que concuerden con un patrón.

Script para hacer una calculadora Estando en la terminal, de igual manera que como se explico para el script de usuarios. 1- Estando ya en la terminal, escribe gedit [el nombre del script].sh 2- Para la creación de la calculadora emplearé el uso de variables y operadores. Mensajes de inicio. Utilizando el comando echo, para que se muestren. Variable (var1) que almacena el primer valor que se utilizará en la operación. Son los operadores ó expresiones aritméticas. Op1 almacena el operador con el cual se llevará a cabo la operación. Variable (var2) que almacena el segundo valor que se utilizará en la operación. Esta expresión es la que se encarga de realizar la operación. El comando sleep lo único que hace es esperar un poco de tiempo para crear la sensación de que l programa está pensando poco antes de dar el resultado.

El comando expr los argumentos de este comando se toman como expresiones y deben ir separados por blancos. La orden expr evalúa sus argumentos y escribe el resultado en la salida estándar. Expr $var 1 $op1 $var 2 Esta variable es importante que esté encerrada entre comillas simples ó esté precedidas por el símbolo backslash ( \ ). Debido a que el símbolo de multiplicar es un asterisco ( * ), y como habrás visto al principio de este tutorial, ese signo es un comodín y tiene una función específica dentro del Shell. 3- Luego de haber creado nuestro script, debemos darle permiso de ejecución. Dentro de la terminal, y ubicado en el directorio donde creaste el script, escribe lo siguiente: Chmod +x mycal.sh Chmod: es un comando que te permite +x -----> agrega( +) el permiso de ejecución (x) Mycal.sh ---- > el archivo al cual se le otorgará el permiso. 4- Una vez que el script ya tiene el permiso de ejecución, procedemos a probarlo introduciendo sh (Source) [nombre del archivo].sh

Script funcional para hacer un backup En esta parte del tutorial crearemos un script que lleve a cabo un backup de manera automática; resulta muy conveniente porque con el solo hecho de ejecutar el script la copia de seguridad se realizara por sí sola. También emplearemos un cron, para que el script se ejecute solo cada x tiempo, y de esta manera tendremos nuestra copia de seguridad actualizada aún si se nos olvida hacerlo. Un backup ó copia de seguridad consiste una copia de datos de tal forma que estas puedan restaurar un sistema después de una pérdida de información. Nos evitará problemas el tener siempre una copia de nuestro trabajo. 1- En primer lugar, debemos que ubicar la carpeta o archivo al cual le creamos la copia de seguridad (backup). En mi caso he decidido que sea la carpeta Documentos ubicada dentro de mi usuario en /home. 2- Ahora crearemos la carpeta en donde se guardará nuestro backup. Nuestra carpeta se llamará backup_files, y estará ubicada en Escritorio. Para dar inicio, debes entrar a la terminal haciendo click en Aplicaciones Accesorios Terminal. 3- Escribe su y presiona Enter; y luego la contraseña del superusuario. En esta ocasión utilizaremos su (switch user), este comando te permite mover desde

cualquier usuario hacia otro. No entramos directamente al modo root, porque este modo tiene poder de acceso ilimitado y la implementación de comandos peligrosos puede ocasionar daños permanentes. 4- Ahora debes de dirigirte al Escritorio, escribiendo cd Escritorio (ó Desktop depende del idioma de tu sistema operativo). Estando dentro del directorio Escritorio, procede a crear la carpeta que tendrá el backup usando la siguiente sintaxis de comando mkdir backup_files y presiona enter. Para comprobar que efectivamente se ha creado puedes usar el como ls y presionar enter. 5- Una vez creado nuestro directorio para le backup, crearemos el script; para lo cual debes escribir gedit [el nombre del script].sh 6- Para la creación de este script utilizaré el comando tar y el mv (move). El comando tar tiene como tarea principal comprimir y descomprimir archivos; y el mv como indica su nombre en español es para mover directorios ó archivos desde un lugar a otro. La línea tar cvzf $var2$fecha.tar.gz $/var1/$var2 es la que se encarga de comprimir el directorio indicado en var2 que se encuentra en la ruta indicada en var1. Entonces, en un lenguaje simple esta línea dice: Créame un nuevo archivo, muéstrame todo lo que sucede, comprímelo y empaquétalo. El nombre con el cual se creará el nuevo archivo está indicado en $var2$fecha que indica que será el mismo nombre del archivo original pero agregándole la fecha. Esto te ayuda a tener un orden entre las diversas copias que puedes tener. En la línea mv /home/rocio/*.tar.gz /home/escritorio/backup_files, indica que se mueva todos los archivo que tengan por extensión.tar.gz al directorio Escritorio carpeta backup_files (que fue la carpeta que creamos al principio).

7- Para que el script se pueda ejecutar sin ningún problema, debes otorgarle permiso de ejecución empleando el comando chmod +x [nombre del archivo]. 8- Para ejecutar el script, estando ubicado en el directorio en el cual se encuentra, escribe sh [nombre del script].sh

9- Si te dirige a la carpeta de destino /home/rocio/escritorio/backup_files podrás ver el archivo comprimido y empaquetado. Ejecución automática por medio de CRON 10- Para configurar el cron, tienes que escribir dentro de la terminal crontab e y presionar Enter. Se te abrirá un editor. Crontab e se emplea para facilitar la información al cron de los programas que hay programados para ser ejecutados. La sintaxis de la línea a añadir en este archivo para programar una nueva tarea es: [hora] [minuto] [dia_del_mes] [mes] [dia_de_la_semana] [comando]

Yo he especificado que se ejecute a las 11:00 a.m, los viernes de cada semana. De esta forma, para programar la tarea de backup todos los viernes a las 11:00, la línea a añadir en el archivo abierto por nano con las tareas de cron asociadas al usuario, deberá ser la siguiente: 0 0 * * 5 sh /home/rocio/mybackup.sh El símbolo asterisco ( * ) significa que abarcará todos los días, horas, etc., según el campo que se especifique. Al guardar los cambios hechos en el documento, te aparecerá como se muestra en la imagen. Script funcional para transferir datos entre PC Para la creación de este script, utilizaremos NFS. Lo primero que debemos hacer es crear la carpeta que compartiremos en la red y darles los permisos necesarios para que se pueda transferir los datos. 1- Crearemos una carpeta llamada Transferencia, que estará ubicada en el escritorio. En la terminal, escribe mkdir Compartir. Luego, debemos de darle los permisos de escritura, lectura y ejecución que se representa con el 777 y es utilizado con el comando chmod. 2- Una vez creada la carpeta que compartiremos, debemos especificar el rango de direcciones IP que tendrán acceso a los archivos compartidos.

3- En el archivo /etc/exports estableceremos la ruta de la carpeta que compartiremos, el rango de direcciones, y los permisos que como podrás ver son leer y escribir. 4- Cuando hayas realizado la modificación especificada en el paso anterior, haz click en Guardar y luego procede a reiniciar el servicio NFS escribiendo /etc/init.d/nfskernel-server restart y presiona Enter. 5- Ahora probaremos que existente comunicación entre el servidor y el computador cliente haciendo ping desde una PC a otra. Hacia el cliente.

Hacia el servidor. 6- Estando en el cliente, vamos a crear una carpeta para poder compartir los datos de igual manera. Realizamos el mismo paso 1, pero cambiándole el nombre a la carpeta. 7- Ahora montaremos el enlace dentro del cliente, con el comando showmount e [dirección del servidor] en mi caso shownmount e 192.168.1.104 8- Con el enlace montado, crearemos el script para la transferencia. Escríbe gedit transferencia.sh. 9- Dentro del editor, escribe los comandos que se muestran en la imagen. Mount- t es para montar la carpeta como una unidad física.

Mount t nfs [dirección IP del servidor]:[ruta de la carpeta en el servidor] [ruta de la carpeta en el cliente] 10- uarda el archivo y cierra la ventana. Ahora procede a darle permiso de ejecución al script. En la terminal escribe chmod 777 transferencia.sh. 11- Para ejecutar el script, escribe sh transferencia.sh Servidor Cliente