Como devo restaurar / var / cache?

6

Acabei de restaurar meu servidor Raspberry Pi de uma imagem rsync . Durante o backup, eu excluíra /var/cache/* , achando que isso restauraria um diretório vazio. Isso funcionou, mas, quando reiniciei, um processo reclamava que não era possível gravar nos seguintes e-mails.

Subject: status report from ddclient@raspberrypi
...
WARNING:  updating <url>.dynu.com: nochg: No update required; unnecessary attempts to change to the current address are considered abusive
FATAL:    Cannot create file '/var/cache/ddclient/ddclient.cache'. (No such file or directory)

Eu verifiquei as permissões de /var/log , que eram consistentes com meu sistema de desktop Arch.

$ ls -ld /var/cache/
drwxr-xr-x 3 root root 4096 Aug 15 13:23 /var/cache/

Eu tenho que fazer mais alguma coisa? Se as permissões forem a-w , então como os processos não-raiz podem escrever aqui?

    
por Sparhawk 16.08.2014 / 03:56

2 respostas

7

/var/cache não é gratuito para /var/tmp . Cada serviço que o requer possui um subdiretório em /var/cache com permissões apropriadas para armazenar arquivos.

No Debian e nas distribuições derivadas, você pode executar dpkg -S /var/cache para encontrar quais pacotes configuraram os diretórios em /var/cache e apt-get --reinstall install PACKAGE_NAME … para reinstalar esses pacotes e recriar os diretórios em /var/cache .

Alguns aplicativos repopulam seu cache em tempo real. Outros precisam ter o cache preenchido explicitamente; Isso geralmente é feito por um cron job. Alguns precisam ser preenchidos manualmente; por exemplo, para usar apt-file , primeiro você precisa executar apt-file update como root.

Existe uma parte de /var/cache no Debian que não pode ser reconstruída: /var/cache/debconf/config.dat . Este arquivo contém as respostas que você deu durante a instalação dos pacotes Debian. Este é um erro de longa data no Debconf.

    
por 17.08.2014 / 02:36
2

Felizmente eu ainda tinha uma cópia do sistema de arquivos corrompido, então eu tinha uma idéia do que deveria ser em /var/cache para o meu sistema.

cd /var/cache
sudo mkdir apache2 apt ddclient debconf dictionaries-common fontconfig ldconfig man modsecurity
sudo chmod a=,u=rwx ldconfig
sudo chmod g=rsx man
sudo chown man man
sudo chown www-data modsecurity
sudo mkdir apache2/mod_cache_disk 
sudo chown www-data:www-data apache2/mod_cache_disk

Após apt-get update e reinicialização, a maioria desses diretórios foi repopulada. No entanto, havia vários arquivos ausentes em man , então eu os repus com

sudo apt-get --reinstall install man

Eu também achei que dictionaries-common e fontconfig estavam vazios, mas eu não me preocupei com eles, já que eu não tinha ideia do que eles estavam fazendo no meu servidor sem cabeça! (Possivelmente a dependência do ownCloud no Libreoffice.)

Esta informação é provavelmente específica do meu sistema. No futuro, não vou excluir /var/cache dos backups.

    
por 16.08.2014 / 07:53