lunes, 8 de julio de 2013

PRUEBA_3/ Ejercicio_tipo_Examen


Guia para el examen.

 1.- Crear un script que me permita generar un PING desde la IP 10.0.0.1 hasta
 la IP 10.0.0.10, y solo muestre las direccion IP que se encuentran UP.

1R// 
#!/bin/bash
for ip in ping $(seq 1 10)
do
    if ping -c1 192.168.1.$ip &>/dev/null
    then
        echo "la diraccion 192.168.1.$ip esta up" >> /home/patricio/direcciones_up.txt
    else
        echo "la diraccion 192.168.1.$ip esta down">> /home/patricio/direcciones_down.txt
    fi
done

******************************************************************
******************************************************************

 2.- En base al archivo adjunto (poblacion.txt) donde la primera columna corresponde al nombre de la persona y la segunda columna corresponde a la edad, genere un script
        que permita mostrar por pantalla la siguiente informacion ...
        "La persona con nombre $nombre en este momento tiene $edad anos de edad"

2R//
 #! /bin/bash



 for sin in $( cat poblacion.txt | cut -d ":" -f1 )
do
sleep 2
var=`cat poblacion.txt | grep $sin  | cut -d ":" -f2`
echo "La persona con nombre $sin en este momento tiene $var anos de edad"
done




 3.- Realizar un script que permita respaldar todo un directorio, el respaldo debe
        generarlo mediante un compresor (gzip, osea *.tar.gz) para comprimir el directorio
 a respaldar. Este script debera copiarse automaticamente al directorio de las tareas
        programadas, para que se ejecute una vez al mes

3 R//
Script :

#! /bin/bash


#Comprime el archivo llamado Respaldo donde DATE muestra d= dia del mes
#b=nombr del mes 
#y =ultimo dos digitos del año. respaldame la carpeta var/log del sistema
#crear el script luego dar las cordenadas de ejecucion con #crontab -e
# el archivo queda donde se encuentra ejecutando el script

tar cvzf respaldo_`date +%d%b%y`.tar.gz /var/log

Link _ Opciones:

http://www.linuxtotal.com.mx/?cont=info_admon_007

# Luego escribimos contrab -e y escribimos lo siguiente:
#13 23 * * * /home/patricio/respaldo.sh
#donde se ejecutara el script llamado Respaldo.sh a las 23:13 todos los dias
# a Respaldo le asigne permiso de ejecucion con chmod .

luego escribir :
crontab -e
21 15 15 * * /home/patricio/respaldo.sh
 # para que se ejecute el archivo  a las 15:21 todos los meses el dia 15 de cada mes

    *       /     *  /       *       /        *   /        * 
minuto/hora /  dia_mes /  Mes    / Dia_Semana
 0-59  / 0-23/    1-31     /  1-12    / 0-6  donde  0=domingo

Mas Ejemplos
URL:

http://cuslanz.org.ve/24-10-2011/programar-tareas-con-cron


%a    Nombre abreviado del día de la semana
%A    Nombre completo del día de la semana
%b    Nombre abreviado del mes
%B    Nombre completo del mes
%c    fecha y hora
%C    Dos primeros dígitos del año, ejemplo 20 de 2007
%d    Día del mes con dos dígitos, ejemplo 01
%D    Igual que indicar %m/%d/%y
%e    Día del mes con uno o dos dígitos, ejemplo 1, 10
%F    Fecha completa, igual que %Y-%m-%d
%h    igual que %b
%H    Hora en formato 24 horas con dos dígitos (00..23)
%I    Hora en formato 12 horas con dos dígitos(01..12)
%j    El día del año (001..366)
%k    Hora en formato 24 horas con uno o dos dígitos(0..23)
%l    Hora en formato 12 horas con uno o dos dígitos(1..12)
%m    Mes con dos dígitos(01..12)
%M    Minutos con dos dígitos (00..59)
%r    Hora completa en formato de 12 horas (ejemplo 01:23:45)
%R    Horas y minutos en formato de 24 horas, igual que %H:%M
%s    Segundos transcurridos desde 01/Ene/1970 00:00:00 (fecha epoch)
%S    Segundos con dos dígitos, (00..60)
%T    Hora completa en formato de 24 horas (ejemplo 13:23:45)
%u    Dia de la semana en número (1..7, 1 es lunes)
%U    Número de la semana en el año, domingo primer día de la semana (00..53)
%V    Número de la semana en el año, lunes primer día de la semana (01..53) Formato ISO
%w    Día de la semana en número (0..6, 0 es domingo)
%W    Número de la semana en el año, lunes primer día de la semana (00..53)
%y    Últimos dos dígitos del año
%Y    Año con cutro dígitos
%z    Huso o zona horaria numérica
%Z    Huso o zona horaria abreviación alfabética


************************************************************************
************************************************************************


  4.- En base al archivo que les adjunto (repetidos.txt) ustedes deberan generar un MENU con las
        siguientes opciones ...
        a) Mostar Nombres (sin repetirse)
        b) Mostrar Nombres repetidos en mas de 2 ocaciones, y mostrar cuantas repeticiones.
        c) salir


