Ejercicios Prácticos de Shell Scripting en Linux: Automatización y Administración
Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones
Escrito el en
español con un tamaño de 2,29 KB
1. Automatización de Copias de Seguridad
Escribir un Shell script que permita copiar todos los archivos regulares (u ordinarios) del directorio actual en un directorio llamado backup_dir. Si el directorio no existe, el script debe crearlo. (20 puntos)
#!/bin/bash
clear
if test -d ./backup_dir
then
echo -e "El directorio ./backup_dir ya existe...\n"
else
mkdir ./backup_dir
fi
for archivo in *
do
if test -f "$archivo"
then
cp "$archivo" ./backup_dir
fi
done2. Búsqueda de Archivos mediante Argumentos
Escribir un Shell script que reciba un nombre de archivo y un directorio como argumentos. El script debe validar que el segundo argumento recibido sea efectivamente un directorio y, posteriormente, buscar el archivo dentro del mismo. En caso de éxito, mostrar el resultado de la búsqueda. (25 puntos)
#!/bin/bash
clear
if test -d "$2"
then
echo -e "$2 es un directorio válido...\n"
grep -w "$1" "$2"
if test $? -eq 0
then
echo -e "El archivo $1 se encuentra en el directorio $2\n"
fi
else
echo -e "$2 NO es un directorio válido...\n"
fi3. Gestión y Verificación de Usuarios en el Sistema
Escribir un Shell script que, dado un nombre de login de usuario, determine si dicho usuario existe en el sistema. Si es verdadero, debe presentar su nombre de usuario, número de usuario (UID), grupo primario y grupos secundarios (si los tiene), con leyendas adecuadas. Si no es un usuario válido, se debe informar con un mensaje adecuado. (25 puntos)
#!/bin/bash
clear
echo -e "Ingrese un nombre de usuario: \c"
read USUARIO
id "$USUARIO" 1>/dev/null 2>/dev/null
ERROR=$?
if test $ERROR -ne 0
then
echo "El usuario $USUARIO no existe"
sleep 10s
exit
fi
NOMBRE=$(id "$USUARIO" | cut -f1 -d" ")
echo "(UID) y nombre: $NOMBRE"
GRUPO1=$(id "$USUARIO" | cut -f2 -d" ")
echo "(GID) y grupo primario: $GRUPO1"
if test $(id "$USUARIO" | tr " " "\n" | wc -l) -gt 2
then
GRUPOS2=$(id "$USUARIO" | cut -f3 -d" ")
echo "(GIDs) y grupos secundarios: $GRUPOS2"
fi