CronJob Ubuntu 16.04 / php7.0

0

I want to run a CronJob on an Ubuntu server 16.04 with php.7.0, which does not work for me.

I have the following crontab -e, which should perform or execute my script every 10 minutes, but it does not do anything.

10 * * * * /usr/bin/php7.0 /var/www/html/comprobantes/copia.php

If I enter wwww.sitio.com/comprobantes/copia.php, the script runs correctly

the code that is in copia.php is:

<?php

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require '../public/PHPMailer/src/Exception.php';
require '../public/PHPMailer/src/PHPMailer.php';
require '../public/PHPMailer/src/SMTP.php';

$db_host = 'localhost'; //Host del Servidor MySQL
    $db_name = 'db'; //Nombre de la Base de datos
    $db_user = 'root'; //Usuario de MySQL
    $db_pass = ''; //Password de Usuario MySQL

    $fecha = date("Y_m_d-H_i_s"); //Obtenemos la fecha y hora para identificar el respaldo

    // Construimos el nombre de archivo SQL Ejemplo: mibase_20170101-081120.sql
    $salida_sql = $db_name.'_'.$fecha.'.sql'; 

    //Comando para genera respaldo de MySQL, enviamos las variales de conexion y el destino
    //$dump = "mysqldump --h$db_host -u$db_user -p$db_pass --opt $db_name > $salida_sql";
    $dump = "mysqldump --opt -h $db_host -u $db_user -p$db_pass $db_name > $salida_sql";
    system($dump, $output); //Ejecutamos el comando para respaldo


$zip = new ZipArchive(); //Objeto de Libreria ZipArchive

    //Construimos el nombre del archivo ZIP Ejemplo: mibase_20160101-081120.zip
$salida_zip = $db_name.'_'.$fecha.'.zip';

    if($zip->open($salida_zip,ZIPARCHIVE::CREATE)===true) { //Creamos y abrimos el archivo ZIP
        $zip->addFile($salida_sql); //Agregamos el archivo SQL a ZIP
        $zip->close(); //Cerramos el ZIP
        unlink($salida_sql); //Eliminamos el archivo temporal SQL
        //header ("Location: $salida_zip"); // Redireccionamos para descargar el Arcivo ZIP
        $email_user = "[email protected]";
        $email_password = "clave";
        $the_subject = "BACKUP ".$fecha;
        $address_to = "[email protected]";
        $from_name = "SISTEMA";
        $phpmailer = new PHPMailer();
        // ---------- datos de la cuenta de Gmail -------------------------------
        $phpmailer->Username = $email_user;
        $phpmailer->Password = $email_password; 
        //-----------------------------------------------------------------------
        // $phpmailer->SMTPDebug = 1;
        $phpmailer->SMTPSecure = 'ssl';
        $phpmailer->Host = "smtp.gmail.com"; // GMail
        $phpmailer->Port = 465;
        $phpmailer->IsSMTP(); // use SMTP
        $phpmailer->SMTPAuth = true;
        $phpmailer->setFrom($phpmailer->Username,$from_name);
        $phpmailer->AddAddress($address_to); // recipients email
        $phpmailer->Subject = $the_subject; 
        $phpmailer->Body .="<h1 style='color:#3498db;'>COPIA DE SEGURIDAD!</h1>";
        $phpmailer->Body .= "<p>Mensaje personalizado y automatico, no responder</p>";
        $phpmailer->Body .= "<p>Fecha y Hora: ".date("d-m-Y h:i:s")."</p>";
        $phpmailer->AddAttachment($salida_zip);
        $phpmailer->IsHTML(true);
        $phpmailer->Send();

    } else {
                echo 'Error'; //Enviamos el mensaje de error
            }
?>

I would appreciate help to know why it does not work. Saludos.

    
asked by JohnL 22.09.2018 в 23:48
source

1 answer

0

If I'm not wrong, like this:

10 * * * * /usr/bin/php7.0 /var/www/html/comprobantes/copy.php

you are telling him to run the script at minute 10 of each hour.

To get it to run every ten minutes is as follows:

* / 10 * * * * /usr/bin/php7.0 /var/www/html/comprobantes/copy.php

Here the source of the information that happened to you: link

    
answered by 23.09.2018 в 00:26