Annotation of wpscripts/wpbackup/dirops.pm, Revision 1.1
1.1 ! yason 1: #!/usr/bin/perl
! 2: #
! 3: # Contains directory operations (walkthrough etc.)
! 4: #
! 5:
! 6: package dirops;
! 7:
! 8: our $SPOOL = "/usr/backup/spool_zayavki";
! 9: our $IMAGE = "/usr/backup/images/zayavki";
! 10: our $SIZE_MIN = 4294967296; # 4.00 GB (stands for 4.00 * 1024 ^ 3)
! 11: our $SIZE_MAX = 4563402752; # 4.25 GB (stands for 4.25 * 1024 ^ 3)
! 12:
! 13: our @allfiles; # static array to keep files
! 14: our $offset = 0;
! 15: our $f_sizeof;
! 16: our $a_sizeof = 0;
! 17: our $a_count = 0;
! 18: our @a;
! 19:
! 20: sub
! 21: walkthrough()
! 22: {
! 23: # chdir($SPOOL);
! 24: my @dirents = `ls -m $SPOOL`;
! 25: my @str;
! 26:
! 27: for(my $i = 0; $i< scalar(@dirents); $i++)
! 28: {
! 29: chomp($dirents[$i]);
! 30:
! 31: @str = split(', ', $dirents[$i]);
! 32:
! 33: push @allfiles, @str;
! 34:
! 35: }
! 36:
! 37: }
! 38:
! 39:
! 40: sub
! 41: getnextblk()
! 42: {
! 43: $a_sizeof = 0;
! 44: @a = ();
! 45:
! 46: return( () ) if($offset == scalar(@allfiles));
! 47:
! 48: for(my $i = $offset; $i < scalar(@allfiles); $i++ )
! 49: {
! 50: $f_sizeof = -s "$SPOOL/$allfiles[$i]";
! 51: # check sizes
! 52: if( $f_sizeof <= $SIZE_MAX - $a_sizeof)
! 53: {
! 54: $a_sizeof += $f_sizeof;
! 55: $a_count++;
! 56:
! 57: push @a, "$SPOOL/$allfiles[$i]";
! 58: }
! 59: else
! 60: {
! 61: # $SIZE_MAX exceeded
! 62: #
! 63: # really don't assume BIG files
! 64: #
! 65: $offset = $i;
! 66:
! 67: return(@a);
! 68: }
! 69: }
! 70:
! 71: if($a_sizeof < $SIZE_MIN )
! 72: {
! 73: return( ( ) );
! 74: #NOTREACHED
! 75: }
! 76:
! 77: return(@a);
! 78: }
! 79:
! 80:
! 81: return(1);
CVSweb