lunes, 8 de julio de 2013

EJEMPLOS_2

#! /bin/bash
#este permite que ingreses un numero y arroje algo si es mayo o menor 
while :
do
echo "Ingrese Numero"
read let
if [ $let -ge 100 ] 
   then  
   echo "Bienvenido correcto" 
   else
   echo "reprovado"
fi 

 done

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

 #! /bin/bash
clear
 #ESTE SCRIPT IMPRIME NUMEROS DEL 1 AL 10 HACIA ABAJO
echo "  #   Proceso #"
cont=0
while [ $cont -le 10 ]
do
sleep 2  
let cont=cont+1
echo "$cont"
done


clear

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


Mas Ejemplos De Script
separados por :
*******************************************************************
*******************************************************************

#! /bin/bash
clear
echo;echo


clear
echo "Ingrese Nombre"
read Nombre


sleep 2
echo;echo
echo "Bienvenido Estimado (a) $Nombre"
echo "Loading...."
sleep 5
while :
do
echo "***Menu con wile/case***"
echo ""
echo "1)mostrar usuario"
echo "2)mostrar procesadores"
echo "3)memoria fisica"
echo "4)password"
echo "99)Salir del Sistema "
echo ""
echo -n " inserta opcion: "
echo ""
read opc

case $opc in

1|a|A) who
sleep 2
clear
;;

2|b|B) cat /proc/cpuinfo | grep -i processor
sleep 2
clear
;;

3|b|B) cat /proc/cpuinfo |grep sizes | cut -d":" -f2 | cut -d ";" -f1
sleep 2
clear
;;

4|d|D) echo "ingrese password"
read pass

echo "$pass" > passw
clear
if [ -z $pass ]
then
echo "su password esta en blanco"
sleep 2
elif [ $(wc -c passw | cut -d " " -f1) -ge "7" ] 2>/dev/null
then
echo "su password es segura"
sleep 2
else
echo "su password es Muy Insegura"
sleep 2
fi
clear

;;
99) echo "wena pato"
echo "saliendo del script"
sleep 5
exit
;;


*) echo ""
   echo "Estimado (a) $Nombre A Ingresado opcion invalida"
   echo ""
sleep 2
clear
;;

esac
done



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


#! /bin/bash

#existe archivo con la siguente info llamado : icqserver.txt
#con la siguiente informacion:
#chat.icq.com
#c.icq.com
#company.icq.com
#download.icq.com
#ftp.icq.com
#people.icq.com
#www.icq.com

for ip in $(cat /home/patricio/PAD_2013/icqserver.txt)
do
host $ip |grep -i "has address"
done

#muestra lo siguiente :

#wwwvip.evip.icq.com has address 178.237.23.237
#c1.orange.icq.com has address 178.237.25.84
#icqredirect.egslb.aol.com has address 205.188.95.190
#wwwvip.evip.icq.com has address 178.237.23.237
#storage.orange.icq.com has address 178.237.26.102
#storage.orange.icq.com has address 178.237.25.52
#wwwvip.evip.icq.com has address 178.237.23.237
#wwwvip.evip.icq.com has address 178.237.23.237



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

#! /bin/bash
# signos: ! &*()_!@#$%^&*(!@#$%^&*()_+"|{}?"|}{"_)(*&^%$#@!
#muestra los Planetas hacia abajo:
#Mercurio
#Venus
#Tierra
#Martes
#Jupiter
#Saturno
#Urano
#Nepturno
#Pluton
#saliendo del ciclo
for planet in Mercurio Venus Tierra Martes Jupiter Saturno Urano Nepturno Pluton
do
echo $planet
sleep 1
done
echo "saliendo del ciclo "


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

#! /bin/bash

#imprime los numeros hacia abajo del 1 al 100
#ejemplo:
#1
#2
#3
#4
#5
#6
#7
#8
#9
#10
#11
#12
#13
#14
#15
#16
#17
#18
#19
#20..............................
for num in $(seq 1 100)
do
echo $num
sleep 1
done



*******************************************************************
*******************************************************************
#agenda Telefonica


#! /bin/bash
#agenda_Telefonica
#
#
cont=1

while [ $cont -le 1 ]
do
clear

echo "********** agenda telefonica****************"
echo ""
echo "1............. Crear Contacto "
echo "2............. Buscar Contacto "
echo "3............. Borrar contacto "
echo "4............. salir   "
echo "   elija la opcion que decea ejecutar"
echo ""

read opcion
     case $opcion in

 1)kont=1
                                                      while [ $kont -le 1 ]
                                                        do
                                                    
                                                        echo " ingrese el nombre del contacto a crear"
                                                        read crear
                                                        echo "ingrese el numero del contacto"
                                                        read numero
                                                        echo "$crear $numero "
                                                        echo "$crear $numero" >> /home/patricio/agenda.txt
echo ""
                                                        echo "ingrese 1 si quere crear otro contacto y 2 para volver al menu principal"
                                                        read kont
                                                        done
       ;;
                                                   2)  kar=1
                                                        while [ $kar -le 1 ]
                                                        do
                                                        echo " ingrese el nombre del contacto que decea buscar"
                                                        read contacto
                                                        cat /home/patricio/agenda.txt | grep $contacto
