root/alternc/tags/0.9.7/install/upgrades/0.9.1_migrationldap.php

Revision 1798, 2.6 kB (checked in by nahuel, 2 years ago)

Comme php5 peut etre installé, nous utilisons le lien php qui pointe soit vers php5 soit vers php4 ( soit php6 ? ).
close: #1042

Line 
1 #!/usr/bin/php -q
2 <?php
3
4 // Script de migration des données LDAP vers les bases MYSQL de mx/imap
5 include("/var/alternc/bureau/class/local.php");
6
7 // On a chargé un fichier de local.php version antérieure, donc AVEC LDAP et SANS mysql_host (surement)
8
9 // Connect to the ldap server
10
11 if (!($ds=ldap_connect($L_LDAP_HOST))) {
12    echo "CANNOT CONNECT TO LDAP SERVER ! \n";
13    return 1;
14 }
15
16 if (!(ldap_bind($ds,$L_LDAP_ROOT,$L_LDAP_ROOTPWD))) {
17     ldap_close($ds);
18     echo "CANNOT BIND TO LDAP SERVER ! \n";
19     return 1;
20 }
21
22 // Connect to the mysql server
23 if (!mysql_connect($L_MYSQL_HOST,$L_MYSQL_LOGIN,$L_MYSQL_PWD)) {
24    echo "CANNOT CONNECT TO MYSQL SERVER ! \n";
25    return 1;
26 }
27 if (!mysql_select_db($L_MYSQL_DATABASE)) {
28    echo "CANNOT CONNECT TO MYSQL DATABASE ! \n";
29    return 1;
30 }
31
32 // Now enumerate the data for each base.
33
34 $sr=ldap_search($ds,"dc=domains,".$L_LDAP_POSTFIX,"(type=mail)",array("mail","uid","account","pop"));
35 $info = ldap_get_entries($ds, $sr);
36 if ($info["count"]==0) {
37     echo "INFO : Aucun mail dans la base DOMAINS \n";
38 }
39
40 echo "Transferring ".$info["count"]." Entries from domains ";
41 for($i=0;$i<$info["count"];$i++) {
42     mysql_query("INSERT INTO mail_domain (mail,alias,uid,pop) VALUES ('".addslashes($info[$i]["mail"][0])."','".addslashes($info[$i]["account"][0])."','".addslashes($info[$i]["uid"][0])."','".addslashes($info[$i]["pop"][0])."');");
43     if (($i/10.0)==intval($i/10)) { echo "."; flush(); }
44 }
45 echo " done\n";
46
47 $sr=ldap_search($ds,"dc=aliases,".$L_LDAP_POSTFIX,"(objectClass=alias)",array("mail","alias"));
48 $info = ldap_get_entries($ds, $sr);
49 if ($info["count"]==0) {
50     echo "INFO : Aucun mail dans la base ALIASES \n";
51 }
52
53 echo "Transferring ".$info["count"]." Entries from aliases ";
54 for($i=0;$i<$info["count"];$i++) {
55     mysql_query("INSERT INTO mail_alias (mail,alias) VALUES ('".addslashes($info[$i]["mail"][0])."','".addslashes($info[$i]["alias"][0])."');");
56     if (($i/10.0)==intval($i/10)) { echo "."; flush(); }
57 }
58 echo " done\n";
59
60 $sr=ldap_search($ds,"dc=users,".$L_LDAP_POSTFIX,"(objectClass=posixAccount)",array("uid","uidNumber","homeDirectory","userPassword"));
61 $info = ldap_get_entries($ds, $sr);
62 if ($info["count"]==0) {
63     echo "INFO : Aucun mail dans la base USERS \n";
64 }
65
66 echo "Transferring ".$info["count"]." Entries from users ";
67 for($i=0;$i<$info["count"];$i++) {
68     mysql_query("INSERT INTO mail_users (uid,alias,path,password) VALUES ('".addslashes($info[$i]["uidNumber"][0])."','".addslashes($info[$i]["uid"][0])."','".addslashes($info[$i]["homeDirectory"][0])."','".addslashes($info[$i]["userPassword"][0])."');");
69     if (($i/10.0)==intval($i/10)) { echo "."; flush(); }
70 }
71 echo " done\n";
72
73 mysql_close();
74 ldap_close($ds);
75
76
77 ?>
78
Note: See TracBrowser for help on using the browser.