I was looking for a working script to take full backup (all files+databases+emails) manually or using cron services on my hosting server, each CPanel user by one. But most of the scripts are either old, totally unusable or commercial.
So I wrote one for my own use and sharing here so others don’t need to re-invent the wheel
08 | $source_server_ip = "your_domain_or_IP" ; |
09 | $cpanel_account = "userid" ; |
10 | $cpanel_password = "password" ; |
12 | $ftphost = "ip_or_hostname_of_ftp" ; |
16 | $email_notify = 'your_email@domain.com' ; |
17 | $backupexpireindays =21; |
22 | $backupexpireindays =( $backupexpireindays *24)*3600; |
24 | $xmlapi = new xmlapi( $source_server_ip ); |
25 | $xmlapi --->password_auth( $cpanel_account , $cpanel_password ); |
26 | $xmlapi ->set_port( '2083' ); |
29 | $conn_id = ftp_connect( $ftphost ); |
30 | $login_result = ftp_login( $conn_id , $ftpacct , $ftppass ); |
32 | ftp_chdir( $conn_id , $logs_dir ); |
33 | $files = ftp_nlist( $conn_id , "." ); |
34 | foreach ( $files as $filename ) { |
35 | $fileCreationTime = ftp_mdtm( $conn_id , $filename ); |
39 | $fileAge = $fileAge - $fileCreationTime ; |
40 | if ( $fileAge > $backupexpireindays ) { |
42 | ftp_delete( $conn_id , $filename ); |
59 | $xmlapi ->set_output( 'json' ); |
60 | print $xmlapi ->api1_query( $cpanel_account , 'Fileman' , 'fullbackup' , $api_args ); |
You need to save it with .php extension (upload it to your server) and download include file from xmlapi.zip(right click->save as) and extract it to the same folder (on your web server). Create cron job from your CPanel or trigger it manually to get full backup in your FTP server, That’s it.
OR
You can fork from my git hub Repositories at cpanel-Fullbackup
Enjoy
Ever wanted FTP backups and automation for keeping backups of important file on off-peak time. I always love automation, so machines can do things automatically and help humans
Read the rest of this entry »