Sponsored Content
Full Discussion: Smart Backup Script
Top Forums Shell Programming and Scripting Smart Backup Script Post 302467864 by agama on Sunday 31st of October 2010 07:32:51 PM
Old 10-31-2010
A couple of things come to mind looking at your examples.

First, the -S option sorts by size; you'll not be removing the oldest first, but the largest which is likely the most recent, and probably not what you want.

Secondly, I'd switch to the directory that has your backup files in it and use a dot (.) on the df command; this ensures that you are checking the correct device while still allowing it to be variable.

This is the way that I would go about it -- needs only one df and one ls call which will be more efficient:

Code:
#!/usr/bin/env ksh

backup_dir=${1:-foo}
if ! cd $backup_dir
then
        echo "cannot switch to backup directory: $backup_directory"
        exit 1
fi
(
        df -B 1 . | tail -1
        ls -rlt *.tgz
) | awk -v need_free=${2:-20} '
        BEGIN {
                need_free *= 1024 ** 3;         # assume 20 on cmd line for 20GiB
        }
        NR == 1 {                               # output from df; adjust need based on available
                need_free -= $4;
                next;
        }

        NF < 5 { next; }                # don't catch total from ls

        {
                if( need_free <= 0 )    # if desired free space reached
                        exit( 0 );
                print $NF;               # no, add this file to the list
                need_free -= $5;     # dec free space needed
        }
'| xargs rm

This is just a basic example. With anything that deletes files I always like to have a 'no-exec' mode that lists what it might do until I'm comfortable that it works right. In any case, you might want to add something that limits the max number of files that it can delete or somesuch that prevents deleting all of the backup files.

The -B option on the df command causes it to list values in bytes; makes it easier. The -rlt option to ls lists files by time, showing size and in reverse order so that the oldest file (by modification time) is listed first. Both the ls and df commands are executed in a subshell so that the output can easily be pushed into the awk that does the real work.

Hope this is useful
 

7 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

smart script?

First, I know that's a bad title. I couldn't think of anything short enough. ... I wrote the following script to let me know when various parts of the network are down. It used to look like this before last weekend when I got over 500 emails about 1 host being down all weekend: this is in the... (1 Reply)
Discussion started by: raidzero
1 Replies

2. UNIX for Dummies Questions & Answers

Explain the difference between the commands cd ~smart and cd ~/smart

Is it possible for both commands to work? (1 Reply)
Discussion started by: phunkypants
1 Replies

3. Shell Programming and Scripting

rsync backup mode(--backup) Are there any options to remove backup folders on successful deployment?

Hi Everyone, we are running rsync with --backup mode, Are there any rsync options to remove backup folders on successful deployment? Thanks in adv. (0 Replies)
Discussion started by: MVEERA
0 Replies

4. Shell Programming and Scripting

Need help in creating file restoration script from a backup script.

Hi all i am struggling in creating a restore of env files while doing applications clone. the first file i created for copying the important configurations file which is running perfect now for reverting the changes i mean when i am restoring these files to its original places i have to do... (7 Replies)
Discussion started by: javeedkaleem
7 Replies

5. Shell Programming and Scripting

Need smart script !

Hi, I need a script to assign variables the below paths /appl/user_projects/domains/<xxx>/servers/<yyy>/logs Where <xxx> can be any number and name of directories. <yyy> can be another set of any number of names and directories. I want to neglect all the <xxx> and <yyy>... (3 Replies)
Discussion started by: mohtashims
3 Replies

6. Shell Programming and Scripting

Help with Backup Shell Script for Network Device Configuration backup

HI all, im new to shell scripting. need your guidence for my script. i wrote one script and is attached here Im explaining the requirement of script. AIM: Shell script to run automatically as per scheduled and backup few network devices configurations. Script will contain a set of commands... (4 Replies)
Discussion started by: saichand1985
4 Replies

7. Shell Programming and Scripting

Shell script to call Oracle archive backup script when file system reaches threshold value

Hello All, I need immediate help in creating shell script to call archivebkup.ksh script when archive file system capacity reaches threshold value or 60% Need to identify the unique file system that reaches threshold value. ex: capacity ... (4 Replies)
Discussion started by: sasikanthdba
4 Replies
nisbackup(1M)						  System Administration Commands					     nisbackup(1M)

