Eu tenho apache
/ mod_dav
e davfs2
no mesmo host. davfs2
é usado para montar o que o Apache está servindo no sistema de arquivos local - uma espécie de loopback. O objetivo é que o conteúdo dos arquivos atendidos seja dinâmico e venha de um banco de dados postgres via php. Nesse caso, o arquivo é um rodapé / aviso de e-mail que muda periodicamente e é lido pelo programa de e-mail.
Isso funciona muito bem, mas quando eu tento cp
um arquivo do diretório dav para outra parte do sistema de arquivos, ele cp
parece não ativar o comando 'has the file changed' no davfs2 - apenas obtém a cópia em cache. Observe que o arquivo php não mudou, apenas o conteúdo dinâmico porque algo foi atualizado no banco de dados.
Por outro lado, se eu cp
novamente 5 segundos depois, o conteúdo do arquivo correto for copiado. Acabei com um script como este:
#!/bin/bash
cp /root/pgdav/disclaimer.html /etc/postfix/disclaimer.html
sleep 5
cp /root/pgdav/disclaimer.html /etc/postfix/disclaimer.html
Os cabeçalhos relacionados ao cache no php são definidos da seguinte forma:
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
Eu configurei file_refresh 0
em davfs2.conf
.
Minha pergunta é: há algum outro cenário que estou perdendo para corrigir esse comportamento?