script php não executado pelo crontab

0

Eu configurei um cron para executar um dos meus scripts php. Mas o problema é que o script php não está sendo executado de forma alguma nem parcialmente.

Aqui está o cron que eu configurei

45 23 * * * /usr/bin/php -q /var/www/myscript.php

Eu tentei o seguinte

  1. Eu removi o cron do usuário normal para o usuário root ainda sem resultados.
  2. Alterei as permissões no script usando chmod +x /var/www/myscript.php
  3. Eu usei o comando whereis php que fornece o seguinte

    php: /usr/bin/php /usr/share/man/man1/php.1.gz
    

Agora, não sei mais o que posso fazer. Por favor, ajude.

P.S. Eu posso executar o script manully e funciona perfeitamente.

    
por Tarun 02.08.2013 / 08:59

4 respostas

3

1. Como man php nos diz ...

   --no-header
   -q             Quiet-mode. Suppress HTTP header output (CGI only).

   --file file
   -f file        Parse and execute file

-q não faz nada no modo php-cli. Como outros apontaram, você precisa de -f .

2. + x não é necessário.

Reverta com:

chmod -x /var/www/myscript.php

3. whereis fornecerá todos os locais. Se você quer apenas o binário, use which php .

$ which php
/usr/bin/php
    
por Oli 02.08.2013 / 10:27
0

Estou apenas adivinhando, mas o caminho onde você colocou o script não deve ser

% bl0ck_qu0te%

eu ainda sou um novato no cron:)

    
por Dexobox 02.08.2013 / 09:33
0

Veja man cron e as mudanças específicas do Debian. Citação:

> Como descrito acima, os arquivos sob esses diretórios devem ser passados        algumas verificações de integridade, incluindo as seguintes: ser executável, pertencer a        root, não pode ser gravada por grupo ou outro e, se symlinks, aponte para        arquivos de propriedade de root. Além disso, os nomes dos arquivos devem estar de acordo        requisitos de nome de arquivo de partes de execução: eles devem ser inteiramente compostos de        letras, dígitos e só pode conter os sinais especiais sublinhados        ('_') e hífens ('-'). Qualquer arquivo que não esteja de acordo com estes        os requisitos não serão executados por partes de execução. Por exemplo, qualquer arquivo        contendo pontos será ignorado.

    
por Brian 12.08.2013 / 06:43
0

A linha crontab correta seria:

45 23 * * * /usr/bin/php -f /var/www/myscript.php

Observe o -f em vez de -q !

    
por Frantique 02.08.2013 / 10:07