migrate-alias.pl 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  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 DBI;
  9. use Time::Local;
  10. use Net::Patricia;
  11. use NetAddr::IP;
  12. use Data::Dumper;
  13. use Rstat::config;
  14. use Rstat::main;
  15. use Rstat::mysql;
  16. use Rstat::net_utils;
  17. use File::Basename;
  18. use File::Path;
  19. print "Start migration: ";
  20. #get userid list
  21. my $sSQL="SELECT id,ip,ip_int,mac,comments,dns_name FROM User_auth where deleted=0 ORDER by ip_int";
  22. my @users = get_custom_records($dbh,$sSQL);
  23. foreach my $row (@users) {
  24. next if (!$row);
  25. next if (!$row->{ip});
  26. next if (!$row->{dns_name} or $row->{dns_name}!~/;/);
  27. my @aliases=split(/;/,$row->{dns_name});
  28. my $auth;
  29. $auth->{dns_name}=trim($aliases[0]);
  30. foreach my $alias (@aliases) {
  31. next if ($auth->{dns_name} eq $alias);
  32. my $new_alias;
  33. $new_alias->{auth_id}=$row->{id};
  34. $new_alias->{alias}=trim($alias);
  35. $new_alias->{description}=trim($alias);
  36. insert_record($dbh,'User_auth_alias',$new_alias);
  37. }
  38. update_record($dbh,'User_auth',$auth,"id=$row->{id}");
  39. print ".";
  40. }
  41. print "\n";
  42. exit 0;