Como aumentar o tamanho do diretório / var?

2

Primeira pergunta:

Quando executo df -h , vejo isso:

# df -h
Filesystem     Size    Used   Avail Capacity  Mounted on
/dev/ad4s1a    9.7G    8.0G    918M    90%    /
devfs          1.0K    1.0K      0B   100%    /dev
/dev/ad4s1d    1.8T    6.7G    1.6T     0%    /home
procfs         4.0K    4.0K      0B   100%    /proc
linprocfs      4.0K    4.0K      0B   100%    /usr/compat/linux/proc
devfs          1.0K    1.0K      0B   100%    /var/named/dev

Por que não mostra diretórios como:

/var %código% /etc

No meu servidor dedicado anterior, eu podia ver todos os tamanhos de partição disponíveis, mas aqui só tenho /usr e /home ...

Segunda pergunta:

Como posso aumentar o tamanho da partição / ? Porque depois de 2 horas de trabalho, esta partição ficou cheia ...

    
por Cyclone 14.03.2012 / 23:24

4 respostas

7

O comando df reporta o uso do espaço em disco pelo sistema de arquivos. Seus /var /etc e /usr não são sistemas de arquivos separados, eles fazem parte do sistema de arquivos / . Você só tem dois sistemas de arquivos / e /home .

Se você puder reinstalar o sistema, poderá alterar as partições para criar um sistema de arquivos /var de tamanho adequado.

Se você não puder, pode tentar criar um link /var - > /home/var , mas os detalhes de como fazer isso dependem do acesso que você tem ao sistema.

    
por 14.03.2012 / 23:39
3

Why doesnt it show directories like:

Porque eles não têm seu próprio sistema de arquivos nesta máquina, mas são subdiretórios de / .

On my earlier dedicated server, I was able to view every partition size available, but here I got only /home and /...

Porque você só tem aqueles, presumivelmente.

How I can increase the /var partition size? Because after 2 hours of working, this partition is became full...

Você não pode, porque você não tem uma partição /var .

Se você adicionar outro disco, poderá mover todas as coisas em /var para este disco e montá-lo como /var .

Editar: Acabei de ver que /home/ está quase vazio. Então, mova todas as suas coisas em /var para /home/var e substitua /var por um symlink lá. É possível que você precise fazer isso no modo de usuário único ou em um sistema de recuperação.

    
por 14.03.2012 / 23:33
3

Como mencionado acima, você não pode aumentar /var , desde que não seja um FS separado. Mas você pode movê-lo de / para FS maior como /home . A única sugestão - use dump/restore para mover o conteúdo atual de / var para o novo local em vez de mv ou tar voodoo. Isso salva não apenas as propriedades e permissões, mas também as chamadas 'flags' como schg / uchg para / var / empty. Além disso, quero evitar que você crie hardlink / home / var - > / var até agora, como / home e / estão em partições diferentes. Geralmente tudo pode ser feito desta maneira:

  # mkdir /home/var
  # cd /home/var
  # dump 0af - /var | restore rf -
  # chflags -R nouchg,noschg /var
  # rm -r /var
  # ls -s /home/var /var

Claro, tudo acima precisa do modo de usuário único ou, se não estiver disponível, primeiro você precisa parar todos os daemons que usam / var - como sendmail ou mysql.

A outra boa prática - mova-se não o todo / var, mas apenas dirs que tendem a crescer. Tais são / var / db / mysql, / var / log e / var / mail. Eu prefiro criar um lar separado para eles - / usr / home / log, / usr / home / mysql e / usr / home / mail e assim por diante. Assim dirs são ligados às suas localizações habituais em / var para evitar configurações de software.

    
por 16.03.2012 / 00:32
2

Eu teria uma abordagem um pouco diferente do que foi proposto até agora, simplesmente porque não gosto de link simbólico dentro de /var . Como antes, crie um novo diretório em /home para conter os dados que você deseja mover e copie os dados.

Você pode usar um ponto de montagem nullfs para montar o diretório real (por exemplo, /home/var/db/mysql ) no local esperado pelo software:

mount -t nullfs /home/var/db/mysql /var/db/mysql

Em /etc/fstab , você gostaria disso:

/home/var/db/mysql  /var/db/mysql  nullfs  rw   0    0

Note que para esta abordagem funcionar, você precisa de options NULLFS em seu kernel, ou você precisa ter o módulo de kernel nullfs disponível.

No que diz respeito ao sistema, ele pode acessar o conteúdo de /home/var/db/mysql a /var/db/mysql exatamente como normal. Essa abordagem também significa que utilitários como stat (1) e realpath (1) reportarão caminhos como estando sob /var , e não abaixo de /home/var .

    
por 16.03.2012 / 12:16