Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- require("functions/dbconn.php");
- $t = date("D");
- $select = "SELECT * FROM cpanel WHERE cron = '1' AND date != '".$t."' LIMIT 10";
- $results = mysql_query($select);
- $num_rows = mysql_num_rows($results);
- $r = mysql_fetch_row($results);
- $id = $r[0];
- $i = 1;
- $from = "failed@freeautobackup.com";
- function sendEmail($to,$from,$subject,$message,$domain){
- $headers = "From:" . $from;
- if ($message == 'nologin') {
- $message = "Hello! This is a email reminder to let you know that the backup for your cPanel account failed to connect for ".$domain."... Please double check your login information as we were unable
- to login! ID: "; echo $id;
- } elseif ($message=='noconnect') { $message = "Hello! This is a email reminder to let you know that the backup for your cPanel account failed to connect for ".$domain."... Please double check all
- of your connection settings! ID: $id";
- } else { $message = "I have no idea why I am emailing you"; }
- mail($to,$subject,$message,$headers);
- }
- echo "Starting backups for <b>".$num_rows."</b> accounts!";
- echo "<br>";
- while ($row = mysql_fetch_array($results)){
- // Info required for cPanel access
- $cpuser = $row['cpuser']; // Username used to login to CPanel
- $cppass = $row['cppass']; // Password used to login to CPanel
- $domain = $row['domain']; // Domain name where CPanel is run
- $skin = $row['skin']; // Set to cPanel skin you use (script won't work if it doesn't match). Most people run the default x theme
- // Info required for FTP host
- $ftpuser = $row['ftpuser']; // Username for FTP account
- $ftppass = $row['ftppass']; // Password for FTP account
- $ftphost = $row['ftphost']; // Full hostname or IP address for FTP host
- $ftpmode = $row['ftpmode']; // FTP mode ("ftp" for active, "passiveftp" for passive)
- $ftpport = $row['ftpport']; // FTP port
- $ftpdir = $row['ftpdir']; // FTP directory
- // Notification information
- $notifyemail = $row['email']; // Email address to send results
- // Secure or non-secure mode
- $secure = $row['secure']; // Set to 1 for SSL (requires SSL support), otherwise will use standard HTTP
- // Set to 1 to have web page result appear in your cron log
- $debug = 1;
- // *********** NO CONFIGURATION ITEMS BELOW THIS LINE *********
- if ($secure) {
- $url = "ssl://".$domain;
- $port = 2083;
- } else {
- $url = $domain;
- $port = 2082;
- }
- $socket = fsockopen($url,$port);
- if (!$socket) {
- echo "Failed to open socket connection... Bailing out!\n\nNotifying user!";
- sendEmail($notifyemail,$from,'Backup Failed','noconnect', $domain);
- //mysql_query("UPDATE cpanel SET date = '".$t."'") or die(mysql_error());
- continue;
- }
- // Encode authentication string
- $authstr = $cpuser.":".$cppass;
- $pass = base64_encode($authstr);
- //local with mail
- $m = "email=$notifyemail&submit=Generate Backup";
- //remote with mail
- $fm = "dest=$ftpmode&email=$notifyemail&server=$ftphost&user=$ftpuser&pass=$ftppass&port=$ftpport&rdir=$ftpdir&submit=Generate Backup";
- //remote with no mail
- $fnm = "dest=$ftpmode&server=$ftphost&user=$ftpuser&pass=$ftppass&port=$ftpport&rdir=$ftpdir&submit=Generate Backup";
- $result = $nm;
- if ($result == $nm) {
- $params = $nm;
- }
- elseif ($result == $m) {
- $params = $m;
- }
- elseif ($result == $fm) {
- $params = $fm;
- }
- elseif ($result == $fnm) {
- $params = $fnm;
- }
- // Make POST to cPanel
- fputs($socket,"POST /frontend/".$skin."/backup/dofullbackup.html?".$params." HTTP/1.0\r\n");
- fputs($socket,"Host: $domain\r\n");
- fputs($socket,"Authorization: Basic $pass\r\n");
- fputs($socket,"Connection: Close\r\n");
- fputs($socket,"\r\n");
- // Grab response even if we don't do anything with it.
- while (!feof($socket)) {
- $response = fgets($socket,4096);
- $loginfail = strpos($response, '401');
- if ($loginfail) {
- //login failed do code here:
- echo "Login Failed";
- sendEmail($notifyemail,$from,'Backup Failed!','nologin',$domain);
- break;
- }
- if ($debug) echo $response;
- }
- fclose($socket);
- echo "<hr>";
- echo "".$i." Starting backup for user ".$cpuser." at ".$domain."";
- echo "<br>";
- $i++;
- //mysql_query("UPDATE cpanel SET date = '".$t."'") or die(mysql_error());
- }
- echo "<hr>";
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement