The Community Forums

Interact with an entire community of cPanel & WHM users!
  1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Site backup using cron job

Discussion in 'Data Protection' started by fridayshoes, Feb 24, 2014.

  1. fridayshoes

    fridayshoes Registered

    Joined:
    Feb 24, 2014
    Messages:
    4
    Likes Received:
    0
    Trophy Points:
    1
    cPanel Access Level:
    Website Owner
    I've been trying to set up a cron job to send a complete backup of my website from my host to my personal ftp server and so far I've not succeeded.

    Here's the script I've been using (placed outside my public_html folder with 755 permissions):

    Code:
    < ?php
    
    // PHP script to allow periodic cPanel backups automatically.
    // Based on script posted by max.hedroom in cpanel.net forums
    // This script contains passwords. KEEP ACCESS TO THIS FILE SECURE!
    // It is updated to support secure ftp connections and remote directories
    
    // ********* THE FOLLOWING ITEMS NEED TO BE CONFIGURED *********
    
    // Info required for cPanel access
    $cpuser = "username"; // Username used to login to CPanel
    $cppass = "password"; // Password used to login to CPanel
    $domain = "www.mywebsite.com"; // Domain name where CPanel is run
    $skin = "x3"; // Set to cPanel skin you use (script won't work if it doesn't match)
    
    // Info required for FTP/SFTP host
    $ftpuser = "ftpusername"; // Username for FTP(SCP) account
    $ftppass = "ftppassword"; // Password for FTP(SCP) account
    $ftphost = "444.444.444.444"; // Full hostname or IP address for FTP(SCP) host
    $ftpmode = "scp"; // FTP mode ("ftp" for active, "passiveftp" for passive, "scp" for secure ftp)
    $ftpport = "22"; // PORT for FTP(SCP) host
    $ftprdir = "/Backup/HostPapa/mywebsite"; //Remote Directory on SCP host
    
    // Notification information
    $notifyemail = "AdminTeam@mywebsite.com"; // Email address to send results
    
    // Secure or non-secure mode
    $secure = 1; // 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!\n"; exit; }
    
    // Encode authentication string
    $authstr = $cpuser.":".$cppass;
    $pass = base64_encode($authstr);
    
    $params = "dest=$ftpmode&email=$notifyemail&server=$ftphost&user=$ftpuser
    &pass=$ftppass&port=$ftpport&rdir=$ftprdir&submit=Generate Backup";
    
    // 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);
    if ($debug) echo $response;
    }
    
    fclose($socket);
    
    ?>
    Each time the cron job runs I get an email report that contains the entire output of the code from the script file and no backup of my site is present on my FTP.

    I've tried using the following cron job commands (all have the same result)

    #! /usr/bin/php /scripts/myscriptfile.php

    and

    /usr/bin/php /scripts/myscriptfile.php

    and

    php /scripts/myscriptfile.php

    If anyone has some advice it would be greatly appreciated.

    Thanks
     
  2. cPanelMichael

    cPanelMichael Forums Analyst
    Staff Member

    Joined:
    Apr 11, 2011
    Messages:
    30,854
    Likes Received:
    676
    Trophy Points:
    113
    cPanel Access Level:
    Root Administrator
  3. fridayshoes

    fridayshoes Registered

    Joined:
    Feb 24, 2014
    Messages:
    4
    Likes Received:
    0
    Trophy Points:
    1
    cPanel Access Level:
    Website Owner
    Hi, I wasn't aware there were different types of cron jobs, what specifically should I ask them?
     
  4. cPanelMichael

    cPanelMichael Forums Analyst
    Staff Member

    Joined:
    Apr 11, 2011
    Messages:
    30,854
    Likes Received:
    676
    Trophy Points:
    113
    cPanel Access Level:
    Root Administrator
    I was referring to the ability to use the PHP binary itself. I recommend reporting the issue to them to determine if a different path to PHP should be used, or to see if they can troubleshoot why it's not functioning as expected.

    Thank you.
     
  5. fridayshoes

    fridayshoes Registered

    Joined:
    Feb 24, 2014
    Messages:
    4
    Likes Received:
    0
    Trophy Points:
    1
    cPanel Access Level:
    Website Owner
    Is there a way I can test it, maybe with a different script?
     
  6. fridayshoes

    fridayshoes Registered

    Joined:
    Feb 24, 2014
    Messages:
    4
    Likes Received:
    0
    Trophy Points:
    1
    cPanel Access Level:
    Website Owner
    I asked my host, they said there was no restriction placed on using the php binary and that the path to reach it is /usr/local/bin/php
     
  7. cPanelMichael

    cPanelMichael Forums Analyst
    Staff Member

    Joined:
    Apr 11, 2011
    Messages:
    30,854
    Likes Received:
    676
    Trophy Points:
    113
    cPanel Access Level:
    Root Administrator
    Yes, try using a PHP test script that performs a simple function like checking the date or outputs "Hello World" and see if it works as a cron job.

    Thank you.
     
Loading...

Share This Page