Hello all,
I am trying to take a file of variable length on a daily basis and
divide it up into 4 equal parts for processing on each file. Does
someone have an easy way to do this?
The original file is just a series of numbers like..
3233404936
3233404934
3233669122
3233557761
3233818369
3234343425
3233431553
3233455617
3233404932
3233435393
3233562369
3233554689
....
I've tried everything I know. Granted, that isn't very much. :-)
Here is what I'm doing so far..
Thanks,
Johnny Hall
#!/bin/perl -w
# Script for cloning Unix hosts weekly.
# This is ran from cron on Saturdays at 9am
# This will get Full savesets for all servers in the /root/backups/ux_serverlist file
$SSID_LIST = "/tmp/ux_clonelist";
@CLONE_LIST = `cat /root/backups/ux_serverlist`;
system "rm $SSID_LIST";
foreach $CLONE_HOST (@CLONE_LIST)
{
chomp $CLONE_HOST;
system "/usr/sbin/mminfo -q level=full,client=$CLONE_HOST -r 'ssid' -t 'one week ago' >> $SSID_LIST";
}
# Attempt to break the /tmp/ux_clonelist file into equal parts for multiple cloning streams
$NUM_SSID = `cat '$SSID_LIST' | wc -l`;
chomp $NUM_SSID;
$NUM_CON_JOBS = 4;
$SSID_PER_FILE = int(($NUM_SSID / $NUM_CON_JOBS) + 1);
chomp $SSID_PER_FILE;
$FILE_COUNT = 1;
$CLONE_FILE_LIST = "$SSID_LIST.$FILE_COUNT";
@SSID_LIST_ARRAY = `cat $SSID_LIST`;
system "rm $CLONE_FILE_LIST";
$SSID_COUNT = 0;
$FILE_COUNT = 0;
chomp $SSID_COUNT;
open(FILE, ">>$CLONE_FILE_LIST");
while ($SSID_COUNT <= $SSID_PER_FILE)
{
foreach $SSID (@SSID_LIST_ARRAY)
{
while ($SSID_COUNT <= $SSID_PER_FILE)
{
open(FILE, ">>$CLONE_FILE_LIST");
chomp $SSID;
print FILE "$SSID \n";
$SSID_COUNT = ($SSID_COUNT + 1);
close FILE;
}
}
$FILE_COUNT = ($FILE_COUNT + 1);
$CLONE_FILE_LIST = "$SSID_LIST.$FILE_COUNT";
}
# Now start cloning from the 4 files
#system "nsrclone -v -s catlmsxi02 -b 'UX Clone' -S -f $CLONELIST";
#system "rm $CLONELIST";
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]