77 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
			
		
		
	
	
			77 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
| #!/usr/bin/php4 -q
 | |
| <?php
 | |
| 
 | |
| // Script de migration des données LDAP vers les bases MYSQL de mx/imap
 | |
| include("/var/alternc/bureau/class/local.php");
 | |
| 
 | |
| // On a chargé un fichier de local.php version antérieure, donc AVEC LDAP et SANS mysql_host (surement)
 | |
| 
 | |
| // Connect to the ldap server
 | |
| 
 | |
| if (!($ds=ldap_connect($L_LDAP_HOST))) {
 | |
|    echo "CANNOT CONNECT TO LDAP SERVER ! \n";
 | |
|    return 1;
 | |
| }
 | |
| 
 | |
| if (!(ldap_bind($ds,$L_LDAP_ROOT,$L_LDAP_ROOTPWD))) {
 | |
| 	ldap_close($ds);
 | |
| 	echo "CANNOT BIND TO LDAP SERVER ! \n";
 | |
| 	return 1;
 | |
| }
 | |
| 
 | |
| // Connect to the mysql server
 | |
| if (!mysql_connect($L_MYSQL_HOST,$L_MYSQL_LOGIN,$L_MYSQL_PWD)) {
 | |
|    echo "CANNOT CONNECT TO MYSQL SERVER ! \n";
 | |
|    return 1;
 | |
| }
 | |
| if (!mysql_select_db($L_MYSQL_DATABASE)) {
 | |
|    echo "CANNOT CONNECT TO MYSQL DATABASE ! \n";
 | |
|    return 1;
 | |
| }
 | |
| 
 | |
| // Now enumerate the data for each base.
 | |
| 
 | |
| $sr=ldap_search($ds,"dc=domains,".$L_LDAP_POSTFIX,"(type=mail)",array("mail","uid","account","pop"));
 | |
| $info = ldap_get_entries($ds, $sr);
 | |
| if ($info["count"]==0) {
 | |
|     echo "INFO : Aucun mail dans la base DOMAINS \n";
 | |
| }
 | |
| 
 | |
| echo "Transferring ".$info["count"]." Entries from domains ";
 | |
| for($i=0;$i<$info["count"];$i++) {
 | |
|     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])."');");
 | |
|     if (($i/10.0)==intval($i/10)) { echo "."; flush(); }
 | |
| }
 | |
| echo " done\n";
 | |
| 
 | |
| $sr=ldap_search($ds,"dc=aliases,".$L_LDAP_POSTFIX,"(objectClass=alias)",array("mail","alias"));
 | |
| $info = ldap_get_entries($ds, $sr);
 | |
| if ($info["count"]==0) {
 | |
|     echo "INFO : Aucun mail dans la base ALIASES \n";
 | |
| }
 | |
| 
 | |
| echo "Transferring ".$info["count"]." Entries from aliases ";
 | |
| for($i=0;$i<$info["count"];$i++) {
 | |
|     mysql_query("INSERT INTO mail_alias (mail,alias) VALUES ('".addslashes($info[$i]["mail"][0])."','".addslashes($info[$i]["alias"][0])."');");
 | |
|     if (($i/10.0)==intval($i/10)) { echo "."; flush(); }
 | |
| }
 | |
| echo " done\n";
 | |
| 
 | |
| $sr=ldap_search($ds,"dc=users,".$L_LDAP_POSTFIX,"(objectClass=posixAccount)",array("uid","uidNumber","homeDirectory","userPassword"));
 | |
| $info = ldap_get_entries($ds, $sr);
 | |
| if ($info["count"]==0) {
 | |
|     echo "INFO : Aucun mail dans la base USERS \n";
 | |
| }
 | |
| 
 | |
| echo "Transferring ".$info["count"]." Entries from users ";
 | |
| for($i=0;$i<$info["count"];$i++) {
 | |
|     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])."');");
 | |
|     if (($i/10.0)==intval($i/10)) { echo "."; flush(); }
 | |
| }
 | |
| echo " done\n";
 | |
| 
 | |
| mysql_close();
 | |
| ldap_close($ds);
 | |
| 
 | |
| 
 | |
| ?>
 |