Eliminar archivos o carpetas que tengan mas de x minutos, dias, meses en Linux




Hace unos días un cliente nos solicitó un script para que se eliminase de la carpeta compartida publica temporal en el servidor de la empresa.

Serían eliminados aquellos archivos o carpeta que tuviesen más de 30 minutos de haber sido copiados.

SinFallas y yo, realizamos el script, empero lo mejoramos un poquito dando la opcines necesarias para que no fuera solo 30 min, sino que pudieramos elegir el tiempo, desde 1 min, 1 mes, o más.

Puedes observar el código desde github el código.

#!/bin/bash 
# by Xombra - sinfallas
# Licence: GPL-2
# Clear contents of a folder every 30 min
#
# Para revisar y eliminar archivos conforme a fecha
# Minutos -> -30 min
# Dias -> -2 days
# Mes -> -3 mounth
# años -> -1 year
# $1 es directorio
# uso delfolder.sh directorio numero escala
#
LC_ALL=C
if [[ $USER != root ]]; then
echo -e "\e[00;31mERROR: Debes ejecutar el Script como ROOT\e[00m"
exit 1
fi
trap "rm -f /run/$0.pid; exit" INT TERM EXIT
echo "$BASHPID" > /run/$0.pid
SAVEIFS=$IFS
IFS=$(echo -en "\n\b")
log="/var/log/tempBorrados.log"
fechaactual=$(date)

if ! [[ -f "$log" ]]; then
echo "Creado este archivo el: $fechaactual" > "$log"
fi
if [[ -z $1 ]]; then
echo "ERROR: Debes indicar carpeta" >> "$log"
exit 1
fi
if [[ -z $2 ]]; then
echo "ERROR: Debes indicar tiempo" >> "$log"
exit 1
fi

case "$3" in
min)

echo "1" > /dev/null
;;
day)
echo "1" > /dev/null
;;

year)
echo "1" > /dev/null
;;

month)
echo "1" > /dev/null
;;

*)
echo "ERROR: Debes indicar escala de tiempo" >> "$log"
exit 1
;;


fechaactualmenos30min=$(date +%s --date="-$(echo "$2") $(echo "$3")")
if [[ $? != 0 ]]; then
echo "ERROR: Parametros invalidos en tiempo" >> "$log"
exit 1
fi

if [[ -d "$1" ]]; then
for file in $(ls "$1"); do
if (( "$fechaactualmenos30min" > $(date '+%s' -r "$1/$file") )); then
chmod 666 $1/$file
rm -rf $1/$file
echo "Eliminado en fecha: $fechaactual - Archivo: $file" >> "$log"
fi
done
echo "===================" >> "$log"
else
echo "No existe el directorio $1" >> "$log"
fi

IFS=$SAVEIFS
rm -f /run/$0.pid
trap - INT TERM EXIT
exit 0

 uso: delfolder directorio numero escala

directorio: Carpeta donde buscará
número: número en tiempo
escala: escala a usar, puede ser (min day month year Solo una opción)

Ejemplo:

ejemplo: delfolder temporal 30 min

Buscará en la carpeta temporal aquellos archivo(s)/carpeta(s) que tengas 30 min o más de existencia y los eliminará

Nota:Recuerde darle permisos de ejecución



Otras artículos de interés:

Instalar Kernel 4.13 en Ubuntu - Linux Mint - Xanadu
Hemos publicado en diferentes oportunidades la forma de cambiar el kernel en nuestro Linux, bien sea que usemos Debian, Ubuntu, Linuxt Mint o Xanadu. O cualquier distribución Linux que use .DEB ...
Fortaleciendo el Potocolo TCP/IP en WINDOWS contra Ataques DoS
Los ataques de denegación de servicio, conocidos como DoS, intentan aprovechar los fallos del protocolo TCP/IP para saturar el tráfico e impedir que la información llegue al ordenador afectado. Hasta la fecha era muy difícil impedir un ata...
Optimizar tu sitio y acelerar la carga web
Con estos sencillos trucos tu sitio web cargará más rápido y tus usuarios te lo agreceran Herramientas para webmaster https://www.goog...
Habilitar acceso remoto a MySQL
Nota: En acceso remoto podría ser consecuencia de una vulnerabilidad, si antes poseías una regla que cerraba el puerto 3306 al eliminarla podrías ser vulnerable. Sí despues de leer la nota aún quieres habilitar el acceso remoto:...
Tuneando nuestro Ubuntu
Ubuntu Tweak es un aplicación que nos permite realizar ajustes y modificaciones a nuestro ubuntu. hay dos formas de instalación: 1.- Descargarlo desde http://ubuntu-tweak.com/do...
ERROR: E: No se pudo bloquear /var/lib/apt/lists/lock Ubuntu - Linux Mint
Algunas veces al actualizar nos sale este error al hacer update: E: No se pudo bloquear /var/lib/apt/lists/lock – open (11 Recurso temporalmente no disponible) Es bastante sencillo de arreglar, desde una consola (termina) hac...
NTP (Network Time Protocol) en Ubuntu / LinuxMint
NTP («Network Time Protocol»), se usa para mantener los relojes de los computadores en la hora correcta sincronizándolos mediante internet o una red local, o mediante un receptor que interprete GPS, DCF-77, NIST o se&nt...
Instalar Ecualizador de Sonido en Linux - Debian - LinuxMint - Xanadu
PulseAudio (antiguamente PolypAudio) es un servidor de sonido multiplataforma, capaz de funcionar por red. Funciona bajo sistemas compatibles con POSIX como GNU/Linux y también en otros sistemas operativos como Microsoft Windows. Para m...
Calcular el valor de shmmax y shmall (Linux)
Para calcular el valor optimo de estos parámetros solo debemos copiar el siguiente código en nuestro editor de texto favorito y después de guardarlo debemos darle permisos de ejecución. #!/bin/bash...
Instalando Ubuntu desde Windows
A todos mis compañeros y amigos desde hace algún tiempo le he sugerido que usen a Linux como su sistema operativo y que dejen a un lado el lado seguir usando el Micsoft Windows aunque sea crakeado. Esta solución bastante sencilla ...

Brindanos
un o una


Redes Sociales

Publicidad


Gana Bitcoins desde tu casa

Categorías


Planeta Vaslibre

Blog Roll




Nube de tags

  • anonimato
  • anonimo
  • antivirus
  • apache
  • archivos
  • blog
  • bsd
  • bug
  • carpetas
  • centos
  • chrome
  • cifrado
  • computer
  • debian
  • dias
  • eliminar
  • exploits
  • fedora
  • fice
  • firefox
  • forense
  • freebsd
  • gentoo
  • github
  • gnome
  • gnu
  • gpl
  • gtk
  • hack
  • hacking
  • hosting
  • informatica
  • internet
  • isos
  • libre
  • licencias
  • linux
  • linuxmint
  • lxde
  • meses
  • micros
  • mint
  • minutos
  • mit
  • mozilla
  • mysql
  • noticia
  • opensource
  • pgp
  • php
  • sabayon
  • seguridad
  • system
  • tecnologia
  • tengan
  • thunar
  • thunderbird
  • tor
  • troyanos
  • tware
  • ubuntu
  • underground
  • vaslibre
  • virus
  • viserproject
  • vivaldi
  • vulnerabilidades
  • web
  • website
  • windows
  • xanadu
  • xfce
  • xombra