Erro na execução de script php pelo cron

1. Erro na execução de script php pelo cron

Mauricio severo
mauriciosevero

(usa Ubuntu)

Enviado em 03/06/2016 - 18:20h

Boa tarde:

Estou com dificuldade para rodar o script php de backup do teampass, já tentei agendar de várias formas o cron ele executa mas não me retorna o arquivo de backup para que eu possa guardar em fita, segue a linha de configuração do cron e o script:
OBS.: quando rodo o script via linha de comando funciona tranquilo

* * * * * /opt/TeamPass-2.1.19/backups/script.backup.php &> /dev/null

___________________________________________________________

#!/usr/bin/env php
<?php
/**
* @file views.queries.php
* @author Nils Laumaillé
* @version 2.1.19
* @copyright (c) 2009-2013 Nils Laumaillé
* @licensing GNU AFFERO GPL 3.0
* @link http://www.teampass.net
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*/

include '../includes/settings.php';
header("Content-type: text/html; charset=utf-8");

// connect to DB
require_once '../sources/SplClassLoader.php';
$db = new SplClassLoader('Database\Core', '../includes/libraries');
$db->register();
$db = new Database\Core\DbCore($server, $user, $pass, $database, $pre);

$db->connect();

//Load AES
$aes = new SplClassLoader('Encryption\Crypt', '../includes/libraries');
$aes->register();

//get backups infos
$rows = $db->fetchAllArray("SELECT * FROM ".$pre."misc WHERE type = 'settings'");
foreach ($rows as $reccord) {
$settings[$reccord['intitule']] = $reccord['valeur'];
}

if (!empty($settings['bck_script_filename']) && !empty($settings['bck_script_path'])) {
//get all of the tables
$tables = array();
$result = mysql_query('SHOW TABLES');
while ($row = mysql_fetch_row($result)) {
$tables[] = $row[0];
}

$return = "";
//cycle through each table and format the data
foreach ($tables as $table) {
$result = mysql_query('SELECT * FROM '.$table);
$num_fields = mysql_num_fields($result);

$return.= 'DROP TABLE '.$table.';';
$row2 = mysql_fetch_row(mysql_query('SHOW CREATE TABLE '.$table));
$return.= "\n\n".$row2[1].";\n\n";

for ($i = 0; $i < $num_fields; $i++) {
while ($row = mysql_fetch_row($result)) {
$return.= 'INSERT INTO '.$table.' VALUES(';
for ($j=0; $j<$num_fields; $j++) {
$row[$j] = addslashes($row[$j]);
$row[$j] = preg_replace('/\n/', '/\\n/', $row[$j]);
if (isset($row[$j])) {
$return.= '"'.$row[$j].'"' ;
} else {
$return.= '""';
}
if ($j<($num_fields-1)) {
$return.= ',';
}
}
$return.= ");\n";
}
}
$return.="\n\n\n";
}

if (!empty($settings['bck_script_key'])) {
$return = Encryption\Crypt\aesctr::encrypt($return, $settings['bck_script_key'], 256);
}

//save the file
$handle = fopen($settings['bck_script_path'].'/'.$settings['bck_script_filename'].'-'.time().'.sql', 'w+');
fwrite($handle, $return);
fclose($handle);
}





  


2. Re: Erro na execução de script php pelo cron

Ronaldo Ferreira de Lima
textmode

(usa Slackware)

Enviado em 03/06/2016 - 18:48h

mauriciosevero escreveu:

Boa tarde:

Estou com dificuldade para rodar o script php de backup do teampass, já tentei agendar de várias formas o cron ele executa mas não me retorna o arquivo de backup para que eu possa guardar em fita, segue a linha de configuração do cron e o script:
OBS.: quando rodo o script via linha de comando funciona tranquilo

* * * * * /opt/TeamPass-2.1.19/backups/script.backup.php &> /dev/null
[...]


