Nel nostro server centos6. Mi piacerebbe eseguire uno script php in cron job come utente apache ma sfortunatamente non funziona.
ecco l'edizione di crontab (crontab -uapache -e)
24 17 * * * php /opt/test.php
ed ecco il codice sorgente del file "test.php" che funziona bene con l'utente "apache" come proprietario.
<?php exec( 'touch /opt/test/test.txt');?>
Provo a sostituire php con il path completo di php (/ usr / local / php / bin / php) ma non funziona
Grazie in anticipo, per favore aiutami
Cron è un servizio di pianificazione basato sul tempo in sisthemes operativi computerizzati Linux / Unix. Il process cron viene utilizzato per pianificare i comandi da eseguire periodicamente. È ansible impostare comandi o script, che verranno eseguiti ripetutamente a un'ora prestabilita. Cron è uno degli strumenti più utili nei sisthemes operativi Linux o UNIX. Il servizio cron (demone) viene eseguito in background e controlla costantemente il file / etc / crontab , / etc / cron. / * directory. Controlla anche la directory / var / spool / cron / .
Nell'esempio seguente, il command crontab mostrato di seguito attiverà automaticamente le attività cron each dieci minuti:
*/10 * * * * /usr/bin/php /opt/test.php
Nell'esempio sopra, * / 10 * * * * rappresenta quando deve essere eseguita l'attività. La prima cifra rappresenta i minuti – in questo caso, each "dieci" minuti. Le altre cifre rappresentano rispettivamente l' ora , il giorno , il mese e il giorno della settimana .
*
è un carattere jolly, che significa "each volta" .
Inizia con la ricerca del tuo binario PHP digitando la row di command:
whereis php
L'output dovrebbe essere qualcosa del tipo:
php: / usr / bin / php /etc/php.ini /etc/php.d / usr / lib64 / php / usr / include / php / usr / share / php /usr/share/man/man1/php.1 .gz
Specificare correttamente il path completo nel command.
crontab -e
Per vedere cosa hai in crontab .
Per uscire da Vim Editor senza salvare basta click:
Shift+:
E quindi digita q!
Ho avuto lo stesso problema … ho dovuto eseguirlo come utente.
00 * * * * root /usr/bin/php /var/virtual/hostname.nz/public_html/cronjob.php
Potrebbe essere necessario eseguire il cron job come utente con le autorizzazioni per eseguire lo script PHP. Prova a eseguire il cron job come root, usando il command runuser
( man runuser
). Oppure crea un sistema crontable ed esegui lo script PHP come utente autorizzato, come descritto da @Philip.
Fornisco una risposta dettagliata su come utilizzare cron in questo post StackOverflow.
Come scrivere un cron che eseguirà uno script each giorno a mezzanotte?