Discussion:
Datei mit Zufallsdaten erzeugen
(zu alt für eine Antwort)
Alexander Goetzenstein
2020-06-25 11:04:00 UTC
Permalink
Hallo,
ich möchte eine Datei erzeugen, die Zufallsdaten erhält und 1GByte groß
ist. Auf die Schnelle habe ich es mit
dd bs=4K count=13805116 if=/dev/random of=Testdatei.dat
versucht, aber das dauert gefühlte Ewigkeiten, ein Vielfaches des
Kopierens einer Datei derselben Größe. Außerdem ist mir nicht so recht
klar, wie sich die Größe ergibt -rechnerisch kommt das irgendwie nicht hin.

Wie geht das schneller und besser?
--
Gruß
Alex
Josef Moellers
2020-06-25 11:18:05 UTC
Permalink
Post by Alexander Goetzenstein
Hallo,
ich möchte eine Datei erzeugen, die Zufallsdaten erhält und 1GByte groß
ist. Auf die Schnelle habe ich es mit
dd bs=4K count=13805116 if=/dev/random of=Testdatei.dat
versucht, aber das dauert gefühlte Ewigkeiten, ein Vielfaches des
Kopierens einer Datei derselben Größe. Außerdem ist mir nicht so recht
klar, wie sich die Größe ergibt -rechnerisch kommt das irgendwie nicht hin.
Wie geht das schneller und besser?
Es hängt stark davon ab, was Du unter "Zufallszahlen" verstehst. Das
Problem bei "/dev/random" ist, daß der die Zufallszahlen basierend auf
diverse Hardware-Ereignisse erzeugt und wenn diese Ereignisse nicht in
der nötigen Häufigkeit auftreten, dauert's halt. Versuch's mal mit
/dev/urandom. Die Zufallszahlen sind nicht so zufällig, aber für viele
Tests auch brauchbar.

Josef
Ralph Aichinger
2020-06-25 11:18:38 UTC
Permalink
Post by Alexander Goetzenstein
ich möchte eine Datei erzeugen, die Zufallsdaten erhält und 1GByte groß
ist. Auf die Schnelle habe ich es mit
dd bs=4K count=13805116 if=/dev/random of=Testdatei.dat
versucht, aber das dauert gefühlte Ewigkeiten, ein Vielfaches des
Kopierens einer Datei derselben Größe. Außerdem ist mir nicht so recht
klar, wie sich die Größe ergibt -rechnerisch kommt das irgendwie nicht hin.
Wie geht das schneller und besser?
Wenn du /dev/urandom verwendest, dann geht es viel schneller.
/dev/random braucht Entropie.

Ich hab das mit der Größe nicht nachgerechnet, das sollte schon
funktionieren, wenn man nicht 1000er und 1024er-Einheiten verwechselt.

/ralph
--
-----------------------------------------------------------------------------
https://aisg.at
ausserirdische sind gesund
Alexander Goetzenstein
2020-06-25 11:39:18 UTC
Permalink
Hallo,
Post by Ralph Aichinger
Wenn du /dev/urandom verwendest, dann geht es viel schneller.
/dev/random braucht Entropie.
stimmt, das hatte ich irgendwie umgekehrt im Gedächtnis gehabt.
Post by Ralph Aichinger
Ich hab das mit der Größe nicht nachgerechnet, das sollte schon
funktionieren, wenn man nicht 1000er und 1024er-Einheiten verwechselt.
mit der Blockgröße 1K kommt es hin, aber bei 4K nicht.

Egal, jetzt habe ich's -Danke!
--
Gruß
Alex
Michael Bäuerle
2020-06-25 11:26:26 UTC
Permalink
Post by Alexander Goetzenstein
ich möchte eine Datei erzeugen, die Zufallsdaten erhält und 1GByte groß
ist. Auf die Schnelle habe ich es mit
| dd bs=4K count=13805116 if=/dev/random of=Testdatei.dat
versucht, aber das dauert gefühlte Ewigkeiten, ein Vielfaches des
Kopierens einer Datei derselben Größe. Außerdem ist mir nicht so recht
klar, wie sich die Größe ergibt -rechnerisch kommt das irgendwie nicht hin.
Wie geht das schneller und besser?
Versuche es mal damit:
|
| $ dd bs=1M count=1000 if=/dev/urandom of=Testdatei.dat

/dev/urandom blockiert nicht, wenn keine Zufallszahlen mehr verfügbar
sind.

Die Größe ist das Produkt aus bs und count.
Alexander Goetzenstein
2020-06-25 11:40:16 UTC
Permalink
Hallo,
Post by Michael Bäuerle
|
| $ dd bs=1M count=1000 if=/dev/urandom of=Testdatei.dat
/dev/urandom blockiert nicht, wenn keine Zufallszahlen mehr verfügbar
sind.
auch Dir: Danke.
--
Gruß
Alex
Michael Bäuerle
2020-06-25 11:45:54 UTC
Permalink
Post by Alexander Goetzenstein
Post by Michael Bäuerle
|
| $ dd bs=1M count=1000 if=/dev/urandom of=Testdatei.dat
/dev/urandom blockiert nicht, wenn keine Zufallszahlen mehr verfügbar
sind.
auch Dir: Danke.
Ich sehe gerade, dass "bs=1M" nicht POSIX-konform ist.
"bs=1000x1000" sollte konform sein.

Loading...