昨天,又在弄ldap导ldif数据,上周五在windows已经能成功导入了,到客户这来一看,os是linux,平常在学校就没怎么摸过,没办法,到了甲方这,硬着头皮上呗,不懂就百度goole一下,摆弄了一上午,未果,下午接着晕,无奈下,拨通了ibm的客服号,可惜那时16点多了 ,直到17点也没能解决,17点后再打过去,传来的是一位甜美的声音:”您好,ibm客服咨询时间是上午8点至下午5点,请您下个工作日再打来电话咨询,谢谢,然后就E文。。。。。“,晕,,,,,,,,
还好那个吴工程师还算仁义,仍然和我email联系,最后为了方便加了我的msn,多好的一人,我容易嘛,明天甲方就得看到数据,今晚还弄的全是乱码,。忙活到晚8点,吴工闪了,我同事小柏也闪了,我也就闪了,不管怎样,好歹里头有数据,至于乱码嘛,明儿再说啦,要死也是明天的事儿啦。。。
今早,特意起个大早,7点就起来了,洗漱一番,7:20去公交点,上车,然后就在车上站着,摇了一个多小时,还是没早平常多少,9点差十分,感觉很郁闷,这不就白起早了吗?
好了,言归正传,ldap在linux上导数据其实方法和在windows上一样,执行idsxcfg命令,进入ldap图形界面,然后就是停ldap实例服务,执行ibm -I db2inst1(这个是实例名) -k,在idsxcfg中点管理suffix,添加条目的后缀,;就是那些打头的,如,dc=ibm,dc=com等,完了后要记得点下面的ok确定添加了,再就是点"import ldif"选择你要导入的ldif文件,点import开始导入 ,这就是无中文时的正常操步骤啦。
但不幸的是得在linux下导入带有中文的ldif,还是得费得周折。。
从windows上给ldif打成zip包,再将zip包以二进制的方式给传到linux上去,在linux下执行unzip解开zip包,得到的lidf文件还是中文的地方乱,哦,对了,不管是win或是linux,在ldif文件的开头一定得在字符编码version: 1 charset: GB18030
,不然就会报错,“找不到父条目”之类的错了,也就是一些需编码的根条目记录导不进了下面的子记录就导不了了不管有没编码问题。
ldap使用ldapadd批量导入ldif的条目会碰到导入后在ldap服务器的中文会变成乱吗,由于ldap服务器一般是采用utf-8的编码,而我们在windows上编辑ldif文件时一般是gb2312的编码。所以导致中文编码会乱码。要更正这个问题实际上很简单只要把ldif文件转换成utf-8编码格式然后再导入ldif文件就不会乱码。
1、ldif 编码转换
假如我有一个test.ldif文件(里面含有中文内容),把文件拷贝到Linux或Unix系统的机器,然后使用如下命令进行转换:
iconv -f GB18030 -t utf-8 test.ldif > testutf8.ldif
(-f 就是源编码,-t 转换目标编码,test.ldif:源文件,testutf8.ldif:生成目标编码文件)
备注:使用 iconv -l 可以查看系统支持编码格
2.linux下启动和停止itds实例服务
ibmslapd -I instance -a 启动(-a为安全模式,阻止远程访问)
ibmslapd -I instance -k 停止
ldapsearch -D cn=root -w db2inst1 -h 10.1.3.21 -p 389 -b o=stooges -C GB18030 objectclass=* 查询(从cmd)
ps -ef|grep slapd 查看进程
以上就是我的一些转码经验。。好了,明天我也终于要放假,还是一放就五天,不错,上周末加班,
对了,可气的是上周末我们在另一项目组的人全在加班,这边的人却无人趁着大春光明媚,去哪儿哪的玩了一场真人cs大战,可惜呀,可惜我这么一位运动人才呀。。
下班了,回去看看今天在这下的几部电影,看看是否高清。。。。8了您呢。