Foro de elhacker.net

Programación => Ejercicios => Mensaje iniciado por: -EvilBuffer- en 21 Enero 2005, 09:33 am



Título: Scripts en BASH
Publicado por: -EvilBuffer- en 21 Enero 2005, 09:33 am
Porque no ponene retos o ejemplos de uno que otro script en BASH, bueno yo subire uno que otro, aver si la raza se anima a subir sus retos o ejemplos, este es un pequeño ejemplo para chekar que no haya usuarios tipos root, nota solamente root debe tener 0 0
Código:
#!/bin/bash
# para chekar que no haya usuarios tipo 'root'
awk -F: '{print $1" "$3" "$4 }' /etc/passwd | grep -w 0
este es script puede ser modificado para mejorarlo, como por ejemplo si en la ejecucion del script saliera infiltrado 0 0, podiamos elimiarlo de /etc/passwd


Título: Re: Scripts en BASH
Publicado por: situ en 2 Abril 2006, 01:28 am
Buenas les dejo un par de script que hice para el mantenimiento de mi linux y aparte para aprender sobre el lenguaje.
Seguramente tendre algunos codigos de mas, pero bueno estoy aprendiendo sobre el tema.

Whois Customizado by s!tu
Código:
#!/bin/sh
clear
echo -e "\033[1;31mWhois Customizado by s!tu \033[0m";
echo -e "\033[1;33mEscriba la direccion IP: \033[0m";
read IP
echo -e "\033[1;33mSeleccione el server de Whois: \033[0m";
echo -e "0. salir";
echo -e "1. Lacnic";
echo -e "2. Arin";
echo -e "3. Apnic";
echo -e "4. Ripe NCC";
echo -e "5. Afrinic";
echo -e "\033[1;34mOpcion: \033[0m";
read MEN
case $MEN in
0)
exit 1
;;
1)
WH="whois.arin.net"
;;
2)
WH="whois.arin.net"
;;
3)
WH="whois.apnic.net"
;;
4)
WH="whois.ripe.net"
;;
5)
WH="whois.afrinic.net"
;;
*)
exit 1
;;
esac
echo -e "\033[1;32mParceo de resultado: \033[0m";
echo -e "0. salir";
echo -e "1. netname";
echo -e "2. contacto";
echo -e "3. red";
echo -e "4. netname - contacto";
echo -e "5. sin parceo";
echo -e "\033[1;34mOpcion: \033[0m";
TEMP=`whois -h $WH $IP`
RES=`echo -e "\033[1;36mResultado: \033[0m$IP";`
read MENU
case $MENU in
0)
exit 1
;;
1)
echo "$RES"
echo "$TEMP" | grep netname
exit 1
;;
2)
echo "$RES"
echo "$TEMP" | grep "e-mail"
exit 1
;;
3)
echo "$RES"
echo "$TEMP" | grep inetnum
exit 1
;;
4)
echo "$RES"
echo "$TEMP" | grep netname
echo "$TEMP" | grep "e-mail"
exit 1
;;
5)
echo "$RES"
echo "$TEMP"
exit 1
;;
*)
echo -e "Informacion incorrecta"
;;
esac
read


Título: Re: Scripts en BASH
Publicado por: situ en 2 Abril 2006, 01:30 am
mas codigos.
Este es un soft para usarlo en debian, ubuntu o alguna otra distro que soporte apt-get.

APT-TOOLS
Código:
#!/bin/bash
#Fecha 11-03-2006
#Autor: situ
#Licencia GNU-GPL
#Tomado parte del ubuntusetup de ryan (ubuntu-geek)
echo -e "\033[1;32m----------- Opciones -----------\033[0m";
echo "1 -> Instalar paquetes";
echo "2 -> Ver paquetes instalados";
echo "3 -> Actualizar el sistema";
echo "4 -> Buscar paquete";
echo "5 -> Eliminacion automantica de paquetes viejos";
echo "6 -> Chequear Dependencias";
printf "\033[1;32m\tOpción >> \033[0m";
read PAK
case $PAK in
1)
printf "\033[1;30mNombre del Paquetes a instalar: >>\033[0m";
read PAKN
if [ "$PAKN" = "" ];then
exit 1
else
sudo apt-get install $PAKN
fi
;;
2)
printf "\033[1;30mEscriba aqui el nombre de algun paquete que desea ver si lo tiene isntalado: >> \033[0m";
read PAKN
if [ "$PAKN" = "" ];then
exit 1
else
echo -e "\033[1;30mTiene el/los siguiente/s paquete/s: >>\033[0m";
sudo dpkg -l | grep $PAKN | awk '{print $2}' | nl -s " - "
fi
;;
3)
echo -e "\033[1;30mSe va actualizar el sistema\033[0m";
sudo apt-get upgrade && sudo apt-get dist-upgrade
;;
4)
printf "\033[1;30mNombre del Paquetes a buscar: >> \033[0m";
read PAKB
if [ "$PAKB" = "" ];then
exit 1
else
echo -e "\033[1;30mID ->\tPaquete\t -  Comentario:\033[0m";
apt-cache -v search $PAKB | nl -nrz -w3 -s " -> " | more
busqueda=(`apt-cache search $PAKB | cut -f1 -d " "`)
printf "\033[1;30mID del paquete que va instalar >>\033[0m";
fi
read PAKN
$(PAKN=0)
if [ ! -z "$PAKN" ]; then
echo -e "\033[1;30mInstalando el paquete $PAKN -> \033[0m" ${busqueda[$PAKN-1]};
sudo apt-get install ${busqueda[$PAKN-1]}
fi
;;
5)
echo -e "\033[1;30mSe eliminaran paquetes viejos automaticamente\033[0m";
sudo apt-get autoclean
;;
6)
echo -e "\033[1;30mSe chequearas si hay dependencias corruptas y si las hay se arreglaran\033[0m";
sudo apt-get -f check
;;
*)
exit 1
;;
esac


