Sponsored Content
Top Forums UNIX for Dummies Questions & Answers Generation file copying for tech support backup Post 302180634 by sjohnson on Monday 31st of March 2008 04:37:16 PM
Old 03-31-2008
Tools Final code?

I just found the "defined" operator? as well? Smilie

Now I'm just wondering if using "warn" is the best way to display the output to the command line? Some people here will want to see it and others won't.

I know that there is some way of re-directing the "warn"/"die" to an error log in unix, but I can't remember the syntax for it.

As per the forums rules: Smilie
Here's the code that I finished with; we'll be adding other functionality at a later time, but here it is as it stands:

Code:
#!/usr/bin/perl

use strict;
use warnings;

# Get The Argument List
  my ($argFileName, $argMaxCount) = @ARGV;

# End Run If We Don't Have At Least 2 Arguments
  die " - Usage : $0 <FileName> <ArchiveCount>\n" if $#ARGV < 1;

# Check For Valid Arguments
  die " - $0: FileName:  $argFileName does NOT exist\n" unless ( -e $argFileName );
  die " - $0: ArchiveCount:  $argMaxCount is less than 1\n" if ( $argMaxCount < 1 );

# Split Filename From Extention
  my ($base, $ext) = split (/\./, $argFileName);

# Check For File Extension And Add "."
  $ext = ( ( defined $ext ) ? ( "." . $ext ) : "" );

# Rename The Files
  &myRename;

# Rename The Subfile Dictionaries As Well 
  if ( $ext eq ".sf" ) {
    warn "\n - Processing Subfile Dictionaries:\n\n";
    $ext = ".sfd";
    &myRename;
  }

# End Processing
exit;

sub myRename
{
  # Get File List In Reverse Order

  for my $curFile ( reverse <$base*$ext> ) {
  # Skip Non-Matching Extentions
    my ($curBase, $curExt) = split (/\./, $curFile);
    $curExt = ( ( defined $curExt ) ? ( "." . $curExt ) : "" );
    next unless $ext eq $curExt;

  # Skip Non-Version File Names
    next unless ( $curFile =~ /$base\_([0-9]{4})$ext/ );

  # Save This Version Number
    my $fileVersionNum = $1;  # Grab Number We Just Matched Into $fileVersionNum

  # Purge All Matching File Versions >= The Max Counter
    if ( $fileVersionNum >= $argMaxCount ) {
      warn " - Removing - $curFile\n";
      unlink $curFile or warn " - $0: Could not remove $curFile: $!\n";
      next;
    };
    # else
    my $newFile = ( sprintf "%s_%04i%s", $base, $fileVersionNum+1, $ext );
    warn " - Renaming - $curFile -> $newFile\n";
    rename $curFile, $newFile or warn " - $0: Could not rename $curFile to $newFile: $!\n";
  };

  my $oldFile = ( sprintf "%s%s", $base, $ext );
  my $newFile = ( sprintf "%s_%04i%s", $base, 1, $ext );
  warn " - Renaming - $oldFile      -> $newFile\n";
  rename ( $oldFile, $newFile ) or warn " - $0: Could not rename $oldFile to $newFile: $!\n";
};

 

8 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Check backup file size on backup tape

Hi, I performed backup on tape and I want to append more files to my previous backup on the same backup tape. But before I do that I need to know the backup file size of the first backup I performed so that I know the available size on the backup tape. Can someone help me what command I will use... (0 Replies)
Discussion started by: ayhanne
0 Replies

2. Shell Programming and Scripting

Backup script: Copying and removing directories based on list

I am writing a simple backup script, but I cannot figure out how to remove directories that are found in a list. For example: DONT_COPY=" .adobe/ .bin/google-earth " tar -zcvf - * --exclude=$DONT_COPY | openssl des3 -salt -k $1 | dd of=$(hostname)-$(date +%Y%m%d).tbz > COPIED Note that... (4 Replies)
Discussion started by: dotancohen
4 Replies

3. Shell Programming and Scripting

File Report Generation

hi all i need to generate a report file that contains the following details of files present in a directory. 1. File name 2.Complete path for each files and directory 3.File size 4.Days older example i have a directory testing that contains sub-directories and some files. i need to make a... (5 Replies)
Discussion started by: yashwantkumar
5 Replies

4. Shell Programming and Scripting

generation of control file

Hi, I wanted to create a control file with data in it. Also wanted to append more points like 1)Row count, then print the first field 2)first line of the file 3)last line of the file I started with this:- ls -ltr *.*| awk ' { print $9 "|" $7 $6 $8 "|" $5 } ' sed -n '1p'; sed -n '$p'; ... (2 Replies)
Discussion started by: alokbaba
2 Replies

5. Shell Programming and Scripting

Help with file generation

Dear all Hope you are doing good. I've requirement where in I need to generate a file containing set of SQLs as per the inputs. My script flow is like reading few parameters using read command to read input to script and process the inputs. However at one of the input, my script has to... (3 Replies)
Discussion started by: tenderfoot
3 Replies

6. UNIX for Dummies Questions & Answers

Core File Generation

Hi I am using Linux and I am using Java as well as C++ services running on it. The ulimit -c is set to around 400Mb. Whenever any of the service fails they produce a core file.(Actual size of core could be greater than 400Mb). Whenever my Java service fails I get a core file of size 400Mb... (3 Replies)
Discussion started by: Raj999
3 Replies

7. What is on Your Mind?

Your Favorite Tech Support Web Sites and Why?

Where do you go to participate in technical discussions besides UNIX.COM and why? Personally, I do not really participate in other forums and discussion boards, but I do ask questions from time to time on Stack sites. The problem I have with Stack is that my questions are never answered on any... (30 Replies)
Discussion started by: Neo
30 Replies

8. Shell Programming and Scripting

Xls file generation

Hi Team, Is it possible to generate the xls OR xlsx file factility in Unix and xls file should be more than one sheet. (2 Replies)
Discussion started by: bmk123
2 Replies
BACKUP_QUIT(8)						       AFS Command Reference						    BACKUP_QUIT(8)

NAME
backup_quit - Leaves interactive mode SYNOPSIS
quit [-help] q [-h] DESCRIPTION
The backup quit command exits interactive mode, returning the issuer to the regular shell prompt at which the backup or backup interactive command was issued to enter interactive mode. The command has no effect when issued outside interactive mode. Issuing the Ctrl-D command also exits interactive mode. CAUTIONS
To exit interactive mode, all jobs must be completed. Use the backup jobs command to list any jobs currently pending or executing, and the backup kill command to terminate them as necessary. OPTIONS
-help Prints the online help for this command. All other valid options are ignored. EXAMPLES
The following command exits interactive mode: backup> quit % PRIVILEGE REQUIRED
None SEE ALSO
backup(8), backup_interactive(8), backup_jobs(8), backup_kill(8) COPYRIGHT
IBM Corporation 2000. <http://www.ibm.com/> All Rights Reserved. This documentation is covered by the IBM Public License Version 1.0. It was converted from HTML to POD by software written by Chas Williams and Russ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell. OpenAFS 2012-03-26 BACKUP_QUIT(8)
All times are GMT -4. The time now is 05:59 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy