Excluir arquivos com mais de x dias, a partir do dia em que eles foram movidos para a pasta aleatória

1

Eu corro o Ubuntu 14.04 como servidor de arquivos para clientes Windows. Os clientes mapearam a pasta compartilhada da rede para trabalhar. Quando eles excluem arquivos dessa pasta, os arquivos vão para ".recycle". Eu queria excluir arquivos com mais de x dias. Eu usei o comando autotrash:

autotrash -d 30 -T /home/etc/.recycle 

mas me diz que o .recycle não contém arquivo info:

Can not find trash information directory. Make sure you have at least GNOME 2.24

Eu estava olhando para: /home/etc/.recycle/info

O Gnome mais recente está instalado e o resultado é o mesmo. Eu entendo que o aplicativo não pode ler informações quando os arquivos foram movidos para .recycle. Eu posso usar o comando: find /path/to/files* -mtime +5 -exec rm {} \; , mas quando os arquivos se movem para .recycle eles mantêm a data da última modificação, e não a data em que eles mudam para a pasta.

Posso criar um arquivo de informações? Existe alguma solução como posso excluir arquivos mais antigos que x dias a partir do dia em que os arquivos foram movidos para alguma pasta?

Obrigado antecipadamente.

    
por Milan 26.04.2017 / 11:28

1 resposta

0

Você pode definir o seguinte script para ser executado a cada X dias ( usando cron ):

#!/bin/bash

cd /home/etc/recycle_old           #Deletes old trash
rm -r ./*

cd /home/etc
mv -r ./recycle ./recycle_old      #Moves new trash to "old"-folder

Funciona assim:

1. Existem 2 pastas, recycle (que já foi fornecida) para os arquivos excluídos "recentes" e recycle_old para os arquivos "antigos".

2. A cada X dias, todo o conteúdo de recycle_old é excluído e substituído pelo conteúdo "recente" de recycle

Se você deseja excluir arquivos com mais de um mês, basta mover o script para /etc/cron.monthly . Se você quiser algo mais específico, confira como definir um cronjob .

    
por M. Becerra 26.04.2017 / 20:57