crontab einrichten

Mit VI kann nich jeder um! ;)
Code:
export $EDITOR=/usr/bin/joe
 
ist mit der crontab -e eingerichtet jedoch tut sich immernich nichts in der test.txt

cronscript:

Code:
PATH=$PATH:/usr/local/bin:/usr/bin:/usr/sbin:/bin
SHELL=/bin/bash
*       *       *       *       *       root    ./test

Script:
Code:
#!/bin/sh
DATE2=`date +%M`
echo $DATE2 >> test.txt


ist da den etwas falsch?
 
Mit VI kann nich jeder um! ;)
Code:
export $EDITOR=/usr/bin/joe

Mit joe schon garnicht ;)

PATH=$PATH:/usr/local/bin:/usr/bin:/usr/sbin:/bin
SHELL=/bin/bash
* * * * * root ./test
Du solltest schon wenigstens eine Zeit-Spalte ausfüllen.

Erganze mal deine Crontab um die Mail deines Users:
Code:
MAIL=<dein-username>

Gib in deinem Script immer volle Pfade für die Eingabe und Ausgabe an.
Bedenke, dein Script steht in keinem Verzeichnis.
Code:
#!/bin/sh
cd /tmp
echo "das ist ein test"
DATE2=`date +%M`
echo $DATE2 >> test.txt

Dann findest du alle Ausgaben in /tmp/test.txt. Auch die Fehlerausgaben!

Die Ausgabe von echo kannst du lesen in deinem User-mail.
Code:
# als User:
mail

Gruß Wolfgang
 
im tmp erscheint immernoch nichts...


cron:
Code:
PATH=$PATH:/usr/local/bin:/usr/bin:/usr/sbin:/bin
SHELL=/bin/bash
MAIL=root
59,0,1,2,3,4,5,6,7,8,9  *       *       *       *       root    /tmp/test.sh

test.sh:
Code:
#!/bin/sh
cd /tmp
echo "das ist ein test"
DATE2=`date +%M`
echo $DATE2 >> test.txt
 
Wenn du die crontab als root mit crontab -e einrichtest, dann wird eine crontab für root erstellt.
Das ist nicht die Systemcrontab.
Deshalb ist das Feld root auch nicht zu belegen.

Lass einfach root weg.

man crontab

Gruß Wolfgang
 
hallo, ich kann in meinem cronjob keine SHELL und PATH definieren. kriege dort folgende Fehlermeldung

Code:
SHELL=/bin/sh
crontab: error on previous line; unexpected character found in line.
PATH=/sbin:/bin:/usr/sbin:/usr/bin
crontab: error on previous line; unexpected character found in line.
crontab: errors detected in input, no crontab file generated.

warum? anscheindend klappt das bei allen anderen und wird auch im Internet so beschrieben, das man die SHELL und PATH angeben kann. Es ist ja nicht zwingend oder!?


PS: Meine Cronjob sieht folgendermassen aus:
Code:
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin

03 17 * * 2 /test/test.sh
 
Zuletzt bearbeitet:
Hallo
Wie erstellst du denn die crontab?
Könnte es sein, dass da falsche Zeichencodes eine Rolle spielen?
(Windows Zeilenende wird es ja wohl nicht sein können?)

Wolfgang
 
ich habe mit dem vi-Editor die Datei cron.sh Datei erstellt.
Dann habe ich den Befehl
Code:
 crontab cron.sh
ausgeführt.
Mit
Code:
 crontab -l
wird mir mein Cronjob angezeigt.

Ich kann mir nicht vorstellen, das es Zeichencodes als Fehlerursache ist.

PS: ich kann mit dem Befehl
Code:
 crontab -e
kein cronjob erstellen, weil ich einen anderen Editor bekomme als den vi und da habe ich keien Ahnung wie ich die Datei abspeichern soll.
Hab auch schon versucht den Standartediort als vi-Editor einzustllen(mit set und export Editor=vi etc....) aber klappt nicht. Daher gehe ich so vor wie ich es oben beschrieben hab
 
Zuletzt bearbeitet:
Hallo

crontab -e ist die sauberste Lösung.

Um diese mit vim zu öffnen:
Code:
export EDITOR="/usr/bin/vim"
in deine ~/.bashrc (falls du bash verwendest)
Anschließend source ~/.bshrc
Dann versuch es nochmal.

Hast du vim installiert?

Gruß Wolfgang
 
