Linux: Como o tempo de modificação do arquivo afeta o tempo de modificação do diretório e o tempo de acesso ao diretório?

0

Gostaria de saber mais sobre como o tempo de acesso a arquivos e o tempo de modificação de arquivos estão relacionados ao acesso ao diretório e aos horários de modificação.

Eu li as "perguntas permitidas aqui", mas se houver um site StackExchange melhor para essa pergunta, entre em contato. Este não é um sistema Ubuntu, por isso askubuntu.com está fora.

Sistema:

  • Redhat Enterprise Linux 5.5.56. Não, não podemos atualizar, por favor, não pergunte sobre isso.
  • Eu tento ficar com o bash.
  • encontre a versão 4.2.27

Problema: Eu quero fazer um script bash onde, começando no diretório atual onde o script é executado, eu quero listar diretórios e subdiretórios que não foram modificados por pelo menos 300 dias. Esses diretórios que estou verificando contêm arquivos que podem ter um tempo de modificação posterior ao tempo de modificação do diretório. Quero listar apenas os nomes de diretório que contêm 'JOB', mas não 'DIV', diferenciando maiúsculas e minúsculas.

Nota: Nossos diretórios são organizados assim: os diretórios CLS_xxx conterão muitos diretórios GRP_xxx. GRP_xxx dirs conterá muitos dirs JOB_xxx. JOB_dirs pode conter muitos dirs DIV_xxx. Portanto, embora eu possa estar no diretório que contém todos os diretórios CLS, só quero mostrar diretórios que contenham JOB.

/path/to/containerdir/
  CLS_xxx/
    GRP_xxx/
      JOB_xxx/
        Files under here might be modified later than the JOB_xxx dir.
        DIV_xxx/
          files under DIV/ might be modified later than the JOB_xxx dir.

Limpo como lama? :)

Perguntas:

  • Se um arquivo é modificado dentro de um diretório, chamado JOB_1234, como isso afeta o tempo de modificação do diretório?
  • A alteração de um arquivo afeta o tempo de acesso ao diretório? Devo estar usando o tempo de acesso ao diretório com o find?
  • Existe até um interruptor para o tempo de acesso ao diretório porque eu não vi um na página man do meu sistema.
  • Em que momento o tempo de modificação do diretório é alterado? Quando alteramos as permissões? Alterar proprietários ou grupo? Algo mais?
  • Quando o horário de acesso ao diretório é alterado? Quando um arquivo dentro do diretório é acessado ou alterado?

Eu estava lendo a página man para encontrar, mas não encontrei minha resposta. Eu também li cerca de 8 páginas da minha pesquisa no Google sobre find e também não encontrei minha resposta.

Este comando funciona bem para encontrar horários de modificação de diretório > 300 dias

find . -type d -print -mtime +300 | grep -v 'DIV' | grep -P 'JOB' | sort > $outfile

Mas minha pergunta é mais ao redor, e se os arquivos dentro do diretório foram modificados mais recentemente? Dado um diretório que começa com JOB_, como posso encontrar o tempo de modificação de arquivo ou diretório mais recente de cada pasta JOB_ e os arquivos dentro dessa pasta JOB_?

Obrigado.

    
por Bulrush 12.02.2016 / 14:25

1 resposta

1

Muitas perguntas, então vou responder a parte "como funciona", e não "como faço para que isso funcione".

Isso depende do sistema de arquivos usado. Estou respondendo com base no ext [234], outros provavelmente funcionam da mesma maneira ou de forma semelhante.

  1. Não, o horário de modificação do diretório não muda se um arquivo é modificado. O diretório não é modificado neste caso de qualquer forma, ele ainda contém os mesmos arquivos, diretórios, etc ligados a ele.

  2. O mesmo que anterior, se "alterar um arquivo" significa o mesmo que "modificar algum arquivo".

    Se você remover um arquivo e adicionar um novo com o mesmo nome, ou mover outro arquivo "no topo" de outro, o diretório será modificado.

  3. Quando o diretório é modificado. Isso significa vincular / desvincular inodes, como arquivos ou subdiretórios.

    As alterações de permissão alteram a hora de alteração , mas não a hora de modificação . Estes são diferentes.

    Se você mover o diretório para outro lugar, o tempo de alteração será alterado, mas o tempo de modificação não será.

  4. O tempo de acesso ao diretório é alterado quando o diretório é acessado, se não tiver sido desativado . O volume pode ser montado com noatime , o que significa que não o último horário de acesso é escrito normalmente. Observe que os dados do diretório também são armazenados em cache.

    Além disso, se você acessar apenas um subdiretório, o tempo de acesso do (s) pai (s) não será alterado.

Portanto, se você pesquisar por diretórios que não foram alterados nos últimos 300 dias, eles ainda poderão conter arquivos que foram alterados. Criação de arquivo ou remoção não aconteceu, mas a edição de conteúdo pode ter. Você terá que verificar por arquivos como você disse.

    
por 12.02.2016 / 15:26