PHP script for automated WHM account backup to AmazonS3

I want a php backup script that is to be run as a cron job. I would like it to have the following features....

1. During the backup run [cron job], the script should be able to automatically create full/incremental backups of all the accounts in the WHM panel. (To be used to backup a reseller account). Each hosting account should be backed up as separate zip files.

2. The value for full or incremental backup can be set in the php file. [as a variable]. Maybe 0 or 1. If value set is zero, then do incremental backup else full backup...

3. The incremental loads should have the public_html folder structure with changed files in their respective folders. This should be gziped with name like [url removed, login to view] . In addition the database should be gzipped seperately for each day with filename like [url removed, login to view] [where YAHO is the ftp username for the site]. For full load, public_html folder + database have to be backed up with filename like [url removed, login to view] Similar incremental/full backup of each and every account in the WHM panel should be zipped and placed in the Amazon R3 bucket.

4. Between backup of each account in the WHM panel, there must be a forced delay to prevent unnecessary load to the server. This delay can be hardcoded in var.php.(in minutes).

5. There has to be 2 different PHP files, one for capturing the settings/credentails/license key etc [[url removed, login to view]]. ie. All user configurable values. One which is the actual code to implement the whole backup process [[url removed, login to view]]. This php file [[url removed, login to view]] has to be secured with ION cube. The script should work with a license key to prevent unauthorised use. After a customer buys this script, I will send them a key which they will update in the [url removed, login to view] file. During the cron run, [url removed, login to view] should do a lookup in a table in my database [I will provide table details] for a valid key. And this key should be binded to one domain name only. This domain name will be captured and stored in license database during purchase. So during backup run, the script should get the requesting domain name and compare with the same in the database. If it matches complete backup should happen. In case the license in invalid, no backup will be performed.

6. The MAIN bucket name can be set in the [url removed, login to view] file. Hardcode it to WHM_BACKUP.

7. Incremental changelog should have the path of all files that was changed that day. The incremental file logs are to be placed in a different bucket. This bucket should also be created automatically in case it does not exist. Log is not required for full backups.

The structure at S3 should be as attached.

8. The name of the [url removed, login to view] file should be changeable without modifying anything in bk.php. ie. If required users should be able to create a copy of this file[[url removed, login to view]] and create multiple backup jobs. ie one can be run on a daily basis with incremental loads [[url removed, login to view]] whereas another copy can be run as weekly full load backups. [[url removed, login to view]] The filename should be changeable and should not affect the functionality.

The script should be properly coded/commented.

NDA will have to be signed before development starts and complete source code should be handed over.

Required structure at Amazon S3 attached

A few more notes.

Unlike mentioned above, we need the complete site to be backed up.[not "public_html" alone] Every folder in each account. Mails, mailing list etc.

Demo mode required. In case of no license key, Backups can be performed for one month for 3 cpanel accounts.

The script should work for both Cpanel and WHM panels. [individual or reseller hosting accounts]