Título: Re: Scripts en BASH
Publicado por: situ en 2 Abril 2006, 01:38 am
Estado de mi PC.
Ojo que puede ser que algunas cosas no anden porque muchas veces difieren cosas entre las distros, cualquier cosa dejen el mensaje y lo vemos.

ESTADO DEL LINUX
Código:
#!/bin/sh
UPT=`uptime | awk '{print $1" "$2" "$3}' | sed s/,//g`;
MEMTO=`cat /proc/meminfo  | grep "MemTotal" | awk '{print $2}'`;
ES=`date`;
QUIEN=`whoami`
KER=`uname -r`
MEM=`cat /proc/meminfo  | grep "MemFree" | awk '{print $2}'`
echo -e "\033[1;33mEstado de la PC by s!tu \033[0m";
echo -e "\033[1;32mBienvenido:\033[0m $QUIEN";
echo -e "\033[1;32mHoy es:\033[0m $ES";
echo -e "\033[1;32mUptime:\033[0m $UPT";
echo -e "\033[1;32mMemoria Total $MEMTO kB:\033[0m Memoria Libre: $MEM kB";
echo -e "\033[1;32mVersion del kernel utilizado en el sistema:\033[0m $KER";


Título: Re: Scripts en BASH
Publicado por: Erik# en 26 Septiembre 2008, 18:59 pm
Bueno, este script que hice y deje en el subforo scripting, trata de un sistema que identifica la cantidad de usuarios en el sistema y sus nombres:

Código
  1. #!/usr/bin/bash
  2. # Creado por erik - youareowned@hotmail.es
  3. conectados=`who | cut -f1 -d ' ' | sort -u | wc -l | sed 's/^ *//g'`  
  4. nombres=`who | cut -f1 -d ' ' | uniq | sed 's/^ *//g'`
  5. echo "Usuario(s) conectado(s): $conectados"
  6. echo "Nombre(s): $nombres"


Título: Re: Scripts en BASH
Publicado por: ^Tifa^ en 7 Enero 2010, 02:49 am
Otro cortito

Código
  1.  
  2. #!/bin/sh -x
  3.  
  4. function Backup() {
  5.  
  6.  cd $HOME && mysqldump --opt --user=$1 --password=$2 $3 > backup-$(date +%Y+%m+%d).sql
  7.  echo "Backup Realizado y guardado en $HOME bajo el nombre backup-$(date +%Y+%m+%d).sql"
  8.  
  9. }
  10.  
  11. function Usuarios {
  12.  
  13.  w
  14. }
  15.  
  16. while [ "$opcion" != '4' ]; do
  17.  
  18. echo -e "Que desea hacer\n1 - Backup de la DB\n2 - Ver usuarios conectados\n3 - Salir\n"
  19. read opcion
  20.  
  21.  case $opcion in
  22.  1)
  23.  
  24.    echo "Inserta el nombre de usuario, contrasena y DB separado por espacio :: "
  25.    read algo
  26.  
  27.      Backup $algo
  28.  ;;
  29.  2)
  30.  Usuarios
  31.  ;;
  32.  3)
  33.  break
  34.  esac
  35.  
  36. done
  37.  
  38. exit $?
  39.  


Título: Re: Scripts en BASH
Publicado por: leogtz en 22 Febrero 2010, 06:42 am
@^TiFa^

No le veo utilidad a esta función:

Código:
function Usuarios {
 
  w
}

Directamente podrías usar el comando w y ya.


Título: Re: Scripts en BASH
Publicado por: ^Tifa^ en 23 Febrero 2010, 13:45 pm
Si es cierto... de hecho a la larga podria obviar todas las funciones y colocar cada comando debajo de su respectivo Case.