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]

Reply via email to