ldap迁移脚本group

#!/usr/bin/perl -w
##by yingying.liu @ 2013.3.28 11:03
##Release 1.0
use strict;
use warnings;
use Encode;
use DBI;
use MIME::Base64;
use MIME::QuotedPrint;
use Encode;
use Cache::Memcached;
use Getopt::Long;

my $flag = 0;
my $ldap_data = "ldapinfo.txt";
my $sn = " ";
my $cn = " ";
my $ordered = " ";
my $created = " ";
my $modified = " ";

#connect to mysql;
my $sql = " ";
my $rows = " ";
my $conn;
$conn = DBI->connect("DBI:mysql:database=lyy:host=127.0.0.1","root","123456",{'RaiseError' => 1});

open MAILFORSEC,"$ldapinfo.txt";
open TMPFILE,">>move.log";
#循环读取文件中的每一行
foreach my $line (<MAILFORSEC>)
{
#以dn: 和dn::开头的行,以dn::开始的行是经过base64编码的,所以一般需要解码过程

 if($line =~ /^dn: cn=(.*),ou=systemGroup,ou=Groups,domainName/i || $line =~ /^dn:: (.*)/i || $flag == 1) {
  $flag = 1;
#匹配sn:行数据
  if($line =~ /^sn: (.*)/i){  
   $sn = $1;
  }
#匹配cn:或者cn::的行数据
  elsif($line =~ /^cn: (.*)/i || $line =~ /^cn:: (.*)/i){
   $cn = $1;
   if($line =~ /^cn:: (.*)/i){  //cn::是经过base64编码的

    $cn = decode_base64($1); //解码成中文
   }
  }
  elsif($line =~ /^ordered: (.*)/i){  
   $ordered = $1;
  }
  elsif($line =~ /^created: (.*)/i){
   $created = $1;
  }
  elsif($line =~ /^modified: (.*)/i){
   $modified = $1;
  }
  }

   if($line =~ /^#/i){  //匹配注释行
   
   my $befor = "SET NAMES 'utf8'";  //解决中文insert into mysql是出现乱码问题,之前在网上看用gdb2312不管用。
          $rows = $conn->do($befor); //运行befor语句
#组合insert语句
          $sql = sprintf("INSERT INTO group(id,name,ordered,created,modified) VALUES('$sn','$cn','%s','$order','$created','$modified');",$cn);

 #insert into mysql
   $rows = $conn->do($sql);
   $accountStatus = 0;

   $flag = 0;
   next;
  }         
 }
    
}

close(MAILFORSEC);
close(TMPFILE);

 


 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值