Geplante Tasks (Cron jobs) für PHP Applikationen sollten einem spezifischen Benutzer ohne root Berechtigungen zuordnet werden, also zum Beispiel www-data. So verhinderst du unter anderem, dass bei einem System Update die geplanten Tasks für root überschrieben werden.
1. Apache user suchen
Den Benutzer welcher von Apache verwendet wird, kannst du aus der Prozessliste entnehmen.
1 2 3 |
$ ps axo user,group,comm | egrep '(apache|httpd)' root root apache2 www-data www-data apache2 |
2. Tab editieren
Editiere den crontab mit der Option -u und dem Benutzer welcher von Apache verwendet wird. Dieser Befehlt erstellt eine Benutzerspezifische Datei in /var/spool/cron/crontabs/.
1 |
$ crontab -u www-data -e |
Füge deinen Cronjob ein und speichere alle Änderungen mit CTRL-O.
1 2 3 4 5 6 7 8 |
# For example, you can run a backup of all your user accounts # at 5 a.m every week with: # 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/ # # For more information see the manual pages of crontab(5) and cron(8) # # m h dom mon dow command */5 * * * * /bin/sh /var/www/{{{magento}}}/cron.sh |
3. Syslog überprüfen
Anschliessend kannst du schauen ob dein Cronjob korrekt ausgeführt wird.
1 |
$ grep CRON.*\(www-data\) /var/log/syslog |