Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hi,

Ich hab hier einen Linux Server mit Redhat9A drauf. Hab ein kleines Shellscript geschrieben, das die syslog datei in einen bestimmten Ordner kopieren soll. Funktioniert auch wunderbar. Also wollt ich das ganze per cronjob jeden tag einmal machen lassen. hab also: crontab -e eingegeben, und dann folgendes reingeschrieben:

33 12 * * 2 /etc/myscript/dummabua3.sh

also sollte er doch heute (2 = Tue= Dienstag) um 12.33 diese "dummabua3.sh" starten oder? macht er aber nicht. Bin ich zu dumm oder habe ich einen denkfehler drin und sehe den wald vor lauter bäumen ned.

PS: bin linux anfänger, also bitte auf "äpfel und birnen" niveau erklären :D

denk mal schon....

wenn ich "top" eingebe, dann steht u.a das drin:

1631 root 15 0 524 520 448 S 0,0 0,0 0:01 0 crond

Hast du den Cron-Deamon auch neu gestartet?! :rolleyes:

Wenn ja, dann versuch das ganze mal in die globale "crontab" einzutragen. Diese steht unter '/etc/crontab'...

Peet

alles quatsch mit Soße, wazu den Crond neu starten???

Das brauchts alles nicht, ebefalls keinen Eintrag in die Systemweite-Crontab.

1. Überprüfe deine Systemzeiten

2. Welche Shell benützt der Cron? sh oder bash oder ganz was anderes?

3. Funktioniert dein Shellskript auch unter dieser Shell?

4. Ist dein Skript überhaupt ausführbar?

5. Wird der Pfad zu dem Skript gefunden? ($PATH)

6. Bekommst du irgendwelche Fehlermeldungen? (syslog, stderr)

7. Kannst du Fehlermeldungen via Mail abfangen/erhalten?

Setz doch eventl. mal folgendes ganz oben in deine crontab (wenn so was ähnliches da nicht schon steht):

SHELL=/bin/bash

PATH=/usr/bin:/bin:/usr/local/bin:/usr/lib/java/bin:/etc/myscript/

MAILTO=username <- bzw. root

Ich muss dazusagen, dass die Lösung deine Shellskripte nach /etc/myscript zu packen nicht sehr sinnvoll ist...aber das bleibt halt jedem selbst überlassen (ich würds z.B. in /home/dummabua/bin packen.

33 12 * * 2 /etc/myscript/dummabua3.sh

noch was zur Übersichtlichkeit und um zu vermeiden dass das/der Skript/Kommandoname an der Zeitdefinition hängt mach doch mal nen Tabulator dazu:

33 12 * * 2[TAB]/etc/myscript/dummabua3.sh

Noch was - solange das Skript nicht allzu heftig ist, könntest du das Kommando auch direkt in die Crontab hacken. Du schreibst du kopierst und da du ebenfalls schreibst du bist Neuling, denke ich nicht dass es sich um ein umfassendes Skript handelt. Ich schließe daraus, dass dein Skript in etwa so geht:

#! /bin/bash

cp /var/log/syslog/* /home/dummabua/huhu/

Wenn dies der Fall ist, kannst du es genauso gut in die Crontab schreiben. (Als Tipp -> # damit wird definiert dass es sich um Kommentar handelt und du könntest dann etwas dazuschreiben, damit auch jeder andere Sysadmin weiß (wenn du mal krank, etc bist) was da gemacht wird. Deine Cronzeile könnte dann so aussehen:

# Jeden Dienstag um 12:33 Uhr, wird /var/log/syslog gesichert

33 12 * * 2[TAB]cp /var/log/syslog /var/log/syslog-bak/

so, ich komm leider erst jetzt zum lesen, also:

1. Überprüfe deine Systemzeiten

die systemzeit stimmt

2. Welche Shell benützt der Cron? sh oder bash oder ganz was anderes?

bash

3. Funktioniert dein Shellskript auch unter dieser Shell?

wenn ich es per hand starte, dann läufts

4. Ist dein Skript überhaupt ausführbar?

siehe antwort drüber

5. Wird der Pfad zu dem Skript gefunden? ($PATH)

wie äusert sich dass, wenn nicht?

6. Bekommst du irgendwelche Fehlermeldungen? (syslog, stderr)

nein, gar nichts. es steht auch nichts in der syslog drin, das irgendein cron gemacht wurde

7. Kannst du Fehlermeldungen via Mail abfangen/erhalten?

hab ich noch nicht probiert.

Das mit den Kommentaren hab ich schon gelesen, hab auch fleisig kommentiert :D, aber es läuft immer noch ned per cron... hab die kopfzeile mal ergänzt, wie du es mir gesagt hast, hat aber auch nichts gebracht. Hab ich vielleicht irgendetwas total simples vergessen, des, wie wir informatiker immer sagen "doch total logisch" is?

Am besten alle Befehle mit absoluten Pfaden aufrufen! Wirklich ALLE Befehle mit absoluten Pfaden. Ich hatte mal einen vergessen und schon ging's nicht mehr unter der bash.

Peet

ja schon klar. aber wenn die Umgebungsvariable $PATH gesetzt ist bzw. auf den Pfad gesetzt ist, wo das Skript liegt, dann darf eigentlich nichts schief gehen. Aber vorsichtshalber würde ich auch grundsätzlich erstmal alle Kommandos mit kompletten Pfad angeben.

nurn kurzer Nachtrag:

Also, nachdem ich Absolute Pfade ein meinem Script verwendet habe, hat es funktioniert. Thanx @ All

Ach in deinem Skript - naja soweit habe ich natürlich nicht gedacht. Dann stimmt deine $PATH nicht in der .profile

Du könntest aber auch in deinem Skript die $PATH Variable setzen, dann brauchst du keine kompletten Pfade. Whatever...es tut und das ist die Hauptsache

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.