script para remover aquivos com mais de 15 dias

1. script para remover aquivos com mais de 15 dias

joao paulo
joaopaulo999

(usa Ubuntu)

Enviado em 09/09/2010 - 16:11h

Bom dia pessoal

estou começando a ler agora sobre shell script
achei o assunto incrível, porem como todo novato em script não tenho nenhum conhecimento no assunto, na verdade sou um completo leigo como uma grande vontade de aprender mais sobre o assunto porem estou meio travado para fazer um scrip em questão não sei nem por onde começar

preciso que o mesmo
remova todos os meus arquivos .txt QUE NÃO foram modificados a mais doque 15 dias em diretórios com a permissão 1777

se alguem poder mi ajudar
agradeço de coração

obrigado pela atenção

paz a todos


  


2. Re: script para remover aquivos com mais de 15 dias

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 09/09/2010 - 16:31h

Leia sobre o find q ele faz isso tudo pra vc:

# man find


3. Re: script para remover aquivos com mais de 15 dias

Vinicius Mello
vmmello

(usa Slackware)

Enviado em 17/09/2010 - 15:06h

O find pode fazer a primeira parte de remover os arquivos não modificados há mais de 15 dias, mas pra fazer isso exclusivamente em diretórios com a permissão 1777 precisa escrever um script. Antes de escrever o script eu só vou considerar duas coisas.

Por exemplo, pra remover arquivos não modificados há mais de 15 dias que estão no diretório /tmp:

# find /tmp -type f -mtime +15 -exec rm -f {} \; -ls

Caso tu saiba quais são os diretórios com a permissão 177 pode passar como o primeiro argumento para o find, por exemplo:

# find /tmp /var/tmp -type f -mtime +15 -exec rm -f {} \; -ls

Mas pra descobrir os diretorios automaticamente teria que ser com um script do tipo:

#!/bin/bash
#

# cria um arquivo temporario pra guardar a lista de diretorios 1777
TMP_ARQ_DIRS=$(mktemp)

# salva a lista de diretorios 1777 no arquivo $TMP_ARQ_DIRS
# e descarta as mensagens de erro: 2>/dev/null
find / -type d -perm 1777 -print 2>/dev/null >$TMP_ARQ_DIRS

# agora lê cada diretorio (linha) no arquivo e executa o find pra achar
# arquivos nao modificados há mais de 15 dias
while read L_DIR; do
find "$L_DIR" -type f -mtime +15 -exec rm -f {} \; -ls
done < $TMP_ARQ_DIRS



4. Crontab + Find

Heber Queiroz
heberq

(usa Coyote)

Enviado em 24/08/2017 - 16:49h

Montei um servidor de backup DVR, porém o servidor está se enchendo rápido de mais.
Estou usando o Painel VestaCP para criar e gerenciar as contas dos clientes.
No VestaCP eu posso programar para o crontab excluir esses arquivos, certo ? Porém minha dúvida:
1) Tenho que montar esse script como root ou posso criá-lo como usuário também ?
2) Os DVR montam a seguinte estrutura para efetuar os backups: /ipdousuario/ano-mes-dia/#cameras ( Qual procedimento terei que fazer para excluir essas pastas dentro da pasta ipdousuario com mais de 15 dias no servidor ? )
3) Cada usuário têm sua própria pasta no servidor ( /home/nomedousuario )

Meu servidor de backup é um Centos 7 + VestaCP.
Desde já agradeço a ajuda de todos

Heber Queiroz






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts