Linux: Große Dateien schnell erstellen -> truncate
Bisher habe ich für das erstellen von neuen (leeren) Dateien immer dd benutzt. Z.b. zum erstellen einer schnellen SWAPDATEI mit 5 GB ein:
# dd if=/dev/zero of=/tmp/SWAPDATEI_test bs=1024000000 count=5
Damit kann man gerade im SAP Zusammenhang herausfinden ob die Fehlermeldung in der Applikation etwas mit dem fehlenden Speicher zu tun hat. Falls SWAP das Problem ist kann man sich immernoch eine SWAP Partition sauber bauen.
Gerade bei großen Dateien in diesem Umfeld kann das aber eine Weile dauern. Hier hat mich ein Teilnehmer auf „truncate“ aufmerksam gemacht.
# truncate -s 100g /tmp/SWAPDATEI
Der Befehl truncate erstellt sofort eine Datei mit angegebener Größe, hier z.b. 100 GB. Sehr interessant.
Danke @Nicolai für den Tipp! 🙂
5 Comments
Das geht auch mit dd:
$ time dd if=/dev/zero of=/tmp/test bs=1M count=1 seek=1M
1+0 records in
1+0 records out
1048576 bytes (1.0 MB) copied, 0.00274922 s, 381 MB/s
real 0m0.005s
user 0m0.000s
sys 0m0.004s
$ ls -alh /tmp/test
-rw-r–r– 1 bene bene 1.1T Apr 15 16:44 /tmp/test
Danke dir Bene, kannte ich so noch nicht.
Autsch, ich weiß ja nicht so Recht. Aber bei soviel tollen Zertifizierung, so wenig wissen über Linux Grundlagen …
Bene hat dich ganz schön bloß gestellt und du merkst es nicht mal.
Ich gebe dir mal so unter RHCE Spezies einen Tipp, wie passt die 1.1 Terrabyte Datei von Bene ins /tmp Verzeichnis, welches unter Garantie nicht so viel Platz hat?
Ich erwarte nicht das du meinen Kommentar veröffentlichst, aber das du den Quatsch in deinem Beitrag korrigierst oder löschst. Sonst fallen noch ein paar „Senior“ DevOps Hipsterhelden darauf rein.
Ich bin gemein und ein Arsch, aber ich bin auch der Einäugige unter den Helden.
Ich habe mich bedankt, da ich ich die Option „seek“ bei dd so noch nicht kannte. Die Anzahl von diversen Zertifizierungen ist dabei aus meiner Sicht völlig irrelevant.
Sich dann als Troll zu outen ohne seinen richtigen Namen zu hinterlegen wenn man Mist von sich gibt ist dann wohl eher deine Spezialität.
Von RHCE Spezi zu RHCE Spezi, nur unter uns zwei: Gib mal Bene´s Befehl bei deinem Linux System (ohne 1 TB Platz in /tmp) ein. Einfach mal ausprobieren bevor man Quatsch unter Beiträge von anderen schreibt.
vorsicht, truncate erzeugt ein Sparse-File, welches keinen Plattenplatz belegt. Die Datei ist zwar 100G groß, aber mit df stellt man schnell fest daß der Plattenplatz nicht weniger wird.
Nutze # fallocate -l 100G filename stattdessen, und es wird auch Plattenplatz belegt.
Was ist ein Sparse-File: https://de.wikipedia.org/wiki/Sparse-Datei