Frage zu AT-Jobs

Bash, Shell, PHP, Python, Perl, CGI
kane
Posts: 82
Joined: 2002-10-04 01:22

Frage zu AT-Jobs

Post by kane » 2006-12-04 13:19

Hallo zusammen!

Folgende Anforderung habe ich an AT-Job:

Es soll ein PHP Script ausgeführt werden. Dem Script muss eine Variable angehängt werden, damit des Script den entsprechenden Eintrag in einer DB findet.

Hier der Code der Dateien:

PHP Datei

Code: Select all

#!/usr/local/bin/php
<?
$str_out = "";
for($a=0;$a<count($_SERVER['argv']);$a++)
  {
  $str_out .= $_SERVER['argv'][$a]."n";
  }


mail("meine@email.de","TEST","> ".$str_out." <","From: fhe@fe.den");
?>
Aufruf des AT-Daemons

Code: Select all

# at -f /pfad_zum_script/atjob.php -t 200612041315
Soweit funzt das alles, nur möchte ich nun der Datei "atjob.php" eine Variable übergeben, z.B. "atjob.php?test=1" oder "atjob.php test=1" oder atjob.php %1" ...
Wenn ich das so schreibe, sagt mir AT folgendes:

Code: Select all

at: bad time specification
Auch ein atjob.php %variable funzt nicht, gleiche Meldung wie eben...


Schreibe ich nun ein Shell-Script

Code: Select all

#!/usr/bin/bash
/usr/local/bin/php -f /pfad_zum_script/atjob.php 454
und füge das der AT-Queue hinzu (at -f /pfad_zum_script/atjob.sh -t 200612041315) so kann ich mittels $_SERVER['argv'] auf die übergebene Variable (hier 454) zugreifen (Variablen, die im Shell Script stehen).
Das Problem ist nun, dass ich nicht für jeden Job eine .sh Datei anlegen kann/will, da dann das Verzeichnis mit solchen Dateien zugemüllt wird. Sicher könnte ich sie nach Gebrauch löschen, aber das sollte nur der letzte Ausweg sein.

Weiß hier jemand Rat?

Danke im Voraus!

Gruß Kane

User avatar
daemotron
Administrator
Administrator
Posts: 2635
Joined: 2004-01-21 17:44

Re: Frage zu AT-Jobs

Post by daemotron » 2006-12-04 13:36

Code: Select all

at -f "/pfad_zum_script/atjob.php <parameter>" -t 200612041315

kane
Posts: 82
Joined: 2002-10-04 01:22

Re: Frage zu AT-Jobs

Post by kane » 2006-12-04 13:43

Danke für die schnelle Antwort!
Jetzt kommt allerdings die Meldung

Code: Select all

# at -f "/pfad/atjob.php tester" -t 200612041341
at: /pfad/atjob.php tester: Permission denied
Vielleicht sollte ich an dieser Stelle noch erwähnen, dass es sich um eine Sun Solaris Maschine handelt :)

Gruß Kane

kane
Posts: 82
Joined: 2002-10-04 01:22

Re: Frage zu AT-Jobs

Post by kane » 2006-12-05 11:31

Hat keiner einen Ansatz?

User avatar
Joe User
Project Manager
Project Manager
Posts: 11138
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Frage zu AT-Jobs

Post by Joe User » 2006-12-05 12:24

Ohne Solaris jemals genutzt zu haben, gehe ich mal davon aus, das die Rechte für das Script auf 0755 gesetzt sein müssen (Permission denied).
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

kane
Posts: 82
Joined: 2002-10-04 01:22

Re: Frage zu AT-Jobs

Post by kane » 2006-12-05 13:12

Das Script hat bereits, zu Testzwecken, die Rechte 777 ...
Daran kann es also nicht liegen.
Außerdem lässt sich das Script ja in die atq eintragen... nur bei der Angabe einer Variablen kommt dann Permission denied ...

Sonst noch jemand Vorschläge?

User avatar
Joe User
Project Manager
Project Manager
Posts: 11138
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Frage zu AT-Jobs

Post by Joe User » 2006-12-05 13:17

Funktioniert es eventuell mit ' statt "?

Code: Select all

# at -f '/pfad/atjob.php tester' -t 200612041341
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

Roger Wilco
Administrator
Administrator
Posts: 5924
Joined: 2004-05-23 12:53

Re: Frage zu AT-Jobs

Post by Roger Wilco » 2006-12-05 13:21

Kane wrote:Sonst noch jemand Vorschläge?

Code: Select all

at -t 200612041341 /pfad/atjob.php -- tester