backupswitches.in 1.05 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
#!/usr/bin/perl
#
# EMULAB-COPYRIGHT
# Copyright (c) 2005 University of Utah and the Flux Group.
# All rights reserved.
#

my $BACKUPDIR = '@prefix@/backup/switch-config';
my $TMPFILE = "/tftpboot/switch-backup";
my $GRAB = "@prefix@/sbin/grabswitchconfig";

use lib '@prefix@/lib';
use libdb;

use strict;
use English;

sub usage() {
    print "Usage: backupswitches <switches...>\n";
    exit 1;
}

if ($UID && !TBAdmin($UID)) {
    die "*** $0:\n" .
        "    Sorry, only admins get to run this script\n";
}

if (!@ARGV) {
    usage();
}

#
# Get today's date, nicely formatted
#
my ($junk,$junk,$junk,$mday,$mon,$year,$junk,$junk,$junk) = localtime(time);
$year += 1900;
$mon = sprintf("%02d",$mon + 1);
$mday = sprintf("%02d",$mday);
my $datestr = "$year-$mon-$mday";

#
# Back up each switch in turn
#
foreach my $switch (@ARGV) {
    system "$GRAB $switch $TMPFILE"
        and die "Unable to grab config for $switch\n";
    system "mv $TMPFILE $BACKUPDIR/$switch-$datestr\n"
        and die "Unable to move config file to $BACKUPDIR/$switch-$datestr\n";
}

exit 0;