backupcfg.pl 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #!/usr/bin/perl
  2. #
  3. # Copyright (C) Roman Dmitriev, rnd@rajven.ru
  4. #
  5. use utf8;
  6. use warnings;
  7. use Encode;
  8. use open qw(:std :encoding(UTF-8));
  9. no warnings 'utf8';
  10. use English;
  11. use base;
  12. use FindBin '$Bin';
  13. use lib "/opt/Eye/scripts";
  14. use strict;
  15. use Time::Local;
  16. use FileHandle;
  17. use Data::Dumper;
  18. use eyelib::config;
  19. use eyelib::main;
  20. use eyelib::logconfig;
  21. use eyelib::database;
  22. use eyelib::common;
  23. use eyelib::net_utils;
  24. use eyelib::cmd;
  25. use Fcntl qw(:flock);
  26. open(SELF,"<",$0) or die "Cannot open $0 - $!";
  27. flock(SELF, LOCK_EX|LOCK_NB) or exit 1;
  28. $|=1;
  29. my $debug = 1;
  30. if ($ARGV[0]) {
  31. my $device=get_record_sql($dbh,'SELECT * FROM devices WHERE id=?',$ARGV[0]);
  32. $device = netdev_set_auth($device);
  33. print "Backup switch $device->{device_name} ip: $device->{ip} ...";
  34. netdev_backup($device,$tftp_server);
  35. print " end.\n";
  36. } else {
  37. my @devices=get_records_sql($dbh,'SELECT * FROM devices WHERE deleted=0 and (vendor_id=3 or vendor_id=8 or vendor_id=9)');
  38. foreach my $device (@devices) {
  39. $device = netdev_set_auth($device);
  40. print "Backup switch $device->{device_name} ip: $device->{ip} ...";
  41. netdev_backup($device,$tftp_server);
  42. print " end.\n";
  43. }
  44. }
  45. exit 0;