Script als Cronjob ausführen
Hallo zusammen,
ich versuche aktuell die Apache Logs meines Servers per "goaccess" aufzubereiten.
hierzu habe ich folgendes Script erstellt:
Das Script parst alle access.log files (auch die per logrotation gezippten) und bereitet diese für die report.html auf.
Wenn ich das Script per ./script.sh aus der CMD aufrufe, wird dieses korrekt ausgeführt und die report.html Datei erzeugt.
Wenn ich das Script per crontab aufrufe, funktioniert dieses leider nicht mehr.
Hat eine/r von Euch einen Tipp, wie ich das Script anpassen muss, dass dieses auch als Cronjob sauber ausgeführt wird?
Danke
ich versuche aktuell die Apache Logs meines Servers per "goaccess" aufzubereiten.
hierzu habe ich folgendes Script erstellt:
#!/bin/bash
cd /var/log/apache2
zcat access.log.*.gz | goaccess access.log -o /var/www/html/report/report.html --log-format=COMBINED
Das Script parst alle access.log files (auch die per logrotation gezippten) und bereitet diese für die report.html auf.
Wenn ich das Script per ./script.sh aus der CMD aufrufe, wird dieses korrekt ausgeführt und die report.html Datei erzeugt.
Wenn ich das Script per crontab aufrufe, funktioniert dieses leider nicht mehr.
0 */3 * * * /opt/scripts/report.sh
Hat eine/r von Euch einen Tipp, wie ich das Script anpassen muss, dass dieses auch als Cronjob sauber ausgeführt wird?
Danke
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 657807
Url: https://administrator.de/contentid/657807
Ausgedruckt am: 20.11.2024 um 17:11 Uhr
6 Kommentare
Neuester Kommentar
Zitat von @menace:
Das Script parst alle access.log files (auch die per logrotation gezippten) und bereitet diese für die report.html auf.
Wenn ich das Script per ./script.sh aus der CMD aufrufe, wird dieses korrekt ausgeführt und die report.html Datei erzeugt.
Wenn ich das Script per crontab aufrufe, funktioniert dieses leider nicht mehr.
> #!/bin/bash
>
> cd /var/log/apache2
> zcat access.log.*.gz | goaccess access.log -o /var/www/html/report/report.html --log-format=COMBINED
>
Das Script parst alle access.log files (auch die per logrotation gezippten) und bereitet diese für die report.html auf.
Wenn ich das Script per ./script.sh aus der CMD aufrufe, wird dieses korrekt ausgeführt und die report.html Datei erzeugt.
Wenn ich das Script per crontab aufrufe, funktioniert dieses leider nicht mehr.
> 0 */3 * * * /opt/scripts/report.sh
>
/bin/zcat /var/log/apache2/access.log.*.gz | /usr/bin/goaccess access.log -o /var/www/html/report/report.html --log-format=COMBINED
Hallo,
du hast einen kleinen fehler in deinem goaccess aufruf
bzgl. dem Aufruf per cron wurde schon alles gesagt
der Rest ist den FAQ zu entnehmen
du hast einen kleinen fehler in deinem goaccess aufruf
zcat -f /var/log/apache2/access.log.* | goaccess -a -o /var/www/html/report/report.html --log-format=COMBINED
bzgl. dem Aufruf per cron wurde schon alles gesagt
der Rest ist den FAQ zu entnehmen
Moin,
Das ist die Antwort. Zur Erläuterung: Wenn Du cronjobs ausführst ist $PATH in der Regel leer. Entweder setzt man den Pfad am Anfang des Skripts oder muss eben immer den vollen Pfad auf die ausführbaren Dateien angeben. Bei so kurzen Skripts macht man eher das letztere.
hth
Erik
Zitat von @it-fraggle:
/bin/zcat /var/log/apache2/access.log.*.gz | /usr/bin/goaccess access.log -o /var/www/html/report/report.html --log-
format=COMBINED
Das ist die Antwort. Zur Erläuterung: Wenn Du cronjobs ausführst ist $PATH in der Regel leer. Entweder setzt man den Pfad am Anfang des Skripts oder muss eben immer den vollen Pfad auf die ausführbaren Dateien angeben. Bei so kurzen Skripts macht man eher das letztere.
hth
Erik