wie gesagt klappt das mit dem export EDITOR auch nicht mit set EDITOR nicht.
Bekomme nach wie vor nicht den vi obwohl ich mit echo $EDITOR die Bestätigung für den vi bekomme.
wenn ich crontab -e eingebe bekomme ich in der ersten Zeile des Editors die Zahl "302". Wenn ich Enter drücke bekomme ich immer ein Fragezeichen. Und abspeichern kann man es auch nicht
 
Bekomme nach wie vor nicht den vi obwohl ich mit echo $EDITOR die Bestätigung für den vi bekomme.
Dann ist vi auch noch in der Variable definiert. Hast du dich auch neu angemeldet?
 
@ wolfgang

sorry, hab vi gelesen und nicht vim. vim habe ich nicht auf dem rechner. zudem arbeite ich mit der csh und nicht bash.

@ buli

ja habe mich neu angemeldet aber bringt nix.
 
@ wolfgang

sorry, hab vi gelesen und nicht vim. vim habe ich nicht auf dem rechner. zudem arbeite ich mit der csh und nicht bash.

Nett, dass du das nun auchmal erwähnst.

Dann nimm halt die ~/.cshrc und anschließend source ~/.chsrc
Das spart das Neuanmelden.
Das OS ist nun auch ein Geheimnis.

So kann ich wenig helfen.

cu Wolfgang
 
hi

sorry das ich erst jetzt wieder antworte. aber ich arbeite 2 mal die woche im institut und habe außerhalb keine rechte auf das system, daher konnte ich nix ausprobieren.

das mit dem vi-Editor klappt nach wie vor nicht.
Habe jetzt herausgefunden, das es sich bei dem anderen Editor um den ED-Editor handelt.
http://www.netzmafia.de/skripten/unix/unix5.html
nachdem ich mit "crontab -e" versuch eine neue Datei zu erzeugen habe ich jetzt folgendes problem:
ich kann zwar mit "w Dateiname" die Datei erzeugen aber wenn ich "q" für Beenden eingebe, bekomme ich die Meldung : "crontab: temporary file empty"

die Datei existiert aber ohne Inhalt.
wie kann ich bei dem ED-Editor "Speichern + Beenden" erzwingen? Ein Befehl dafür habe ich nicht gefunden.

PS: Ich arbeite auf einer Solaris Maschine.

nochmal PS: jetzt fällt mir auf, das ich mit der ürsprüglichen Variante (also die Datei mit vi-Editor erzeugen, mti crontab Dateiname speichern) auch Probleme habe. Mein Cronjob wurde erstellt, weil mit cronjob -l, die Datei angezeigt wird, aber sie wird nicht mehr ausgeführt.
Kommt das jetzt von den ganzen Einstellungen wie export Editor oder ~/.cshrc usw ????
 
Zuletzt bearbeitet:
Hi Wollfgang,

tut mir leid, aber ich gehe dir glaube ich langsam auf die Nerven :headup:

vielleicht habe mich unverständlich ausgedrückt.

ich konnt ja bis jetzt mit "crontab -e" kein cronjob definieren, weil ich mit dem ed-Editor den ich im anschluss bekomme, die Datei nicht abspeicher kann.

Diesbezüglich habe ich erst mit dem vi-Editor eine Datei erzeugt (z.b. test.sh), diese mti "crontab test.sh" erzeugt. Mittels crontab -l wird auch mein crontab angezeigt. Bis vor einer Woche wurde auch mein Script via Cronjob ausgeführt.

Aber heute stelle ich fest, das obwohl mein Crontab mittels "crontab -l" angzeigt wird, nicht ausgeführt wird.

Die SHELL und PATH kann ich nach wie vor nicht in meiner test.sh definieren.

Und auf der Mainpage von SunOS steht ja auch nix besonderes. Da steht alles was auch hier im Forum steht :)

gruß

noob222
 
Hallo
Exakt zu deinem Problem steht da z.B.
...
EDITOR

Determine the editor to be invoked when the -e option is specified. The default editor is ed(1). If both the EDITOR and VISUAL environment variables are set, the value of the VISUAL variable is selected as the editor.

Und weiter:
The shell is invoked from your $HOME directory with an arg0 of sh. Users who desire to have their .profile executed must explicitly do so in the crontab file. cron supplies a default environment for every shell, defining HOME, LOGNAME, SHELL(=/bin/sh), TZ, and PATH. The default PATH for user cron jobs is /usr/bin; while root cron jobs default to /usr/sbin:/usr/bin. The default PATH can be set in /etc/default/cron; see cron(1M).

Alles gefunden auf den von mir vorgegebenen link.

