Con libre consulta de material.
1. Escribir un script
para encontrar usuarios que haga más de cierto número de
días que no ingresan al sistema. Se dispone para ello de los siguientes
comandos:
ypcat passwd
da un listado de todos los usuarios en el sistema.
lastlog
-t$DIAS
da un listado de quienes han ingresan al sistema hace menos
de $DIAS. DIAS es una variable inicializada al principio del script, para
poder cambiarla fácilmente; fijarla en 30 días. El formato
de salida de lastlog
es el siguiente:
Username Port From Latest victor pts/2 :0.0 mié dic 20 19:29:15 -0300 2000 cristina :0 console lun dic 18 14:49:51 -0300 2000 root tty2 dom dic 17 20:34:25 -0300 2000
#!/bin/bash # prob2: usuarios sin ingreso en los últimos $DIAS # DIAS: cantidad de días. DIAS=30 # lista ordenada de usuarios con ingreso en los ultimos $DIAS lastlog -t$DIAS | grep -v ^Username | cut -d" " -f1 | \ sort > lastlog.tmp # usuarios en /etc/passwd y no en lastlog.tmp cat /etc/passwd | grep -v "#" | sort | cut -d: -f1 | \ diff - lastlog.txt | grep "<" # elimina archivo temporal rm lastlog.tmp2. A partir del comando ypcat passwd filtrar las cuentas de usuarios del sistema (con UID menores que 1000) para mostrar sólo los usuarios verdaderos (con UID 1000 en adelante). (10 puntos)
ypcat /etc/passwd | grep -E -v "[^:]+:[^:]*:[0-9]{1,3}:"
3. Escribir un script de arranque tango
para un sofware llamado tango que funciona en base a un demonio
tangod.
El script deberá aceptar los parámetros siguientes y realizar
las acciones indicadas:
#!/bin/bash
# tangod: emulación de demonio para tango
# arrancarlo en background
echo tangod: corriendo...
trap "echo recibida señal 1" 1
trap "echo recibida señal 15,terminando ; exit" 15
while true
do
sleep 6
done
###
#!/bin/bash
# tango: script de arranque para tango.
#
# sleep 3 da tiempo a mensajes del script emulador.
PID=`ps ax | grep tangod | grep -v grep | cut -c1-6 | tr -d " "`
case "$1" in
start)
/tmp/tangod &
sleep 3
;;
stop)
kill -15 $PID
sleep 3
;;
restart)
./tango stop
sleep 3
./tango start
sleep 3
;;
reload)
kill -1 $PID
sleep 3
;;
*)
echo "uso de tango: tango { start | stop | restart | reload }"
;;
esac