update_auth_wiki.pl 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #!/usr/bin/perl
  2. #
  3. # Copyright (C) Roman Dmitiriev, rnd@rajven.ru
  4. #
  5. use FindBin '$Bin';
  6. use lib "$Bin/";
  7. use Data::Dumper;
  8. use Rstat::config;
  9. use Rstat::main;
  10. use Rstat::mysql;
  11. use Rstat::net_utils;
  12. use strict;
  13. use warnings;
  14. use File::Find;
  15. use File::Basename;
  16. if (!$config_ref{wiki_path}) { exit; }
  17. my %content;
  18. find( \&wanted, $config_ref{wiki_path});
  19. foreach my $fname (keys %content) {
  20. open (FF,"<$content{$fname}") or die "unable to open file $content{$fname}!" ;
  21. my @tmp=<FF>;
  22. close(FF);
  23. chomp(@tmp);
  24. my $ip;
  25. foreach my $row (@tmp) {
  26. if ($row=~/\%META\:FIELD\{name\=\"DeviceIP\"/) {
  27. if ($row=~/value\=\"([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})\"/) { $ip = $1; }
  28. }
  29. }
  30. if (!$ip) { next; }
  31. my $auth = get_record_sql($dbh,"SELECT * FROM User_auth WHERE deleted=0 and ip='".$ip."'");
  32. if (!$auth) { next; }
  33. print "Update id: $auth->{id} $ip => $fname\n";
  34. my $auth_rec;
  35. $auth->{WikiName}=$fname;
  36. update_record($dbh,'User_auth',$auth,'id='.$auth->{id});
  37. }
  38. print "Done!\n";
  39. exit;
  40. sub wanted {
  41. my $filename = $File::Find::name;
  42. my $dev_name = basename($filename);
  43. if ($filename =~/\.txt$/ and $dev_name=~/^(Device|Switch|Router|Gateway)/) {
  44. $dev_name=~s/\.txt$//;
  45. $content{$dev_name}=$filename;
  46. }
  47. return;
  48. }
  49. exit;