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:

VPN o Redes Privadas Virtuales (Parte II)
Beneficios de una VPN Actualmente, las VPNs pueden aportar grandes beneficios a las empresas, por la diversidad de servicios que ofrecen y que ayudan a fortalecer los objetivos del negocio. Una estrategia de VPN debe estar basada en función ...
Los Spyware: Troyanos del lado de la empresa
Siempre han existido, pero ahora se empiezan a publicitar con eufemismos como software de monitorización, software para el control parental o software para el control de la productividad. Se trata del, llamado abiertamente, Spyware: software para e...
Asegure sus datos contra pérdidas accidentales
Los datos almacenados en su computadora pueden hacer de su vida un Edén o un infierno. Allí puede haber almacenados archivos financieros, valiosos documentos o preciosas fotografías. ¿Se arriesgaría usted a perderlos? Seguramente no. Es por ell...
GtkOrphan: Elimina los huerfanos! (Ubuntu/LinuxMint)
GtkOrphan es una aplicacion gráfica para los sistemas Debian o basados en ella (Ubuntu, LinuxMint por ejemplo) que soporten Perl/Gtk2 para analizar el estado de sus instalaciones, en busca de bibliotecas huérfanas. E...
VLC-Soundcloud para Debian - Xanadu - Ubuntu - LinuxMint
Como sabemos VLC presenta ciertos problemas técnicos a la hora de conectarse a Playlist de Soundcloud.com, buscando soluciones encontré en ...
Crear acciones en Thunar ( Debian - Ubuntu - Mint - Xanadu)
Con un simple cambio en el archivo /home/TU_USUARIO/.config/Thunar/uca.xml Crear o editar desde un terminal o consola: sudo su nano /home/TU_USUARIO/.config/Thunar/uca.xml añ...
Introducción al TCP/IP / Escaneo de puertos avanzado / DoS
Los protocolos basados en TCP, son protocolos orientados a conexión. Esto quiere decir, que hay todo un proceso para armar la conexión, recien ahi se empiezan a mandar los paquetes necesarios (la información que se...
Diferencia entre WEP y WPA
WEP (Protocolo de equivalencia con red cableada): La seguridad de la red es extremadamente importante, especialmente para las aplicaciones o programas que almacenan información valiosa. WEP cifra los datos en su red de forma que sólo...
Desmontar USB por Terminal/Consola
En oportunidades hay que desmontar alguna unidad USB por ejemplo un pendrive, por consola es bastante sencillo. ...
Instalar Elementary Desktop Linux Mint - Debian - Xanadu y derivados
Elementary Desktop es un bonito y ligero escritorio originalmente de Elementary OS, con Pantheon, que es un entorno basado en GNOME pero más ligero. Para instalarlo: ...

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