Comando que me informará a última vez que um diretório ou qualquer um de seus subdiretórios foi modificado? [fechadas]

3

Estamos tentando desaprovar nosso antigo servidor de pastas domésticas do Linux. Ainda temos algumas pessoas que estão usando ativamente. Nosso plano é alterar as pastas domésticas que ninguém usou nos últimos seis meses para ler somente. Temos clientes Mac e Windows acessando esses compartilhamentos em SMB.

Então minha pergunta é: Existe um comando que me diga a última vez que um diretório ou qualquer um de seus subdiretórios foi modificado?

Ou

Uma lista de diretórios pai que foram modificados desde uma determinada data?

Isso me diria quais usuários ainda estão usando ativamente suas pastas base.

    
por revjamie 14.01.2014 / 23:51

1 resposta

3

Um problema que você pode encontrar é que modificar um arquivo em um diretório não altera necessariamente o registro de data e hora do diretório. Aqui está um exemplo:

paulgear@localhost:~/tmp$ echo test1 > test1
paulgear@localhost:~/tmp$ ls -la
total 4
drwxr-xr-x 1 paulgear paulgear   18 Jan 15 09:29 .
drwxr-xr-x 1 paulgear paulgear 3976 Jan 15 09:26 ..
drwxr-xr-x 1 paulgear paulgear    0 Jan 15 09:29 test
-rw-r--r-- 1 paulgear paulgear    6 Jan 15 09:29 test1
paulgear@localhost:~/tmp$ date
Wed Jan 15 09:30:07 EST 2014
paulgear@localhost:~/tmp$ echo test2 > test1
paulgear@localhost:~/tmp$ ls -la
total 4
drwxr-xr-x 1 paulgear paulgear   18 Jan 15 09:29 .
drwxr-xr-x 1 paulgear paulgear 3976 Jan 15 09:26 ..
drwxr-xr-x 1 paulgear paulgear    0 Jan 15 09:29 test
-rw-r--r-- 1 paulgear paulgear    6 Jan 15 09:30 test1

Observe como a substituição completa do conteúdo do test1 não atualizou o registro de data e hora do diretório. Então, seu comando find provavelmente deveria estar procurando arquivos e diretórios, algo assim:

find . -mtime +180 -print0 | xargs -0 chmod a-w

Ou talvez você queira tornar os critérios de tempo diferentes para arquivos e diretórios:

find . -type d -mtime +120 -print0 | xargs -0 chmod a-w
find . -type f -mtime +180 -print0 | xargs -0 chmod a-w

Para muitos aplicativos (maioria?) que usam compartilhamentos de arquivos SMB, isso não se aplicará, pois geralmente eles gravam seu conteúdo em um arquivo temporário no mesmo diretório, excluem o arquivo original e renomeiam o arquivo temporário como original. nome. Mas aplicativos de "banco de dados" como o Access não fazem isso.

    
por 15.01.2014 / 00:36

Tags