AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 511029
Accepted
ummw
ummw
Asked: 2019-04-08 04:16:34 +0800 CST2019-04-08 04:16:34 +0800 CST 2019-04-08 04:16:34 +0800 CST

Impedir que um diretório em /tmp seja excluído

  • 772

Costumo usar o /tmpdiretório em minha máquina Linux para armazenar arquivos temporários (por exemplo, PDFs de um site que quer que eu baixe primeiro etc.) e muitas vezes crio um diretório com meu nome de usuário. Mas a cada inicialização (incluindo todos os arquivos) é excluído. Agora eu sei que posso colocá-lo em /var/tmp, mas quero que todo o seu conteúdo seja excluído, mas que o próprio diretório seja mantido. Então:

tmp
 |- me # this should stay
 |  |- foo1 # this should be deleted...
 |  |- bar1 # ...and this as well
 |- other stuff...

Há alguma maneira de fazer isso? Talvez com permissões ou com uma configuração especial?

tmp
  • 4 4 respostas
  • 4764 Views

4 respostas

  • Voted
  1. Stephen Kitt
    2019-04-08T05:15:51+08:002019-04-08T05:15:51+08:00

    Eu uso pam-tmpdirpara isso: ele cria um diretório temporário privado do usuário no login. Para configurá-lo, adicione

    session optional pam_tmpdir.so
    

    aos serviços PAM apropriados; em um sistema baseado em Debian, instalar o libpam-tmpdirpacote oferecerá fazer isso para você, ou você pode adicionar a linha a /etc/pam.d/common-session. Na próxima vez que você efetuar login, você encontrará um diretório /tmp/usercom seu id de usuário TMPe TMPDIRdefinido adequadamente.

    • 15
  2. Best Answer
    Kusalananda
    2019-04-08T05:43:30+08:002019-04-08T05:43:30+08:00

    Uma solução seria usar um @rebootcron job:

    @reboot mkdir -p "/tmp/$USER"
    

    Adicionar isso ao seu crontab crontab -efaria com que ele fosse executado sempre que a máquina inicializasse.

    Ou, use

    mkdir -p "/tmp/$USER"
    

    no arquivo de inicialização do seu shell.

    Em ambos os casos, você também pode querer usar

    TMPDIR=/tmp/$USER
    export TMPDIR
    

    no arquivo de inicialização do seu shell se você quiser usar esse diretório como o diretório temporário padrão.

    • 4
  3. viraptor
    2019-04-08T14:59:57+08:002019-04-08T14:59:57+08:00

    Se você não está executando nenhum sistema com systemd e ele usa systemd-tmpfiles para gerenciar a limpeza, você deve configurar o diretório usando esse sistema.

    Aqui está uma documentação completa . Você provavelmente pode conseguir o que deseja criando /etc/tmpfiles.d/something.confcom conteúdos como:

    d     /tmp/your_username   0750 your_user your_group  - -
    
    • 3
  4. Blrfl
    2019-04-08T09:10:38+08:002019-04-08T09:10:38+08:00

    Como apontado nos comentários, /tmpé para arquivos transitórios e não serão perdidos se forem excluídos. Se você estiver no meio de algo e a máquina reiniciar, tudo o que você escreveu lá desaparecerá e você terá que começar de novo, o que significa que esses arquivos podem não ter sido tão temporários, afinal.

    Eu mantive um diretório temporário em meu diretório pessoal por muitos anos, começando quando um gigabyte era muito espaço e descobri que exigia limpeza periódica para me livrar de arquivos que se tornaram antigos e grosseiros. Na maioria das vezes, o que restava após esse processo tinha menos de duas semanas, então agora limpo com um cron job que é executado uma vez por dia:

    find $HOME/tmp -depth -mtime +30 -print0 | xargs -0 -r rm -rf
    

    Qualquer coisa que eu baixe ou crie como semi-temporário vai para lá e o sistema limpa qualquer coisa que eu deixo para trás. Qualquer coisa que precise de um lar permanente recebe um muito antes de o cron job se livrar dele.

    • 1

relate perguntas

  • Como editar o temporizador para systemd-tmpfiles-clean?

  • diretório tmp para desenvolvimento que é limpo regularmente?

  • Outros motivos para "sem espaço no dispositivo" além da pasta totalmente usada?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve