Web Hosting Talk







View Full Version : HOW-TO: Remove Urchin profiles from cpanel box


thaphantom
07-22-2004, 11:40 PM
Have Urchin? Have cPanel?
We when deleting an account in cpanel the urchin profile remains. Here is how to get rid of those profiles.

#!/usr/local/cpanel/3rdparty/bin/php

<?php

// path to urchin folder ~ no trailing slash
$urchin_path = "/usr/local/urchin";

// Your access hash key from WHM panel
$accesshash = 'INSERT YOUR ACCESS KEY HASH HERE';




/* Syntax we are using... You can find info on urchin and cpanel sites

List all urchin profiles - /usr/local/urchin/util/uconf-driver action=list table="profile"
Remove urchine profile $name - /usr/local/urchin/util/uconf-driver action=delete table="profile" name="$name"
List all cpanel accounts of $user - $accts = listaccts($host,$user,$accesshash,0);

*/

// cPanel variables
require '/usr/local/cpanel/Cpanel/Accounting.php.inc';
$host = "localhost";
$user = "root";



$accts = listaccts($host,$user,$accesshash,0);

// Cycle through array that is returned. The first of each account array contains domain
foreach($accts as $current_account)
$ALL_ACCOUNT_DOMAINS[] = $current_account[0];


// Get number of records in urchin db
$urchin_num = `{$urchin_path}/util/uconf-driver action=nrecords table="profile"`;

$urchin_command = "{$urchin_path}/util/uconf-driver action=list table=\"profile\" start=0 n=" . trim($urchin_num);

// Contains all return info
$urchin_id_strings = `$urchin_command`;

// Create array based on spaces
foreach(explode(" ", $urchin_id_strings) as $current_value)
{
// Look for format of profile names, store in regs
if (ereg("^(name=)\"([^\"]+)\"", $current_value, $regs))
{
// If current profile is not in cpanel accounts, assume it needs to be removed
if (array_search($regs[2], $ALL_ACCOUNT_DOMAINS) === false)
{
$IDS_TO_REMOVE[] = $regs[2];
}
}
}

if (!empty($IDS_TO_REMOVE))
{
// Yes, I know -- we could have done this command earlier. But lets just place it here
foreach($IDS_TO_REMOVE as $current_profile)
{
// Remove current_profile
$result = `{$urchin_path}/util/uconf-driver action=delete table="profile" name="$current_profile"`;
}
}

// Check new urchin number
$new_urchin_num = `{$urchin_path}/util/uconf-driver action=nrecords table="profile"`;

// Echo out how many records have been removed.
echo "Profiles Removed: " . (trim($urchin_num) - trim($new_urchin_num)) . "\n\n";


Put that in a file called remurchin.php and then run it
php remurchin.php

[Code originally posted at the cPanel Forums (http://forums.cpanel.net/showthread.php?t=27237) by Patiek]

Taken from MyCPAdmin.com (http://mycpadmin.com/index.php?showtopic=26)