You could make backups of each by using zipping method.
class createDirZip extends createZip {
function get_files_from_folder($directory, $put_into) {
if ($handle = opendir($directory)) {
while (false !== ($file = readdir($handle))) {
if (is_file($directory.$file)) {
$fileContents = file_get_contents($directory.$file);
$this->addFile($fileContents, $put_into.$file);
} elseif ($file != '.' and $file != '..' and is_dir($directory.$file)) {
$this->addDirectory($put_into.$file.'/');
$this->get_files_from_folder($directory.$file.'/', $put_into.$file.'/');
}
}
}
closedir($handle);
}
}
then
$createZip = new createDirZip;
$createZip->addDirectory('uploads/');
$createZip->get_files_from_folder('/wp-content/uploads/', 'uploads/');
and
$fileName = 'tmp/uploadsbackup.zip';
$fd = fopen ($fileName, 'wb');
$out = fwrite ($fd, $createZip->getZippedfile());
fclose ($fd);
$createZip->forceDownload($fileName);
@unlink($fileName);
this will take all of the contents of /uploads/ and zip it into “uploadsbackup.zip”
it might be a pain in the butt to do this for each user but im sure you can alter the code above to do so, find users, and place the username within the get_files_from_folder('".$users."/uploads/
or whatever.