1
0

update_auth_wiki.pl 1.4 KB

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