Gruß Wolfgang
PS Es geht nicht darum dass du mir auf die Nerven gehst, wundere mich nur über die Probleme mit der Manpage im Zusammenhang mit Sun Nutzern.
 
Hi Wolfgang,

vielleicht kannst du mir jetzt helfen oder die anderen :-)

1. Montag hatte ich ja gesagt gehabt, das mein Cronjob nicht mehr läuft. Weder mit "crontab -e" noch auf die andere Arte.

hierzu: Heute lief mein Cronjob wunderbar. Mit crontab -e habe ich mein Cronjob definiert und es hat geklappt. Auch mit dem Editor vi hat es geklappt.
Aber nachdem ich mein Cronjob heute 5 mal mit "crontab -r" gelöscht habe, funktioniert der Cronjob nicht mehr.
Kann es daran liegen, das man nicht all zu sehr an einem Tag ein Cronjob mehrmals löschen soll? Weil am Montag hatte ich auch mein Cronjob mehrmals gelöscht gehabt und es klappt dann nicht mehr!

2. Auch die SunOS Mainseite hat mir nicht geholfen, um meine PATH in meinem Cronjob zu definieren. Aber vielleicht brauche ich das ja auch nicht.

3. Vielleicht weisst du noch, das mein ürsprügliches Problem daran lag, das ich kein Datenbank-Dump exportieren konnte (manuell ging es ja aber nicht per Cronjob). Es handelt sich hierbei um eine Oracle-Datenbank.
Das Problem ist, das er diesen "exp" Befehl nicht ausführen kann. Als Fehlermeldung kam, das er diesen "exp" Befehl nicht finden kann.

Zu Erinnerung:
Code:
exp $ DB_USER/test@$SID file=$BACKUP/$DB_EXPORTFILE log=$BACKUP/$LOG_DBEXPORTFILE statistics=none compress=yes

Diesbezüglich steht in der Mail folgendes: " Verify that ORACLE_HOME is properly set"

mit
Code:
 echo $ORACLE_HOME
bekomme ich
Code:
 /oracle/OraHome1

4. Zudem befindet sich dieser "exp" im Folgendem Verzeichnis:
Code:
 /oracle/OraHome1/bin/exp

da ich ja in meinem Cronjob kein PATH eingeben kann, wollte ich fragen ob ich in meinem Script den Pfad so definieren kann, damit er ORACLE_HOME bzw den "exp" finden kann?

Code:
 PATH=/oracle/OraHome1:/oracle/OraHome1/bin/exp


PS: Da ich ja (nachdem ich mehrlas die Cronjobs gelöscht habe) kein Cronjob mehr zum laufen bringen kann, habe ich in der Mail als Fehlermeldung folgendes entnommen:

Code:
/hier/der/pfad/zum/pfad/meines/scriptes/test.sh: df: not found
/hier/der/pfad/zum/pfad/meines/scriptes/test.sh: grep: not found
/hier/der/pfad/zum/pfad/meines/scriptes/test.sh: awk: not found
/hier/der/pfad/zum/pfad/meines/scriptes/test.sh: date: not found
/hier/der/pfad/zum/pfad/meines/scriptes/test.sh: test: argument expected

hierzu:
df, grep und awk benutze ich für zusätzliche Speicherabfrage in meinem Script. Diese Fehlermeldung taucht aber auch nur auf, weil mein Cronjob nicht läuft (vermutlich wegn dem mehrmaligem löschen )

mfg
 
Hallo Zusammen

Hab da mal ne Frage, weiss nicht mal genau ob die hier hin passt.
Ich möchte ein CronJob erstellen, aber das funktioniert irgendwie nicht.

ich gebe also als root crontab -e ein,
dann gebe ich folgende Befehle ein:

Code:
0     5     *     *     *     root     mkdir /usr/home/svn/repos/MyFirstProject
30     5     *     *     *     root     svnadmin hotcopy /usr/home/svn/repos/MyFirstProject /usr/home/svn/backup/MyFirstProject

Und dann muss ich doch nur noch warten bis fünf uhr morgens ist oder?
aber es passiert rein gar nichts.

Gruss
DarkAngelw
 

Ähnliche Themen

Läuft eine Unix-Variante auf PC aus dem Jahr 2015, der nicht Windows-11-fähig ist?

chown Befehl in einem Script

NAS-Drive Mount in Bash-Script über crontab

Keine Anmeldung bei phpmyadmin möglich!

Keine grafische Oberfläche (Debian Installation)

Zurück
Oben