tmpfs - cria automaticamente o caminho inteiro quando escreve no arquivo

1

Eu montei tmpfs .e.g.

/tmspfs/cache

Como esperamos, então, após a reinicialização do servidor, o RAM está vazio e todo o conteúdo da montagem está ausente. Está tudo bem. Mas eu tenho no meu sistema algum caminho completo, por ex. / tmpfs / cache / user1 / file - o erro é / tmpfs / cache / user1 / não existe.

Eu não posso adicionar algumas verificações e rmdir ao software.

Então, a pergunta é - Existe alguma maneira aqui, para criar automaticamente todo o caminho antes de criar o arquivo?

Obrigado.

    
por Pavel 27.06.2014 / 13:36

3 respostas

0

Possível com LD_PRELOAD e algumas bibliotecas, dependendo do software. A coisa mais fácil pode ser colocar algo em rc.local que criará os diretórios como uma etapa final no procedimento de inicialização.

Se você quisesse ter certeza de que os diretórios estão lá continuamente, você poderia ter uma tarefa cron executando que criasse as dirs (usando mkdir -p possivelmente).

    
por 27.06.2014 / 14:07
0

Se você usar /etc/fstab para definir essa montagem, basta adicionar mkdir /tmpfs/cache/user1 a /etc/rc.d/rc.local , para que ela seja criada na inicialização.

    
por 27.06.2014 / 14:09
0

Se você precisar de uma estrutura persistente nas reinicializações, a maneira de implementar isso é ter uma tarefa em root ' crontab :

*/5 * * * * /usr/bin/ionice -c3 -n7 /bin/nice -n 19 \
              /usr/bin/rsync -ah --stats --delete /path/to/persistent/backup /tmpfs/

Em seguida, em /etc/rc.local você garante que a estrutura esteja de volta na inicialização:

ionice -c3 -n7 nice -n 19 rsync -ahv --stats --delete /path/to/persistent/backup \
  /tmpfs/ 1>/dev/null

É claro que você precisa adaptar o comando rsync para atender às suas necessidades específicas.

    
por 27.06.2014 / 14:23