Se é certeza que o shell que roda o cron é compatível com a sintaxe, troque o
&>/dev/null 
para um arquivo e veja o que ocorreu. Se não for compartível, use
2>&1>arquivo 
.

Outra opção é executar o script com:

env -i seu_script.sh 


[]'s
--
"Não manejo bem as palavras
Mas manipulo bem as strings."
------------------------------
https://perspicazsite.wordpress.com


3. teste

Mauricio severo
mauriciosevero

(usa Ubuntu)

Enviado em 06/06/2016 - 15:45h

Tentei as duas opções e mesmo assim continuo com o problema, no env -i continua não retornado o arquivo e na criação da saida do log o arquivo de saida é criado vazio.


4. Re: Erro na execução de script php pelo cron

Ronaldo Ferreira de Lima
textmode

(usa Slackware)

Enviado em 06/06/2016 - 22:46h

mauriciosevero escreveu:

Tentei as duas opções e mesmo assim continuo com o problema, no env -i continua não retornado o arquivo e na criação da saida do log o arquivo de saida é criado vazio.


As opções eram para lhe ajudar a encontrar o problema. Vá depurando o script parte a parte até isolar o pedaço problemático.


5. Re: Erro na execução de script php pelo cron

Perfil removido
removido

(usa Nenhuma)

Enviado em 07/06/2016 - 18:10h

Eu agendei utilizando o lynx. Utilizo o TeamPass-2.1.26.4. Não tenho problemas.

Ex.:

$ cat /etc/crontab
30      01,13   *       *       *       root       lynx -dump http://localhost/TeamPass/backups/script.backup.php 





6. Re: Erro na execução de script php pelo cron

Ronaldo Ferreira de Lima
textmode

(usa Slackware)

Enviado em 07/06/2016 - 20:11h

amarildosertorio escreveu:

Eu agendei utilizando o lynx. Utilizo o TeamPass-2.1.26.4. Não tenho problemas.

Ex.:

$ cat /etc/crontab
30      01,13   *       *       *       root       lynx -dump http://localhost/TeamPass/backups/script.backup.php 




É certeza que '/etc/crontab' é o lugar correto no SO em uso?

A forma correta em todos os SOs que já mexi é:


crontab -e


daí se insere uma linha do tipo:



# min hour day month day-of-week command
#(0-59) (0-23) (1-31) (1-12) (0-6)
#------------------------------------------------------------
* 1 * * * comandos_ou_executaveis parametros 2>&1> arquivo.log


Executar o 'lynx -dump http://localhost/TeamPass/backups/script.backup.php' sozinho faz o que é esperado para o script?

[]'s
--
"Não manejo bem as palavras
Mas manipulo bem as strings."
------------------------------
https://perspicazsite.wordpress.com


7. Re: Erro na execução de script php pelo cron

Perfil removido
removido

(usa Nenhuma)

Enviado em 08/06/2016 - 00:20h

Eu utilizo o TeamPass companheiro.

$ man crontab
crontab - maintains crontab files for individual users 


Global crontab
$ cat /etc/crontab
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed

http://www.devin.com.br/crontab/


8. Re: Erro na execução de script php pelo cron

Ronaldo Ferreira de Lima
textmode

(usa Slackware)

Enviado em 08/06/2016 - 22:42h

amarildosertorio escreveu:

Eu utilizo o TeamPass companheiro.

$ man crontab
crontab - maintains crontab files for individual users 


Global crontab
$ cat /etc/crontab
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed

http://www.devin.com.br/crontab/


Ótimo. O problema é o script então.


9. Re: Erro na execução de script php pelo cron

Paulo Dias
di4s

(usa XUbuntu)

Enviado em 08/06/2016 - 22:57h


Tente usar caminhos absolutos...

Ex.

Na linha include '../includes/settings.php'

Altere para o caminho completo a partir da /



Linux Professional Institute - LPIC-1
Novell Certified Linux Administrator - CLA

http://twitter.com/p4ulodi4s
http://www.prminformatica.com.br/






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts