Script para la limpieza del escritorio en BASH. (II parte)
En vista de que no hay contenido nuevo pero sí que hay alguien con interés en conseguir los scripts, los voy a poner aquí para que los uséis con un simple copia y pega :p
Os recuerdo que hay que darle permisos de escritura
Este lo llamé ‘limpieza.ejecutor.sh’
#!/bin/bash
#
# Este script va a limpiar de forma periódica el escritorio
# de archivos basura para que esté limpito
#
#
# Primero listamos los archivos con mas de 5 dias de antiguedad.
#
cd /home/invitado/.limpieza/deposito/5dias
fecha=`date`
echo >>/home/invitado/.limpieza/log.dat
echo >>/home/invitado/.limpieza/log.dat
echo %%———————————————————————-%% >>/home/invitado/.limpieza/log.dat
echo Archivos eliminados en la limpieza del $fecha >>/home/invitado/.limpieza/log.dat
echo %%———————————————————————-%% >>/home/invitado/.limpieza/log.dat
echo >>/home/invitado/.limpieza/log.dat
dir –format single >>/home/invitado/.limpieza/log.dat
#
# Una vez ya tenemos hecha la lista de los archivos, los borramos ya que nadie los ha reclamado.
#
rm -r /home/invitado/.limpieza/deposito/5dias/*
#
# Ahora vamos a mover los archivos de dias anteriores a sus respectivas carpetas
#
mv /home/invitado/.limpieza/deposito/4dias/* /home/invitado/.limpieza/deposito/5dias
mv /home/invitado/.limpieza/deposito/3dias/* /home/invitado/.limpieza/deposito/4dias
mv /home/invitado/.limpieza/deposito/2dias/* /home/invitado/.limpieza/deposito/3dias
mv /home/invitado/.limpieza/deposito/1dia/* /home/invitado/.limpieza/deposito/2dias
#
# Ya hemos acabado de trabajar con los archivos del deposito. Ahora vamos a por los nuevos…
#
cd /home/invitado/Desktop
dir –format single > /home/invitado/.limpieza/data2.dat
#
#
#
# $m1 será el numero de lineas de data1.dat (lista segura)
m1=`wc -l /home/invitado/.limpieza/data1.dat|awk ‘{print $1}’`# $m2 será el numero de lineas de data2.dat (lista con basurilla)
m2=`wc -l /home/invitado/.limpieza/data2.dat|awk ‘{print $1}’`# $n2 será el contador para el ciclo while de data2.dat
n2=1while test $n2 -le $m2
do# $p2 son los archivos que figuran en la lista con basurilla
p2=`cat /home/invitado/.limpieza/data2.dat|sed -n ”$n2′p’`# $n1 será el contador para el ciclo while de data1.dat
n1=1
i=0
while test $n1 -le $m1
do
# $p1 son los archivos que figuran en la lista segura
p1=`cat /home/invitado/.limpieza/data1.dat|sed -n ”$n1′p’`
####
echo $p1
echo $p2if test “$p1″ = “$p2″
then
# Si resulta que el archivo esta en la lista segura, pues se salvará.
i=1
fin1=$(($n1+1))
done# Si después de haber comprobado todos los archivos, se ve que no estaba en la lista segura
# no se le habrá hecho i=1 con lo que el archivo será movido al deposito.
if test $i -eq 0
then
mv “`echo $p2|tr -d ‘\’`” /home/invitado/.limpieza/deposito/1dia
fi
n2=$(($n2+1))
done
#
# Con esto hemos movido los archivos basura a una carpeta oculta en /home/invitado/.limpieza/deposito/1dia
#
# By elfio.
#
‘limpieza.instalador.sh’
#!/bin/bash
#
# Este es un simple script que crea los directorios y archivos necesarios
# para el correcto funcionamiento de los script de limpieza.
#
pinicial=$PWD
mkdir /home/invitado/.limpieza
mkdir /home/invitado/.limpieza/deposito
cd /home/invitado/.limpieza
#
echo ————————————————————————– >>log.dat
echo Este es un archivo que guardará un historial de todos los archivos que se >>log.dat
echo borren como consecuencia del funcionamiento del Script limpieza.ejecutor.sh >>log.dat
echo y así tener una base de datos de los archivos borrados por este método y >>log.dat
echo no por otro. Espero que esto me salve el culo alguna vez xD. >>log.dat
fecha=`date`
echo Instalación hecha el: $fecha >>log.dat
echo ————————————————————————– >>log.dat
echo >>log.dat
#
mkdir /home/invitado/.limpieza/deposito/1dia
mkdir /home/invitado/.limpieza/deposito/2dias
mkdir /home/invitado/.limpieza/deposito/3dias
mkdir /home/invitado/.limpieza/deposito/4dias
mkdir /home/invitado/.limpieza/deposito/5dias
#sudo cp $pinicial/limpieza.ejecutor.sh /etc/cron.daily
#
# Tan sencillo como eso.
#
# By elfio.
#
Y por último, ‘limpieza.recoletor.sh’
#!/bin/bash
#
# Este es el recolector de archivos para limpieza.ejecutor.sh
#
# Este script se encarga de poner a salvo archivos que DEBEN residir en el escritorio
# y no como los que elimina el ejecutor, que son archivos basura que la gente deja de
# forma sistematica y que termina por dejar el escritorio hecho un asco.
#
# Basicamente su ejecucion listara los archivos que actualmente estan en el escritorio
# y si son los que deberian ser, los pondra a salvo en una lista segura.
#
# Este script debera ser ejecutado siempre que se deseen añadir archivos a la lista
# segura para que no sean borrados por el ejecutor, que se entrara en accion una vez
# al dia.
#
# Vamos a ello:
#
echo
echo Borrando antigua lista segura…
rm /home/invitado/.limpieza/data1.dat
echo O.K.
echo
echo Escaneando el escritorio…
cd /home/invitado/Desktop
dir –format single > /home/invitado/.limpieza/data1.dat
echo
echo Estos son los archivos que se han encontrado:
echo
cat /home/invitado/.limpieza/data1.dat
echo
n=1
while n=1;
do
echo Son estos los archivos que desea poner a salvo?
echo
echo 1. Si, son esos.
echo 2. No, ha habido una confusion. Quiero parar todo esto.
read respuesta
#
if test $respuesta = 1;
then
echo O.K., todo listo entonces.
break
elif test $respuesta = 2;
then
echo Muy bien, no hay problema.
rm /home/invitado/.limpieza/data1.dat
break
else
echo Lo siento, no he entendido la respuesta.
fi
done
#
# Con esto ya tendriamos nuestra lista segura y todo preparado para que se ejecutase el ejecutor.
#
# By elfio.
#
No he revisado el código, pero supongo que seguirá funcionando jeje
Espero que le sirva a alguien

Scripts para la limpieza del escritorio by elfio is licensed under a Creative Commons Reconocimiento-No comercial-Compartir bajo la misma licencia 3.0 España License
-
28 noviembre 2011 en 10:03 pm | #1Script para la limpieza del escritorio en BASH. (Actualizado) « Potencial Libre