Unix tarea cron, error

  • Funny_Fuzz
  • Mastermind
  • Mastermind
  • Avatar de Usuario
  • Registrado: Ene 18, 2005
  • Mensajes: 1517
  • Status: Offline

Nota Marzo 11th, 2006, 1:55 am

Hola. Este es mi primer post en el foro de Linux.
He configurar una tarea cron mediante cPanel, y han hecho todo correctamente, pero no parece como algo en mi código PHP he hecho. Ive dijo a la Cron Job a cada 5 minutos, ejecute un script en mi directorio de miembros Status.php.
El camino es correcto, el código es correcto, el comando es correcto, pero por alguna extraña razón, se mantiene la salida:

/ home / sharepix / public_html / pixeljunk /-Status.php: línea 1:? php: No existe el archivo o directorio / home / sharepix / public_html / pixeljunk /-Status.php: línea 2: error de sintaxis cerca de modo inesperado »" config.php "/ home / sharepix / public_html / pixeljunk /-Status.php : Línea 2: `include (" config.php ");

Dentro Estado miembro-, tengo:
[php] <? php
include ( "Config. PHP ");
$ result = mysql_db_query ($ base de datos, "select * from Member_List") or die (mysql_error ());

if (mysql_num_rows ($ resultado)) (
while ($ qry = mysql_fetch_array ($ result)) (

if ($ qry [Usuario] == "Online") (
$ time1 = $ qry [Last_Activity_Time_Hours];
$ time2 = $ qry [Last_Activity_Time_Minutes];

$ year = date ( "Y");
$ día = date ( "d");
$ mes = date ( "m");
$ hora = date ( "h");
$ minute1 = Date ( "i");
$ minuto = $ minute1 + 10;
if ($ minutos == 60) (
$ minuto = 0;

$ time3 = date ( "YMD H: i: s", mktime ($ hora, $ minuto, 0, $ mes, $ día, $ año));
)


if (($ time1 == date ( "H")) & & ($ time2 == $ time3)) (

include ( "Config. PHP ");
mysql_query ( "UPDATE SET Member_List» Usuario »=" Sin conexión ", donde Nombre de usuario = $ qry [nombre de usuario]")
or die ( "No es posible actualizar el estatuto de miembros login porque". mysql_error ());

)


)



)
)
> [/ php]
He publicado esto en el foro de programación, pero me dijeron Id obtener mejores sugerencias aquí.
Cualquier ayuda chicos?
Gracias de antemano!
THE BEST THINGS IN LIFE ARE FREE...
JOIN THE MEDIASHARK COMMUNITY TODAY!
  • Anonymous
  • Bot
  • No Avatar
  • Registrado: 25 Feb 2008
  • Mensajes: ?
  • Loc: Ozzuland
  • Status: Online

Nota Marzo 11th, 2006, 1:55 am

  • this213
  • Guru
  • Guru
  • Avatar de Usuario
  • Registrado: Mar 01, 2004
  • Mensajes: 1242
  • Loc: ./
  • Status: Offline

Nota Marzo 11th, 2006, 12:59 pm

Usted necesita una línea Shebang en la parte superior de su script PHP, si usted está tratando de correr que a partir de un shell:
Código: [ Select ]
#!/usr/bin/php

La ruta debe apuntar a su ejecutable de PHP. Si este no es el camino correcto y no sabes cuál es el camino correcto, usted puede intentar:
PHP Código: [ Select ]
<?php
 
echo `which php`;
 
?>
  1. <?php
  2.  
  3. echo `which php`;
  4.  
  5. ?>

en una secuencia de comandos de web estándar.
  • Funny_Fuzz
  • Mastermind
  • Mastermind
  • Avatar de Usuario
  • Registrado: Ene 18, 2005
  • Mensajes: 1517
  • Status: Offline

Nota Marzo 11th, 2006, 7:40 pm

Yo no parecen capaces de conseguir que se ejecute de Shell para algunos extraña razón. En primer lugar, escribe "crontab-e". A continuación, escriba el comando correcto, pero cuando la prensa entrar a ejecutar el comando, sólo va al siguiente espacio. ¿Ideas?
THE BEST THINGS IN LIFE ARE FREE...
JOIN THE MEDIASHARK COMMUNITY TODAY!
  • this213
  • Guru
  • Guru
  • Avatar de Usuario
  • Registrado: Mar 01, 2004
  • Mensajes: 1242
  • Loc: ./
  • Status: Offline

Nota Marzo 12th, 2006, 5:47 pm

lo que sucede si usted acaba de llamar al script propio de la línea de comandos?
  • Funny_Fuzz
  • Mastermind
  • Mastermind
  • Avatar de Usuario
  • Registrado: Ene 18, 2005
  • Mensajes: 1517
  • Status: Offline

Nota Marzo 12th, 2006, 7:13 pm

Vale! Finalmente llegué de trabajo. No obstante a través de Shell. He utilizado cPanel configurarlo automáticamente para mí. He puesto una línea de código que escribe algo en un archivo de texto cada vez que sus ejecutado, por lo que pude ver si los trabajos Cron está trabajando (que es). Ahora el único problema es: No puedo pensar en una manera para mí para arreglar el código :? . Cualquier this213 ideas?

[php] <? php

$ archivo = fopen ( "Texto. txt "," a ");
fwrite ($ archivo, "Si puedes leer esto, tarea cron está trabajando!");
fclose ($ archivo);

include ( "Config. PHP ");
$ result = mysql_db_query ($ base de datos, "select * from Member_List") or die (mysql_error ());

if (mysql_num_rows ($ resultado)) (
while ($ qry = mysql_fetch_array ($ result)) (

if ($ qry [Usuario] == "Online") (
$ time1 = $ qry [Last_Activity_Time_Hours];
$ time2 = $ qry [Last_Activity_Time_Minutes];

$ year = date ( "Y");
$ día = date ( "d");
$ mes = date ( "m");
$ hora = date ( "h");
$ minute1 = Date ( "i");
$ minuto = $ minute1 + 10;
if ($ minutos == 60) (
$ minuto = 0;

$ time3 = date ( "YMD h: i: s", mktime ($ hora, $ minuto, 0, $ mes, $ día, $ año));
)


if (($ time1 == date ( "h")) & & ($ time3 - 10 == $ time2)) (

include ( "Config. PHP ");
mysql_query ( "UPDATE SET Member_List» Usuario »=" Sin conexión ", donde Nombre de usuario = $ qry [nombre de usuario]")
or die ( "No es posible actualizar el estatuto de miembros login porque". mysql_error ());

)


)



)
)
> [/ php]
¿Qué Im tratando de hacer es, comprobar la última vez que cada usuario hizo algo en mi sitio web. Si no se ha hecho nada durante unos 10 minutos, cambiar su estado a "conectado". He recibido todo trabajo ", excepto" para el poco control que si theyre inactivo durante 10 minutos. Cualquier ayuda por favor!
THE BEST THINGS IN LIFE ARE FREE...
JOIN THE MEDIASHARK COMMUNITY TODAY!
  • this213
  • Guru
  • Guru
  • Avatar de Usuario
  • Registrado: Mar 01, 2004
  • Mensajes: 1242
  • Loc: ./
  • Status: Offline

Nota Marzo 14th, 2006, 12:22 pm

Funny_Fuzz escribió:
¿Qué Im tratando de hacer es, comprobar la última vez que cada usuario ha hecho algo en mi sitio web. Si nada se ha hecho durante unos 10 minutos, cambiar su estado a "Desconectado".

Caramba, ¿debería haber dicho eso desde el principio.

En lugar de pasar por todo esto, simplemente suelte el agua a todas las sesiones rancio Cuando se autentifica a los usuarios.

En otras palabras, cada vez que un usuario se conecta o cuando se está comprobando una sesión de usuario, sólo eliminar todos los períodos de sesiones primero rancio. Al hacerlo, usted puede simplemente sacar su todavía sesiones bueno para su "usuarios en línea" que se vea.

No sé nada acerca de su servidor de manera específica, pero en la mayoría de los sistemas * nix, si desea ejecutar un script PHP desde la línea de comandos, usted tiene que tener una línea Shebang, por lo que el script debería ser más parecida a:
Código: [ Select ]
#!/usr/bin/php
<?php

$file = fopen("Text.txt","a");
fwrite($file,"If you can read this, cron job is working!");
fclose($file);
...
?>
  1. #!/usr/bin/php
  2. <?php
  3. $file = fopen("Text.txt","a");
  4. fwrite($file,"If you can read this, cron job is working!");
  5. fclose($file);
  6. ...
  7. ?>

Y entonces el guión tiene que ser ejecutable - por lo menos el modo de 500 (que suelen hacer scripts cron 700).

En un tono ligeramente diferente, esto sería más eficiente para escribir así:
Código: [ Select ]
#!/usr/bin/php
<?php
$string = '"If you can read this, cron job is working"';
`echo $string >> Text.txt`;
?>
  1. #!/usr/bin/php
  2. <?php
  3. $string = '"If you can read this, cron job is working"';
  4. `echo $string >> Text.txt`;
  5. ?>

En lugar de usar fwrite y fopen, está utilizando las llamadas al sistema nativo (el backquotes `` son casi como hacer exec () o shell_exec () o sistema ()). Observe también que incluyo las comillas dobles entre comillas simples para que pasados a la orden echo.
  • this213
  • Guru
  • Guru
  • Avatar de Usuario
  • Registrado: Mar 01, 2004
  • Mensajes: 1242
  • Loc: ./
  • Status: Offline

Nota Marzo 14th, 2006, 12:31 pm

Lo sentimos acerca de la doble post, pero he pensado que debo mencionar también que toda vez que use un script cron, debe usar la ruta completa al archivo. Así que en lugar de "Text.txt", debería tener algo como "/ var / www / mydata / Text.txt" - o donde quiera que se almacene.

Publicar Información

  • Total de mensajes en este tema: 7 mensajes
  • Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 84 invitados
  • No puede abrir nuevos temas en este Foro
  • No puede responder a temas en este Foro
  • No puede editar sus mensajes en este Foro
  • No puede borrar sus mensajes en este Foro
  • No puede enviar adjuntos en este Foro
 
 

© 2011 Unmelted, LLC. Ozzu® es una marca registrada de Unmelted, LLC