Jan Novak:
> kann mir jemand sagen, warum das hier unter Linux nicht funktioniert:
>
>
> $cmd='echo "test>/tmp/test.txt" | at 10:50';
> echo shell_exec($cmd);
Bedeutet:
1) Führe folgendes Kommando aus:
echo "test>/tmp/test.txt"
2) Leite stdout an dieses Kommando weiter an:
at 10:50
> # gleiches mit
> exec($cmd);
>
> (wobei die Zeit im php später variabel geändert werden wird)
>
> Anstatt den Befehl um 10:50 auszuführen wird er immer sofort ausgeführt,
> aber dennoch ein atq Eintrag ohne den eigentlichen Befehl erstellt.
Definiere "ausgeführt". Wird /tmp/test.txt erstellt?
> Auf der (linux) Konsole funktioniert der Befehl.
Auch da bedeutet es nichts anderes, als eben ein echo auszuführen und
das Ergebnis von stdout an at weiterzuleiten. Das Ergebnis wäre, dass in
at folgendes Kommando landet:
test>/tmp/test.txt
Wenn Du at sagen willst, dass um 10:50 ein echo-Befehl ausgeführt werden
soll, der etwas nach /tmp/test.txt schreiben soll, wäre das wie folgt:
echo 'echo "test>/tmp/test.txt"' | at 10:50
--
Arno Welzel
https://arnowelzel.de