I want to write an UNIX script to do the following task:
We have 6 directories, called (SMS_01, SMS_02 ....... SMS_06), some files are distributed across these directories, but the distribution process is not good, I mean when I check these directories I found the following result:
All what I want is the distribution process done equally across these 6 directories, so each one receive 100 files for example.
Waiting your ideas.
Many thanks
Last edited by Scrutinizer; 09-10-2013 at 02:24 AM..
Reason: code tags
What is the source of the files? If you control that you could maintain a counter within it and send the next file to printf "SMS_0%d", (file_count % 6) + 1
otherwise you'd have to "post process" by, for example, running find to geta count of files only within the directory structure and then running find and sending the first 1/6th of files to sms_01 etc...
but we're unlikely to finish work you haven't started (or indeed fully specified)
Hello Skrynesaver
Thanks for your suggestions.
I started many times and write some lines but I can't get the idea, I don't know how to distribute the files equally.
Anyway, the files generated from other servers, these files are transferring automatically through ftp to the these directories.
I have an idea but I can't translate it into shell script, the idea is: after receiving the files, suppose directory number 1 received 210 files, and directory number 2 didn't receive any thing, and directory number 3 received 117 files, and directory # 5 received 80 files, and directory # 6 didn't receive.
So, at this point, how can I redistribute the whole files equally, so every directory has the some number of files?!
I created 6 directories (MMU_01, MMU_02 .... MMU_06) and I distributed 24 files between them (not equally) then I applied this script (after changing the name of directories from SMS_* into MMU_*)
But nothing moved between directories, i.e. the empty directories still empty, and the directory which have 11 files still have the same number.
I think there is something missing in the script.
Please check the out put with me as the following:
Here is the 6 directories + the script file:
After applying the script, this result appearing:
Then I checked the first directory to make sure, but it still have 11 files!
Please help me, I'm sure something is missing, or something need to be corrected.
---------- Post updated at 02:22 AM ---------- Previous update was at 02:20 AM ----------
Quote:
Originally Posted by MadeInGermany
A good start, but IMHO not correct. One must consider source directories above average and target directories below average...
Yes it is good script, I learned some concepts from Mr. krishmaths.
I appreciate your notes, kindly refer to the previous reply to see the result, and apply your notes into script to fix the problems, because it needs some correction.
Hi,
I've come accross a situation where I need to exit from current shell script at the same time I need to start/activate another shell script.
How can I do that in KSH ?? Need help !!
For example, my script is as below
#!/bin/ksh
paramFile="/home/someXfile.lst"
] && <<Here I... (1 Reply)
first of all I thought the argument DONE is necessary for all scripts that have or begin with do statements which I have on my script, However, I still don't completely understand why I am receiving an error I tried adding another done argument statement but didn't do any good.
I appreciate... (3 Replies)
All
i am new to linux, and try to have a simple expect script to ssh then telnet to the network equipment, and exit itself. but dont know why i hang at the last $
#!/usr/bin/expect
set timeout 10
set arg
set arg1
spawn ssh -l UserA 1.1.1.1
expect "assword:";
send "PasSwOrD\r";... (1 Reply)
Hi All,
Can anyone help me to finish the scripts. this scripts is
this scripts will run on crontab in every 4 minutes to get the newest router interface status.
I would like to add a function to count the router interface flapping, if more than 2 times in 20 minutes (scripts run 5 times)... (1 Reply)
Hello,
I'm doing a script where I'm traveling a file, and moves down line by line, and is copied to another file, up to the line 100, then the smaller file passes to another format ... but the problem I have is that if there are 357 lines for example, file 1 2 i 3, converted correctly but the 4... (1 Reply)
I am trying to add a finish script that can copy hosts, static routes and a few other files into relevant directories on a client system. These files would be mounted as nfs resource on the client as hosts.hostname, static_route.hostname etc. Script will compare the hostname of the client and copy... (0 Replies)
Hi there,
I wanted to write a finish script for my jumpstart server which creates a ntp.conf file and enables ntp on the client machines during installation. Is that possible?
Thanks for the help :)
P.S. I'm a real Solaris noob, so do excuse me if I sound like an idiot..lol (1 Reply)
Hi,
I have strange problem executing some command on solaris 5.9
ps command does not finish(hangs) and runs forever without any result.
same with cc command too.Please suggest (1 Reply)
i tried to build a command to replaces the word "include" with
"exclude"
in each *.h type of file in a certain directory
and to display the lines in which the switch happened.
i did a command and i dont know why its not working
find /usr -name "*.h" -exec sed 's/include/exclude/g' {} \;... (2 Replies)
Hi,
I want to know is there a way out wherein we can know that the C++ executable has finished its task.
Following is the steps:
1.Shell script calls a executable after setting all the env variables.
2.Now after the executable has done its job(basically to create some outpur files).The... (2 Replies)