%3F%20.png)
Espero que a pergunta não seja muito geral.
Como tenho um vserver (Ubuntu 12.04) não posso restringir o tamanho dos diretórios usando cotas. Eu me pergunto se existem outras possibilidades para conseguir isso.
O único método que eu poderia imaginar seria uma combinação de inotify + arquivo de configuração onde o tamanho máximo é indicado + comando que, bem, esvazia o arquivo ou o remove ou algo parecido. Não se trata de restringir diretórios de usuários, mas de arquivos gravados automaticamente, como arquivos de log.
Sei que não é a melhor maneira, mas é a única que acho que funcionaria. Você tem melhores?
Responder1
Isso não será bem dimensionado para muitas cotas, mas uma solução simples seria simplesmente criar outro sistema de arquivos com o tamanho fixo desejado.
Se você não tiver nenhum armazenamento de bloco sobressalente, poderá usar um dispositivo de loopback apontado para um arquivo esparso. O arquivo esparso não consumirá armazenamento até que seja usado, mas se você criar um sistema de arquivos sobre esse arquivo esparso, ele parecerá ter uma quantidade máxima fixa de armazenamento disponível. Crescer/diminuir será um pouco difícil. O método mais seguro será criar um novo arquivo esparso + sistema de arquivos maior/menor e, em seguida, transferir o conteúdo do arquivo antigo.
Responder2
Se o problema for especificamente arquivos de log, use um daemon syslog que suporte a especificação do tamanho máximo do arquivo. Eu acredito que o rsyslogd faz isso. Se isso não for possível, existem vários programas logrotate que podem girar os logs quando atingirem o tamanho máximo do arquivo e manter apenas um determinado número de logs, para que o tamanho total seja mantido dentro dos limites.