Cronjob erstellt 2 Dateien...

XamBonX

Commander
Registriert
Nov. 2002
Beiträge
3.021
Ich habe einen test.sh mit

Bash:
#!/bin/bash
date >> /home/admin/scripts/cron.log.txt ; echo "app01 hat erfolgreich den cronjob in test.sh ausgefuehrt" >> /home/admin/scripts/cron.log.txt

im crontab -e
Bash:
# Alle 10 Min., laut cron.log erfolgreich!
*/10 * * * * sudo sh /home/admin/scripts/test.sh

Am Laufen!

Auf einem Server erstellt er mir eine cron.log.txt mit Datum, und den Text in neuer Zeile. Auf einem anderem Server erstellt er mir eine cron.log.txt mit Datum, und eine cron.log.txt? mit Text aus dem echo "xxx".

Was mache ich falsch?
 
Entweder ist auf beiden Servern der Inhalt von test.sh unterschiedlich oder der crontab Eintrag.
Achte auf jedes Zeichen ...
 
Vor allem am Ende der Zeile...

Btw: Man könnte es auch bestimmt so umbauen, dass alles in einem echo-Befehl gemacht wird, um die Einträge in eine Zeile zu bekommen.
 
Darf man fragen warum das Datum überhaupt in einer eigenen Zeile stehen soll? Dadurch wird die Filterung der Log-Datei nicht gerade einfacher, weil du zB bei grep dann standardmäßig immer nur die Datumszeile bekämst, aber nicht die Message dazu oder eben andersherum. Da wäre es doch sinnvoller, das Log so zu gestalten, dass eine Zeile so aussieht:

<Datum><TAB><Message>

Somit hättest du so oder so nur ein echo und cron kann - egal auf welchem System - auch nur eine Datei ausgeben.
 
Weil das erstmal nur ein Test ist, es wird normal nur 1 mal am Tag ausgeführt, dann steht da

<Datum>
<Elend Lange Liste von Einträgen>
<Nächstes Datum>
<Elend Lange Liste von Einträgen>
<Nächstes Datum>
<Elend Lange Liste von Einträgen>
<Nächstes Datum>
<Elend Lange Liste von Einträgen>

Ich will nicht zu jedem Eintrag von <Elend Lange Liste von Einträgen> davor ein <datum> haben, sondern einmal bevor die Einträge starten.
 
Verstehe, es wurde aus deinem Beispiel nicht klar, dass du das Datum nur einmal schreiben willst und anschließend mehrere Messages.

Erklären kann ich mir das Verhalten aus deinem Beispiel aber trotzdem nicht. Hast du den Dateinamen im Skript geprüft ob da evtl. ein Sonderzeichen beim zweiten Mal hinter ist? Evtl. den Dateinamen in einer Variable speichern, das vermeidet Tipp- oder sonstige Fehler von vornherein.
 
Nah, hat sich auch erledigt das Thema hier. Ich war zu blöd und habe die test.sh mit WinSCP übertragen, aber natürlich als Binärdatei statt Text. Einfach neue sudo nano test.sh gemacht und nu luppts.

Da fällt mir ein: Kann ich das irgendwie mit einem terminal befehl testen, ob die Datei nun die richtige ist? Also text statt binär oder so.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Raijin
Zurück
Oben