Loop questions


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Loop questions
# 1  
Old 02-07-2013
Loop questions

hi all,
i'm trying to create a script inorder to put load test on hard drives.
first i create 30GB file
Code:
dd if=/dev/zero of=50gb.img bs=5gb count=10

then i'd like to create 100 loops continuous until it fills up.
once its done delete file.

this is where i'm stuck for for loops.
can anyone pls. point me easy way for this....
sorry i'm not good at script...

thanks

Last edited by radoulov; 02-07-2013 at 05:12 PM..
# 2  
Old 02-07-2013
I don't think you want to use a 5 gigabyte block size! That may require dd to allocate 5 gigabytes of memory Smilie

I'd also worry about the system not being able to delete the file once the disk is full. Filling up a disk, especially / , can have bad side-effects.

Third, disk caching will mess up your plan by storing most of your writes in memory until it decides it really needs to get rid of them. If you just want to act like a big application this may be realistic, but if you just want to force the disk to be used all the time this may not be ideal.

Code:
#!/bin/sh

# We use a trick to guarantee the file is deleted when this program
# ends.  We open the file, then delete it while still open.
# It will take up space but not show in ls, and be automatically
# removed when closed -- i.e. when this script quits, or
# even if killed by ctrl-C.

exec 5>/path/to/hugefile # Open the file
rm /path/to/hugefile # Delete the file -- but keep it open

# Loop until dd returns error, i.e. can't write
while dd if=/dev/zero bs=1M count=1024 >&5 # Write another gig to hugefile
do
        true
done

This User Gave Thanks to Corona688 For This Post:
# 3  
Old 02-07-2013
This should work in most shells (not csh):

Code:
i=1
while [ $i -lt 100 ]
do
    dd if=/dev/zero of=50gb_$i.img bs=5gb count=10
    let i=i+1
done

Edit: Nice solution Corona688, and I agree filling the root filesystem is not advised.
Perhaps sync could be placed in the loop instead of true to get the disk cache flushed.
This User Gave Thanks to Chubler_XL For This Post:
# 4  
Old 02-07-2013
thank you both.
but in regard to Corona688 respond,
previously i used to copy all the contents from my server..like i've data folder copied over to test machine and make it like 50Gb of file named vol.
then loop those vol file as vol1 vol2 vol3.....vol100 making size upto 5TB just to fill the hard drive.
then it will erase after it finish 100 loop.
same time it was showing the $date & size of the folder just for comparison.
in that case can i use dd to create file instead of copying from the network which causes network lag if i run few machines?
# 5  
Old 02-07-2013
/dev/random might provide better testing data than /dev/zero
# 6  
Old 02-07-2013
Quote:
Originally Posted by Chubler_XL
/dev/random might provide better testing data than /dev/zero
Thanks Chubler,
isn't your code keep creating files using dd.
actually, i'd like to create at fist just to get 5GB of file.
then loop it creating filename like file1 file2....file100 of each file of 5GB.
after that either it can be deleted or leave as is.
same time i'd like to hv $date and $size of the file in the output while looping.
sorry if i make any confusion.
thanks
# 7  
Old 02-07-2013
Try this,

Code:
i=1
DT=`date +%Y%m%d`
while [ $i -lt 100 ]
do
    dd if=/dev/random of=5gb_${DT}_$i.img bs=128M count=40
    let i=i+1
done

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

For loop or while loop from a text file

Hi all, i developed a script to measure the uptime of a process in a Solaris 10/11 environments. All is well, but i came across a situation where there are multiple processes of the same name. Basically i have the following result file: beVWARS 13357 19592122 beVWARS 14329 19591910... (4 Replies)
Discussion started by: nms
4 Replies

2. Shell Programming and Scripting

awk loop using array:wish to store array values from loop for use outside loop

Here's my code: awk -F '' 'NR==FNR { if (/time/ && $5>10) A=$2" "$3":"$4":"($5-01) else if (/time/ && $5<01) A=$2" "$3":"$4-01":"(59-$5) else if (/time/ && $5<=10) A=$2" "$3":"$4":0"($5-01) else if (/close/) { B=0 n1=n2; ... (2 Replies)
Discussion started by: klane
2 Replies

3. Shell Programming and Scripting

Reset while loop to loop same file multiple times

Hi, I want to read file multiple times. Right now i am using while loop but that is not working. ex. While read line do while read line2 do echo stmt1 #processing some data based on data., done < file2.txt done < file1.txt # This will have 10... (4 Replies)
Discussion started by: tmalik79
4 Replies

4. Shell Programming and Scripting

Array Variable being Assigned Values in Loop, But Gone when Loop Completes???

Hello All, Maybe I'm Missing something here but I have NOOO idea what the heck is going on with this....? I have a Variable that contains a PATTERN of what I'm considering "Illegal Characters". So what I'm doing is looping through a string containing some of these "Illegal Characters". Now... (5 Replies)
Discussion started by: mrm5102
5 Replies

5. Homework & Coursework Questions

Print questions from a questions folder in a sequential order

1.) I am to write scripts that will be phasetest folder in the home directory. 2.) The folder should have a set-up,phase and display files I have written a small script which i used to check for the existing users and their password. What I need help with: I have a set of questions in a... (19 Replies)
Discussion started by: moraks007
19 Replies

6. Shell Programming and Scripting

BASH loop inside a loop question

Hi all Sorry for the basic question, but i am writing a shell script to get around a slightly flaky binary that ships with one of our servers. This particular utility randomly generates the correct information and could work first time or may work on the 12th or 100th attempt etc !.... (4 Replies)
Discussion started by: rethink
4 Replies

7. Shell Programming and Scripting

Null Handling in Until loop. . .loop won't stop

Hi Im running this script, which is supposed to find the max value build some tables and then stop running once all the tables are built. Thing is , it keeps assigning a null value to $h and then $g is null so it keep building tables i.e. testupdateNUL. How can I stop this? Here is what I have: ... (4 Replies)
Discussion started by: brandono66
4 Replies

8. Shell Programming and Scripting

Using variables created sequentially in a loop while still inside of the loop [bash]

I'm trying to understand if it's possible to create a set of variables that are numbered based on another variable (using eval) in a loop, and then call on it before the loop ends. As an example I've written a script called question (The fist command is to show what is the contents of the... (2 Replies)
Discussion started by: DeCoTwc
2 Replies

9. Shell Programming and Scripting

Is there a better way I could have run this loop. (For loop with two variables)

Sorry for such a dreadful title, but I'm not sure how to be more descriptive. I'm hoping some of the more gurutastic out there can take a look at a solution I came up with to a problem, and advice if there are better ways to have gone about it. To make a long story short around 20K pieces of... (2 Replies)
Discussion started by: DeCoTwc
2 Replies

10. Shell Programming and Scripting

how to get the similar function in while loop or for loop

Dear all How to write the shell script for the following statement: (C programming) for (i=0;i<30;i++) { if i=1 continue *skip this number (To do function here....) ... } similar statement in while loop.... I wrote the script in sh... (3 Replies)
Discussion started by: trynew
3 Replies
Login or Register to Ask a Question