1 * * * * root php /mix/dostuff.php > "/tmp/dostuff-`date +\%Y-\%m-\%H\ \%k:\%M:\%S`.txt"
So einfach ist das.
Ich möchte jede Crontab-Ausgabe in einer separaten Datei verfolgen. Normalerweise verwende ich diesen Eintrag als crontab-Eintrag:
1 * * * * root php /mix/dostuff.php > /tmp/dostuff.txt
Jetzt möchte ich es statt machen zu schreiben /tmp/dostuff.txt
, zu/tmp/dostuff-YYYY-MM-DD-HH-II-SS.txt
Ich könnte den Datumsteil bekommen, indem ich Folgendes verwendet:
TIMESTAMP=`date +%Y-%m-%H\ %k:%M:%S`
Nun, wie stecke ich diesen TIMESTAMP in die Ausgabedatei?
1 * * * * root php /mix/dostuff.php > "/tmp/dostuff-`date +\%Y-\%m-\%H\ \%k:\%M:\%S`.txt"
So einfach ist das.
Auf CentOS 6.6 verwende ich
*/10 * * * * /usr/bin/php -q /var/www/script.php > cron-job-log-$(date +\%Y\%m\%d\%H\%M\%S).txt
Es wird alle 10 Minuten eine Datei erstellt
cron-job-log-20150401124001.txt
crontabs werden in einer anderen Umgebung als die Standard-Shell ausgeführt. Sie können also ein kleines Shell-Skript in Ihrem Home-Verzeichnis mit etwas wie dem folgenden verwenden (wir nennen es script.sh
):
#!/bin/bash php /mix/dostuff.php > /tmp/dostuff-`date +%Y-%m-%H\ %k:%M:%S`.txt exit
Ändern Sie dann die Berechtigungen dieses Skripts, um sicherzustellen, dass es ausführbar ist. 755 sollte in Ordnung sein. Dann in deiner Crontab:
1 * * * * root /home/yourusername/script.sh