O trabalho do Cron não executa o arquivo php e o arquivo normal

1

Eu tenho dois arquivos, que precisam ser executados todas as noites.

O arquivo PHP contém os registros mais recentes do banco de dados e cria um arquivo de origem no mesmo diretório.

E um arquivo normal, ainda não é executado.

Eu tentei fazer check-in em /var/log/syslog . achei isso abaixo.

Arquivo de log

Jul 29 13:56:01 ocs2 CRON[7016]: (root) CMD (/opt/lampp/bin/php /opt/lampp/htdocs/ats/cron_jobs/export_db_elastic.php)
Jul 29 13:57:01 ocs2 CRON[7118]: (root) CMD (source /opt/lampp/htdocs/ats/cron_jobs/tt2)
Jul 29 13:57:01 ocs2 CRON[7117]: (CRON) info (No MTA installed, discarding output)

O arquivo PHP contém código para criar um arquivo normal

$db = mysqli_connect($host, $username, $password, $database) or die('Error connecting to DB : ' . mysqli_error($db));        

$q1 = "select * from elasticsearch_record where id = 1";
$q2 = "select max(id) as 'max_num' from resumes";

$r1 = mysqli_query($db, $q1);
$r2 = mysqli_query($db, $q2);

if ($r1->num_rows > 0) {

    $rd1 = mysqli_fetch_array($r1);
    $rd2 = mysqli_fetch_array($r2);

    $start = $rd1['max_count'];
    $end = $rd2['max_num'];

    $one_up = $end + 1;

    $q3 = "update elasticsearch_record set max_count = '$one_up' where id = 1";
    $r3 = mysqli_query($db, $q3);


    $string1 = "bin=/root/elasticsearch-jdbc-1.6.0.0/bin\n";
    $string1 .= "lib=/root/elasticsearch-jdbc-1.6.0.0/lib\n";
    $string1 .= "echo '{\n";
    $string1 .= "\"type\" : \"jdbc\",\n";
    $string1 .= "\"jdbc\" : {\n";
    $string1 .= "\"url\" : \"jdbc:mysql://192.168.1.17:3306/c270751_resume\",\n";
    $string1 .= "\"user\" : \"ServerUser\",\n";
    $string1 .= "\"password\" : \"passwordhere\",\n";
    $string1 .= "\"sql\" : \"select * from resumes limit $start, $end\",\n";
    $string1 .= "\"index\" : \"rforceresumes\",\n";
    $string1 .= "\"type\" : \"resumetype\"\n";
    $string1 .= "}\n";
    $string1 .= "}' | java \\n";
    $string1 .= "-cp \"\${lib}/*\" \\n";
    $string1 .= "-Dlog4j.configurationFile=\${bin}/log4j2.xml \\n";
    $string1 .= "org.xbib.tools.Runner \\n";
    $string1 .= "org.xbib.tools.JDBCImporter";


    // echo "<pre>$string1</pre>";

    $myfile = fopen("tt2", "w") or die("Unable to open file!");
    fwrite($myfile, $string1);
    fclose($myfile);


} else {
    die("Do Nothing");
}

Arquivo normal para importação em massa do Elasticsearch

bin=/root/elasticsearch-jdbc-1.6.0.0/bin
lib=/root/elasticsearch-jdbc-1.6.0.0/lib
echo '{
"type" : "jdbc",
"jdbc" : {
"url" : "jdbc:mysql://192.168.1.17:3306/c270751_resume",
"user" : "ServerUser",
"password" : "passwordhere",
"sql" : "select * from resumes limit 1, 222504",
"index" : "rforceresumes",
"type" : "resumetype"
}
}' | java \
-cp "${lib}/*" \
-Dlog4j.configurationFile=${bin}/log4j2.xml \
org.xbib.tools.Runner \
org.xbib.tools.JDBCImporter

Agora, sinto que esses arquivos não estão sendo executados com o CRON, mesmo que sejam exibidos em arquivos de log. Porque, normal file data modificada não reflete.

Abaixo está o código para Cron Job

56 13 * * * /opt/lampp/bin/php /opt/lampp/htdocs/ats/cron_jobs/export_db_elastic.php
57 13 * * * source /opt/lampp/htdocs/ats/cron_jobs/tt2

Eu não tenho ideia, nem pensei. Eu verifiquei meu código muito tempo. Por que não é executado corretamente?

Nota:

Quando eu o executo manualmente pelo terminal ou navegador. está funcionando perfeitamente.

    
por Rafee 29.07.2015 / 21:22

0 respostas