Encher rapidamente o espaço do disco rígido Linux sem raiz [fechado]

4

então eu e meu amigo estamos fazendo um concurso. Ele diz que tem uma maneira de preencher um monte de espaço em disco rígido em um servidor Linux sem ser root. Obviamente, se você é root, você pode usar DD para fazer isso, mas o nosso concurso é sem raiz. Alguma boa maneira de fazer isso?

    
por user1947236 07.04.2013 / 06:28

5 respostas

10

Como usuário normal, execute:

dd if=/dev/zero of=~/foo bs=1M

Isso cria um arquivo vazio (mas ainda demorado) em ~ / foo. No meu computador, ele inchou o arquivo a uma taxa de 39,9 MB / s (meu processador é um Pentium 4 de 3,0 GHz de 64 bits), embora eu imagine que você possa abrir vários terminais e fazer com que todos sejam executados ao mesmo tempo ...

Se for apenas linha de comando, e você só pode ter um terminal aberto ao mesmo tempo, faça isso:

dd if=/dev/zero of=~/foo0 & dd if=/dev/zero of=~/foo1 & dd if=/dev/zero of=~/foo2 & dd if=/dev/zero of=~/foo3

.. que deve encher esse disco rígido em um flash.

    
por 07.04.2013 / 06:58
5

Você não precisa do root para executar o dd.

Você pode fazer isso de várias maneiras. Usar /dev/zero como uma fonte infinita de zeros é algo que parece ocorrer para todos nós, permitindo coisas como:

  • cat /dev/zero > ~/my_huge_partition_filling_file .
  • cp /dev/zero ~/my_huge_partition_filling_file .
  • Ou desnecessariamente complexo usando o dd como usuário:
    dd if=/dev/zero of=~/my_huge_partition_filling_file bs=512K . (A parte ize b lock s é opcional, mas configurá-la para um valor maior que 512 bytes pode acelerar as coisas e reduzir a sobrecarga).
  • Ou você pode criar seu próprio arquivo. Pegue qualquer arquivo, concatene-o consigo mesmo para criar um segundo arquivo com o dobro do tamanho e repita isso. Isto é o que a resposta de Terdon faz.
  • Ou você pode escrever um programa para escrever infinitamente em um arquivo. Isso provavelmente é desnecessariamente complexo e as ferramentas padrão são geralmente mais rápidas. Além disso, parece "un-unix-like").

Você também pode falsificar um arquivo enorme criando um arquivo esparso . dd if=/dev/zero of=~/my_seemingly_huge_file skip=99999G criará instantaneamente um arquivo muito pequeno, que parecerá ser 99999 GB. Se você quiser, pode ler 99999 GB a partir dele. No entanto, na prática, quase não consome espaço.

Compare-o com um livro com páginas removíveis. Normalmente você tem página 1,2,3,4,5,6 .... (fim do livro). Com o skip você tem a página 1,2,3, 99999. (páginas 4,5,6, ... etc serão inseridas quando escritas, mas até lá o livro será muito fino).

Por fim, antes de tentar qualquer uma destas opções: Verifique onde você está escrevendo.

Se estiver em /home (por exemplo, em /home/myusername ) e /home estiver montado em sua própria partição, tudo o que você pode fazer é preencher o espaço para os homedirs. Se alguém fez algo bobo como colocar / home no sistema de arquivos raiz, você pode preenchê-lo para 95%. A maioria dos administradores não não gostará disso.

(95%, ou 92,2%, porque as configurações padrão na maioria dos sistemas de arquivos parecem reservar 5% para o root. Isso significa que ele pode ser preenchido para 105% e, como usuário, ele usaria (100/105)% ou 95,2%)

    
por 07.04.2013 / 11:12
3

Você pode ocupar todo o espaço em um disco rígido fazendo algo tão simples quanto

echo foo > f1.txt; 
while true; do 
    cat f1.txt >> f2.txt && 
    cat f2.txt >> f1.txt; 
done

Os arquivos vão crescer exponencialmente e ocuparão todo o espaço disponível se você deixar o loop rodar por um tempo.

A solução dd é muito mais eficiente, apenas salientando que você certamente não precisa de acesso root.

    
por 07.04.2013 / 07:33
2

Você pode preencher um disco pelo comando "yes":

yes garrbage > ~/junk

Para evitar, é melhor definir a cota para usuários ou usar ulimit -f para evitar a criação de arquivos grandes.

Veja a man page of quota para mais informações.

    
por 07.04.2013 / 11:36
1

Primeiro: você não precisa ser root para usar o dd ou outras ferramentas para criar arquivos grandes ou muitos.

Mas segundo: Você não pode preencher o disco se estiver formatado com opções padrão, porque os sistemas de arquivos linux mais usados mantêm 5% do espaço em disco reservado para o root, então nenhum usuário burro pode encher o disco e travar o sistema, porque realmente processos importantes não podem escrever seus arquivos (pense em sshd, syslogd, etc.)

    
por 07.04.2013 / 14:09

Tags