4 R//
#! /bin/bash
#ruta /home/patricio/apuntes_script/p_script/prueba_1
echo;echo
clear
cont=1
while [ $cont -le 1 ]
 do
 echo "#########MENU##########"
 echo "1)Mostar Nombres sin Repetirse"
 echo "2)Mostrar Nombres Repetidos mas de 2 Ocaciones/mostrar Cuantas Repeticiones "
 echo "Salir"
 echo -n "Elija una opcion: "
 read opcion
 case $opcion in
        1) cat repetidos.txt | sort -d | uniq -c | grep -v "2"

;;
                2) echo "Numero de Repeticiones  / Nombre personal  "
                 cat repetidos.txt | sort -d | uniq -c | grep -v "1"

;;
                 

                        3) exit

;;
              
*)
echo "Usted a Ingresado Opcion "
          
                       
                esac
                        echo "Seleccionar la opcion"
                        echo -n "Continuar=(1) Salir=(2): "
                        read cont
                        clear
              done

 **********************************************************************
***********************************************************************

# Creando Modificacion de prueba 3 *************

#cut  la fila 1 luego , en var se guarda la fila 7
# echo muestra lo sgte
#El interprete de comandos del usuario patricio y /bin/bash


 for sin in $( cat /etc/passwd | cut -d ":" -f1 )
do
var=`cat /etc/passwd | grep $sin| cut -d ":" -f7`

sleep 1
echo "El interprete de comandos del usuario $sin y $var"
done



                      

 ************************************************************************
*************************************************************************

ls  -a = archivos ocultos

*********************************************************************

*******************GREP ********************************************
 grep  -v = muestra todo menos el patron de busqueda con esta opcion
grep -c = cuenta las lineas  y muestra su resultado



 cat -n las enumera
1.........
2
3
4
5





 cat /etc/passwd | grep -io "^[^:]*"
-o = busca el patron buscado
-i = discrimina mayuscula y minuscula
^  = principio de linea
^: = en el rango antes de los :
*  = todo



 MUESTRA :

root
bin
daemon
adm
lp
sync
shutdown
halt
mail
patricio




**********************************************************************************
**********************************************************************************
FIND

find -name
find -zise
find -perm

ejemplo :
find -perm 777
./env_correo
./validaciones_2
./crear_user
./cadena

**************************************************************
uniq -d solo lineas duplicadas
uniq -c liinea con el numero de apariiones
***************************************************************

COMPRESOR TAR.GZ

Ejemplo :

#! /bin/bash
#nombre del archivo a respaldar  tmp directorio a respaldar 
tar cvzf backuptmp.tar.gz /tmp 2> /dev/null
#crea el directorio Respaldo
mkdir /home/respaldos
# copia de root el archivo root/backuptmp.tar.gz al directorio home respaldo
cp /root/backuptmp.tar.gz /home/respaldos/ 2> /dev/null

PARA COMPRIMIR

 tar cvzf mi_back1.tar.gz 1234567

tar cvzf respaldo_`date +%d%b%y`.tar.gz /var/log

PARA DESCOMPRIMIR

 tar xzvf archivo.tar.gz

**************************************************************
******************************************************************

Ejemplo AWK

#BUSCA LA FILA 1 Y 2 SEPARADA POR " : " DEL ARCHIVO POBLACION.TXT
awk -F : '{print $1 ":" $2 }' poblacion.txt

#NR =3 : COLUMNA 3 - print $1, $2 fila 1 y 2  del archivo .txt
 awk -F : ' NR==3 { print $1,"y", $2 }' poblacion.txt

#  LO DIGITADO anterior muestra lo siguiente:
 hector y 22


4*imprimir solo los nombres de usuarios del archivo etc/passwd
R// awk -F :  '{print $1}' /etc/passwd
5*Imprimir todas las lineas del archivo con numero de lineas
R// awk -F :  '{print $0}' /etc/passwd | cat -n
6*mostar solo los nombres y los tamaños de los archivos del directorio actual
R//  ls -l | awk  '{ print $9, $5  }'
7*Imprimir las lineas de un archivo que tengan mas de 9 campos x columnas
R//  awk  'length > 9' poblacion.txt| cat -n
     1    gerardo:20
     2    esteban:21
     3    patricio:24
     4    abiathar:23

8*Imprimir todas las columnas que comiencen en a , con print $0 = todas las filas del archivo.txt
 awk  '/^a/{ print $0}' poblacion.txt





**************************************************************
**************************************************************

SORT

sort -r       ordena de z , hasta la a
sort -d       ordena de a hasta la z

***************************************************************
*****************************************************************

HEAD

 #IMPRMIME LAS 3 LINEAS DE UN ARCHIVO : CON EL CAT LAS ENUMERA

head -n 3 poblacion.txt | cat -n
     1    cesar:23
     2    juan:21
     3    hector:22


*******************************************************************
*******************************************************************







No hay comentarios:

Publicar un comentario