Proyecto Utilerías de Unix
Luis SubiasTrabajo22 de Octubre de 2018
635 Palabras (3 Páginas)120 Visitas
Proyecto 1.
En una organización se desea ingresar los usuarios del sistema operativo almacenados en /etc/passwd a una base de datos. Se requiere que los usuarios sean exportados a la base de datos en formato sql. Los datos que se requieren como mínimos son: nombre de usuario, uid y home directory. Suponiendo que las primeras líneas del archivo son:
root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin
La salida resultante debe ser:
insert into usuarios_so(usuario,uid,home) values('root','0','/root') insert into usuarios_so(usuario,uid,home) values('bin','1','/bin') insert into usuarios_so(usuario,uid,home) values('daemon','2','/sbin')
cat /etc/passwd |cut -d: -f1,3,6|tee base.txt| wc -l > base2.txt
x=$(cat base2.txt)
for((i=1; i<=x; i++));
do
DATO1=$(cut -d: -f1 base.txt|head -$i|tail -l)
DATO2=$(cut -d: -f2 base.txt|head -$i|tail -l)
DATO3=$(cut -d: -f3 base.txt|head -$i|tail -l)
echo "insert into usuarios_so(usuario,uid,home) values('$DATO1','$DATO2','$DATO3')"
done
Iniciamos con un cat para ver el contenido de /etc/passwd, con una tubería y un cut le decimos que nos muestre solo el usuario, uid y que nos guarde toda esa información en un documento llamado base.txt y a su vez nos rediriga el conteo de líneas a un archivo llamado base2.txt.
Le asignamos el contenido de base2.txt a una variable denominada “x”; con un for asignamos una variable denominada “i” con valor igual a 1, digamos que va hacer la encargada de ir leyendo línea por línea nuestro /etc/passwd (ya ordenado por usuario, uid y home).
Dentro del for vamos a crear tres variables llamadas DATO1, DATO2, DATO3; el comando cut -d: -f1 base.txt indica que tomaremos primero el usuario y así con uid y home. Todo esto para que al momento de lanzar echo "insert into usuarios_so (usuario, uid,home) values('$DATO1','$DATO2','$DATO3')", nos imprima la salida que esperamos.
Proyecto 2
En una organización requieren hacer el análisis de la bitácora del proxy. Sin embargo, el administrador, por razones de legibilidad de la bitácora, configuró la fecha de los registro dentro de la bitácora en formato dd/mm/aaaa, lo que dificulta la lectura para la herramienta de análisis. Se requiere transformar el archivo, para que la fecha utilice el formato 'segundos desde el 1 de enero de 1970'.
#!/bin/bash
for x in $(cat bitacora.log| cut -d “ “ -f1)
do
mes=$(echo $x| cut -c 4-6)
dia=$(echo $x| cut -c 1-2)
anio=$(echo $x| cut -c 8-11)
tiempo=$(echo $x| cut -c 13-20)
date -d "$anio $mes $dia $tiempo" +%s >> timeunix.txt
done
cut -c 22- bitacora.log > resto.txt
paste timeunix.txt resto.txt| tr '\t' ' '
rm -f timeunix.txt resto.txt
Lo primero que hice en el proyecto 2, es crear un script llamado proyecto2.sh, dentro de este use un for y x se encargar de leer los archivos de bitácora.log línea por línea.
Para que recortar la salida de bitácora.log (documento con el formato fecha dd/mm/aaaa) y que nos de solo la fecha y hora, use el comando cut –d “ “ -f1 .
Dentro del for acortaremos mes, dia, anio, tiempo para poderlos meter en el comando que nos va cambiar el formato de fecha y hora de bitácora.log a tiempo Unix(segundos desde 1 enero de 1970), toda esta información la vamos a mandar a un archivo que vamos a llamar timeunix.txt.
Con cut -c 22- bitacora.log > resto.txt cortamos el resto de información desde la línea 22 de bitácora.log para mandarla a un archivo llamado resto.txt
...