echo ""
                                                        echo "ingrese 1 si quere buscar otro contacto y 2 para volver al menu principal"
                                                        read kar
                                                        done
;;

  3)  kep=1                                                      
                                                        while [ $kep -le 1 ]
                                                        do
                                                        echo "ingrese el nombre del contacto a borrar"
                                                        read borrar
                                                        sed -i /$borrar/home/patricio/agenda.txt

                                                        echo ""
                                                         echo "ingrese 1 si quere borrar otro contacto y 2 para volver al menu principal"
                                                        read kep
                                                        done
;;
                                                      
                                                    4)  echo "Saliendo de su Agenda"
  exit
;;
esac
done


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

#! /bin/bash
#Busk Archivos con find
#interfaces ifconfig
#procesos ps -aux

clear
cont=1
while [ $cont -le 1 ]
 do
 echo "#########MENU##########"
 echo "Buscar archivos.......1"
 echo "Mostrar interfaces....2"
 echo "Ver servicios.........3"
 echo -n "Elija una opcion: "
 read opcion
 case $opcion in
        1)echo -n "Ingrese nombre: "
          read archivo
          echo -n "Ingrese ruta: "
          read ruta
          find $ruta -name $archivo
           echo  "Precione enter porfavor"
          read;;
                2)echo "Estas son las interfaces del sistema"
                  ifconfig
                  echo  "Precione enter porfavor"
                  read;;
                

                        3)echo "Estos son los procesos del sistema"
                         ps -aux
                          echo  "Precione enter porfavor"
                              read;;
                        
                      
                esac
                        echo "Seleccionar la opcion"
                        echo -n "Continuar=(1) Salir=(2): "
                        read cont
                        clear
                        done                        



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


#! /bin/bash
clear
#validar si un usuario esta conectado al sistema, Validando si existe #en el sistema
#usa while y case

echo;echo

cont=1
while [ $cont -le 1 ]
do
echo "***************Menu_Usuarios*************"

echo  "1)Usuario Conectados"
echo  "2)Validar si Usuario Existe en el Sistema"
echo "3)Salir"
echo ""
echo "elija la opcion que decea ejecutar"
echo ""
read opc

case $opc in
        



              1)
                 kar=1
                 while [ $kar -le 1 ]
                 do
                 sleep 2
                 who | cut -d " " -f1
 echo "Ingrese 1 Si desea volver a consultar y Ingrerse 2 para volver al menu principal"
                  read kar
                  clear
                  done
;;

                2)
                 pat=1
                 while [ $pat -le 1 ]
                 do
                 sleep 2


            
        clear
        echo;echo
        echo -n "Ingrese USUARIO: "
        read user

        if cat /etc/passwd | grep -i $user >/dev/null
        then
                 echo "El usuario - $user - ya existe en el sistema ..."
                 echo;echo
                 sleep 1

       else
echo;echo
echo "El usuario - $user - no existe en el sistema ......."


fi
 echo "Ingrese 1 Si desea volver a consultar y Ingrerse 2 para volver al menu principal"
                  read pat
                  clear
                  done


;;

                 3) echo "Usted a elegido salir Gracias por preferirnos Vuelva pronto"
                   sleep 5
                   exit



esac
done


********************************************************************
********************************************************************
#ping de Direcciones

#! /bin/bash

for var in $( seq 1 254 )
do
if ping -c1 192.168.0.$var&>/dev/null
       then
       echo "la direccion 192.168.0.$ip esta up"
else

echo "down"
done




*********************************************************************
*********************************************************************
Aqui Script para conoser sistema Linux :



#USUARIOS_CONECTADO

#! /bin/bash
clear
#validar si un usuario esta conectado al sistema, Validando si existe #en el sistema

echo;echo

cont=1
while [ $cont -le 1 ]
do
echo "***************Menu_Usuarios*************"

echo  "1)Usuario Conectados"
echo  "2)Validar Usuario conectado"
echo  "3)Validar si Usuario Existe en el Sistema"
echo "Salir"
echo ""
echo "elija la opcion que decea ejecutar"
echo ""
read opc

case $opc in
        



              1)
                 kar=1
                 while [ $kar -le 1 ]
                 do
                 sleep 2
                 who | cut -d " " -f1
 echo "Ingrese 1 Si desea volver a consultar y Ingrerse 2 para volver al menu principal"
                  read kar
                  clear
                  done
;;

                2)
                 pat=1
                 while [ $pat -le 1 ]
                 do
                 sleep 2


                 #if id | grep uid=0 >/dev/null
                 #then
             clear
             echo;echo
             echo -n "Ingrese USUARIO: "
             read user

             if cat /etc/passwd | grep -i $user >/dev/null
             then
                 echo "El usuario - $user - ya existe en el sistema ..."
                 echo;echo
                 sleep 1

            else
        echo;echo
        echo "El usuario - $user - no existe en el sistema ......."

#fi
fi
 echo "Ingrese 1 Si desea volver a consultar y Ingrerse 2 para volver al menu principal"
                  read pat
                  clear
                  done


;;

                 3) echo "Usted a elegido salir Gracias por preferirnos Vuelva pronto"
                   sleep 5
                   exit



esac
done




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



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


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