เนื่องจากต้องการสร้าง file ขนาดใหญ่ file หนึ่ง ขนาดหลายๆ กิ๊กไบท์ ทำไงดี ใน Linux ปกติจะสร้าง file ใหญ่มาเพื่อเทสระบบ Alarm ของระบบโดยการสร้างให้มีขนาดใหญ่กว่า 80% ของเนื้อที่ ดังนั้นเรามาลองทำตามนี้กัน

Ubuntu,Redhat,CenOS หรือ OS linux 
สร้าง file ขนาด 10Gb
xfs_mkfile 10240m 10Gigfile
สร้าง file ขนาด 100Mb
fallocate -l 100M file.out

OS X, Solaris, SunOS
mkfile 10240m 10Gigfile
mkfile จะเหมือนกับ dd นะครับ

HP-UX
prealloc 10Gigfile 10737418240

วิธีที่ง่ายใช้ได้ทั้งหมด
สร้าง file random.img ขนาด 10Mb
dd if=/dev/zero of=random.img count=1024 bs=10M

bs=block size
count=จำนวนรอบ
if=input interface
of=output interface

วิธีทำนะครับ เอาวิธีง่ายนะครับผมจะลอง file ขนาด 50M โดยมี block size ขนาด 10Mx5
# dd if=/dev/zero of=random.img count=5 bs=10M
5+0 records in
5+0 records out
52428800 bytes (52 MB, 50 MiB) copied, 0.791211 s, 66.3 MB/s

ผมว่าการสร้าง file ใหญ่ไม่ไดมีเฉพาะ unix shell script นะครับ แต่ยังสามารถใช้ perl,ruby หรือ คำสั้งอื่นได้อีก ขอยกตัวอย่างเล็กน้อยนะครับ เพื่อความเข้าใจ

ภาษา Perl
#perl -e 'print "Test Big file" x 10000 for 1..100000 ;' > big.txt

python
#python -c 'import sys; a1="abcdefghijklmnopqrstuvwxyz" ; a2=a1[::-1] ; a=a1+a2[1:] ; size=100000 ; for i in range(1,size,len(a)): sys.stdout.write(a)' # > myfile.dat

มีอะไรเกี่ยวกับ unix,Linux,HP-UX , Solaris, AIX  สอบถามได้นะครับ

 

Facebook Comments