NAME
nisbackup - backup NIS+ directories SYNOPSIS
nisbackup [-v] backup-dir directory... nisbackup [-v] -a backup-dir DESCRIPTION
nisbackup backs up a NIS+ directory object on a NIS+ master server. Updates to the NIS+ database will be temporarily disabled while nis- backup is running. The backup-dir is a UNIX directory that must exist prior to running nisbackup. The nisbackup command can be used to backup an individual NIS+ directory object or all ( -a) of the NIS+ directory objects served by a master server. The NIS+ directory objects being backed up will be placed into subdirectories under the backup-dir directory. These subdirectories are named according to the NIS+ directory object they contain. nisbackup operates on individual NIS+ directory objects (for example, org_dir.wiz.com). This allows an administrator to selectively backup specific directories. The rpc.nisd(1M) process must be running on the master server with a stable NIS+ database for nisbackup to complete. nisbackup will not attempt to correct any corruption in the NIS+ database, so it is important that backups be done regularly as part of the NIS+ administra- tion. The first synopsis is used to backup a single NIS+ directory object or a list of NIS+ directory objects. The objects can be partially qual- ified or fully qualified. The machine on which the command is executing must be the master for the NIS+ directory objects specified. The second synopsis will backup all of the NIS+ directory objects that are served by this master. The -a option is the recommended method of backing up a master server, since it will backup all NIS+ directory objects that are served by this master. If this server is a master server for more than one domain, the backup will include NIS+ directories that belong to all of the domains served. Individual NIS+ direc- tory objects can be selected for restoring from a backup-dir created with the -a option. See nisrestore(1M). The -a option only includes directory objects for which this server is the master. It is possible, but not recommended, to configure a master server as a replica for other domains. The objects belonging to those replicated domains will not be backed up with the -a option. The backup of replicated objects must be run on the master server for those objects. Do not use the same backup-dir to backup different master servers. Each master server must have its own backup-dir. nisbackup will set the rpc.nisd(1M) to read only mode, which will disable updates to the NIS+ database. This is neccessary to ensure the consistency of the backup. For this reason, nisbackup should not be run while large numbers of updates are being applied to the NIS+ data- base. Update utilities such as nisaddent(1M) should not be run simultaneously with nisbackup. OPTIONS
-a Creates a backup of all NIS+ directory objects for which this server is a master. -v Verbose option. Additional output will be produced and sent to syslog(3C) upon execution of the command (see syslog.conf(4)). OPERANDS
backup-dir The directory into which the subdirectories containing the backed up objects are placed. This must be created prior to running nisbackup. directory The NIS+ directory object(s) being backed up. EXAMPLES
Example 1: Backup of the org_dir NIS+ directory object of the domain foo.com on a master server to a directory named /backup To backup the org_dir NIS+ directory object of the domain foo.com on a master server to a directory named /backup: master_server# nisbackup /backup org_dir.foo.com. Example 2: Backup of the entire NIS+ domain foo.com to a directory named /backup To backup the entire NIS+ domain foo.com to a directory named /backup: master_server# nisbackup /backup foo.com. org_dir.foo.com. groups_dir.foo.com. ctx_dir.foo.com. Example 3: Backup of an entire NIS+ database to a backup directory named /backup To backup an entire NIS+ database to a backup directory named /backup: master_server# nisbackup -a /backup EXIT STATUS
0 Successful completion. 1 An error occurred. FILES
/backup-dir/backup_list This ascii file contains a list of all the objects contained in this backup-dir directory. /backup-dir/directory-object A subdirectory that is created in the backup-dir that contains the NIS+ directory-object backup. /backup-dir/directory-object/data A subdirectory that contains the data files that are part of the NIS+ directory-object backup. /backup-dir/directory-object/last.upd This data file contains timestamp information about the directory-object. /backup-dir/directory-object/data.dict A NIS+ data dictionary for all of the objects contained in the NIS+ directory-object backup. ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Availability |SUNWnisu | +-----------------------------+-----------------------------+ SEE ALSO
nis+(1), nisdefaults(1), nisrm(1), nisrestore(1M), rpc.nisd(1M), syslog(3C), nisfiles(4), syslog.conf(4), attributes(5) NOTES
NIS+ might not be supported in future releases of the SolarisTM Operating Environment. Tools to aid the migration from NIS+ to LDAP are available in the Solaris 9 operating environment. For more information, visit http://www.sun.com/directory/nisplus/transition.html. SunOS 5.10 12 Dec 2001 nisbackup(1M)
All times are GMT -4. The time now is 03:54 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy