backupcfg.pl 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. #!/usr/bin/perl
  2. #
  3. # Copyright (C) Roman Dmitiriev, rnd@rajven.ru
  4. #
  5. use FindBin '$Bin';
  6. use lib "$Bin";
  7. use strict;
  8. use Time::Local;
  9. use FileHandle;
  10. use Data::Dumper;
  11. use Rstat::config;
  12. use Rstat::main;
  13. use Rstat::mysql;
  14. use Rstat::net_utils;
  15. use Rstat::cmd;
  16. use Fcntl qw(:flock);
  17. open(SELF,"<",$0) or die "Cannot open $0 - $!";
  18. flock(SELF, LOCK_EX|LOCK_NB) or exit 1;
  19. $|=1;
  20. my $debug = 1;
  21. if ($ARGV[0]) {
  22. my $device=get_record_sql($dbh,'SELECT * FROM devices WHERE id='.$ARGV[0]);
  23. print "Backup switch $device->{device_name} ip: $device->{ip} ...";
  24. #router
  25. if ($device->{device_type} eq '2') {
  26. #mikrotik
  27. if ($device->{vendor_id} eq '9') { $device->{port}='60023'; }
  28. $device->{login}=$router_login;
  29. $device->{password}=$router_password;
  30. }
  31. #switch
  32. if ($device->{device_type} eq '1') {
  33. #mikrotik
  34. if ($device->{vendor_id} eq '9') { $device->{port}='60023'; }
  35. $device->{login}='admin';
  36. $device->{password}=$sw_password;
  37. }
  38. netdev_backup($device,$tftp_server);
  39. print " end.\n";
  40. } else {
  41. my @devices=get_records_sql($dbh,'SELECT * FROM devices WHERE deleted=0 and (vendor_id=3 or vendor_id=8 or vendor_id=9)');
  42. foreach my $device (@devices) {
  43. print "Backup switch $device->{device_name} ip: $device->{ip} ...";
  44. #router
  45. if ($device->{device_type} eq '2') {
  46. #mikrotik
  47. if ($device->{vendor_id} eq '9') { $device->{port}='60023'; }
  48. $device->{login}=$router_login;
  49. $device->{password}=$router_password;
  50. }
  51. #switch
  52. if ($device->{device_type} eq '1') {
  53. #mikrotik
  54. if ($device->{vendor_id} eq '9') { $device->{port}='60023'; }
  55. $device->{login}='admin';
  56. $device->{password}=$sw_password;
  57. }
  58. netdev_backup($device,$tftp_server);
  59. print " end.\n";
  60. }
  61. }
  62. exit 0;