Fórum Ubuntu Linux - PT
23 de Maio de 2013, 14:57 *
Olá, Visitante. Faça o login ou registre-se.
Perdeu o seu e-mail de ativação?

Login com nome de usuário, senha e duração da sessão
Notícias: Atualização no plugin de busca para Firefox e Internet Explorer.
 
   Home   Ajuda Regras Pesquisa Login Registre-se  
Anúncios
Páginas: [1]   Ir para o fundo
  Imprimir  
Autor Tópico: [Resolvido]Como deletar arquivos ao finalizar uma sessão?  (Lida 834 vezes)
thiaguntu
Usuário Ubuntu
*
Deslogado Deslogado

Mensagens: 4


Ver Perfil
« em: 22 de Março de 2012, 19:00 »

Olá prezados amigos,  

Estou precisando de um Script que faça com que os arquivos de um diretório sejam deletados toda vez que se inicia ou finaliza uma sessão. Pode ser também toda vez que minha máquina for reiniciada. Ou até mesmo em um determinado período em minutos ou segundos após a criação desses arquivos.

A pasta raíz dos arquivos que pretendo apagar se chama "thumbnails" e se encontra na minha pasta de usuário: /home/"minha conta"/.thumbnails. Ela está oculta, porém sem privilégios de usuário root. Quero apagar tudo que tem dentro dela. São miniaturas de imagens e vídeos que são geradas pelo sistema.

A única maneira que encontrei após pesquisar muito na internet, foi criando um Script que fizesse com que os arquivos fossem deletados apenas em um determinado período de dias. No entanto, não quero que esses arquivos fiquem nem se quer um dia dentro da pasta.



Agradeço a atenção de todos.  Sorridente  
« Última modificação: 23 de Março de 2012, 20:32 por thiaguntu » Registrado
raidicar
Usuário Ubuntu
*
Deslogado Deslogado

Mensagens: 579


Quad Shot of Ubuntu


Ver Perfil
« Responder #1 em: 22 de Março de 2012, 19:25 »

Para determinar um espaço de tempo em minutos para executar um comando, utilize o crontab para agendar a tarefa.

Opção 1 - A melhor opção:
1 - Como root edite o arquivo /etc/crontab (sudo gedit /etc/crontab caso use ubuntu).
2 - insira a linha que, no caso, executará o comando de 5 em 5 minutos, todos os dias (0-59/5 * * * * significa executar todo dia, a cada 5 minutos):
Código:
0-59/5 * * * *   root    rm -f /diretorio/arquivos
3 - reinicie o crontab
Código:
sudo /etc/init.d/cron restart

obs: se forem varios diretórios, crie um script com todos os rm e o chame pelo crontab:
Código:
0-59/5 * * * *   root    /diretorio/meu_script.sh
/diretorio/meu_script.sh é o caminho de onde se encontra o script.
Pesquise no google sobre o crontab para aprender mais.


Opção 2:
1 - Crie um script com os comandos para remover.
2 - Coloque o caminho correto do script no final do arquivo /home/usuário/.profile
3 - Quando o usuário fizer login, o script será executado e os arquivos serão excluídos (desde que ele tenha permissão para remove-los).


Opção 3:
1 - Crie um script com os comandos para remover.
2 - Coloque o caminho correto do script no final do arquivo /etc/rc.local
3 - Quando o computador iniciar, o script será executado e os arquivos serão excluídos.


Para criar um script:
1 - abra o editor de texto e insira:
Código:
#! /bin/bash
rm -f /diretorio1/arquivos
rm -f /diretorio2/arquivos
Insira todos os rm que precisa.
2- salve o arquivo com o nome meuscript.sh e depois, pelo terminal, vá até a pasta do arquivo meuscript.sh e digite no terminal chmod +x meuscript.sh


Att,
« Última modificação: 22 de Março de 2012, 19:37 por raidicar » Registrado

Quem ama extremamente, deixa de viver em si e vive no que ama. Na vida três coisas são certas, o amor, a morte e o Linux !
Se Platão disse, então realmente sofremos de uma perigosa doença mental.
fpissarra
Usuário Ubuntu
*
Deslogado Deslogado

Mensagens: 246



Ver Perfil WWW
« Responder #2 em: 23 de Março de 2012, 00:06 »

Não recomendo mexer no diretório /etc/rc.local. Ao invés disso, crie um script em /etc/init.d:

Código:
#!/bin/bash

#Essa aqui é o script "deletefiles"

case "$1" in
  start)
  ;;

  stop)
    # seus comandos de remoção aqui...
    rm -rf ...
    rm -rf ...
    ;;
esac

E depois execute os seguintes comandos:

Código:
$ sudo chmod +x /etc/init.d/deletefiles
$ sudo update-rc.d deletefiles defaults

Você ainda pode dar prioridade para o script (quanto maior o número, mais tarde será executado... ou seja, será um dos últimos a ser chamado (tanto na inicialização quanto no shutdown):

Código:
$ sudo update-rc.d deletefiles defaults 99 99

Repare que seu script será executado sob o domínio do usuário root.

[]s
Fred
Registrado
thiaguntu
Usuário Ubuntu
*
Deslogado Deslogado

Mensagens: 4


Ver Perfil
« Responder #3 em: 23 de Março de 2012, 20:27 »

Consegui!  Contente

Testei as opções 2 e 3 postadas pelo raidicar e deram certo. Vou usar a 3 mesmo usando o rc.local até pegar mais o jeito no crontab. Acredito que também dará certo.

Bom, eu gostaria mesmo é de fazer o script rodar durante o logoff ou desligamento da máquina, e não durante o processo de boot, mas não tem problema, tanto faz.

Aproveitarei essas dicas para apagar também os documentos recentes do KDE e outras coisinhas mais. A dica do fpissarra também me poderá ser útil futuramente.

Agradeço a vocês.

Obs: Troquei o título para um mais adequado.
« Última modificação: 23 de Março de 2012, 20:38 por thiaguntu » Registrado
Páginas: [1]   Ir para o topo
  Imprimir  
 
Ir para:  

Powered by MySQL Powered by PHP Tema desenvolvido por FaBMak e n3t0
Powered by SMF 1.1.18 | SMF © 2006-2009, Simple Machines
© 2013 Canonical Ltd. Ubuntu e Canonical são marcas registradas da Canonical Ltd.
XHTML 1.0 válido! CSS válido!