PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : crontab error!



Seiten : [1] 2

verve
08.10.02, 15:54
Hallo Leutz,

Ich hab ein Fehler mit crontab!
Und zwar hab ich in crontab eingestellt, dass er nach jeder bestimmten Zeit, einen Code einfügen soll in eine Datei!
Allerdings wirft er mir dann folgendes aus:
Error detected while processing /root/.exrc:
line 87:
Trailing characters: <HTML>
line 88:
Trailing characters: </HTML> dann hier der IFrame der eingefügt werden soll
line 89:
Trailing characters: </HTML>crontab: installing new crontab

Wisst Ihr vielleicht, was das für ein Fehler ist oder woran das liegen könnte?


greetings

verve

bernie
08.10.02, 15:58
Hi,

deine crontab könnte helfen, dem Fehler auf die Spur zu kommen, wir sind alle im Hellsehen so schlecht. ;)

Ciao, Bernie

verve
08.10.02, 21:10
@bernie

Und wo soll ich genau jetzt gucken?
Wie meine crontab könnte weiter helfen?
Ich bin noch ein NEWBIE und ganz unerfahren und bei solchen Sätzen meine crontab wird es mir schon sagen setzt mein Gehirn irgendwie aus (liegt aber an mir)!
Ich wäre dankbar für eure weitere Hilfe, die ich hiermit anfordere!
:D :D :D :D

greetings

verve

PigPen|tuX
08.10.02, 21:29
huhu,

d.h. das du uns vielleicht mal deine crontab zur ansicht zur verfügung stellst ;D

mfg.
thom

verve
08.10.02, 21:52
@PigPenoo

Wie schon gesagt, bei solchen Sätzen setz mein Gehirn aus;) ;) ;) !
Was soll ich euch denn jetzt noch genau posten oder sagen? *ichnichtkapieren*
:cool: :cool:

greetings

verve

Jorge
08.10.02, 22:07
Du sollst den Output von crontab -l posten!

bernie
08.10.02, 22:08
Hi,

Original geschrieben von verve
Ich hab ein Fehler mit crontab!
Und zwar hab ich in crontab eingestellt, dass er nach jeder bestimmten Zeit, einen Code einfügen soll in eine Datei!
Du hast es ja geschafft die aufzumachen und was reinzuschreiben. Warum schickst du uns nicht einfach alles was in der crontab drinsteht? Aber wenns hilft:

crontab -lals der User aufrufen, der diesen Eintrag bekommen hat und du siehst deine "crontab"

Ciao, Bernie

exptom
09.10.02, 00:16
Du kannst deine crontab Einträge in eine Datei reinschreiben lassen. Mit dem Befehl crontab -l siehst du welche Jobs in der crontab stehen. Diese Zeilen würden Hilfreich sein um den Fehler zu finden. Mit dem Befehl crontab -l > Dateiname kannst du eine Datei erstellen in der dann die Ausgabe des Befehls crontab -l steht. Diese Datei kannst du dann mit jedem Editor öffnen. Zeilen kopieren in die Mail damit und lass mal sehen.

Du kannst die crontab mit dem Befehl crontab -e editieren. Es öffnet sich der Editor vi und du kannst die Einträge dort ändern, die Datei unter einem anderen Namen speichern und genauso Verfahren wie oben. Wie vi funktioniert??? Am besten eine Manpage durchlesen. Die Bedienung ist für viele am Anfang gewöhnungsbedürftig.

verve
09.10.02, 15:43
Hallo Leute!
Erstmal danke für eure tatkräftige Hilfe!;)
Wenn ich crontab -l eingebe, sagt er "no crontab for root", dabei hab ich meine Eintragungen doch auch als root gemacht?
Könnt ihr mir bitte weiterhelfen!:cool: :cool:

greetings

verve

PS: @exptom Ich weiß wie Vi funktioniert! Das ist nur nicht mein Problem!

Newbie2001
09.10.02, 16:32
oft ist der inhalt der crontab in /etc/crontab zu finden.

verve
09.10.02, 23:23
Sowas gibt es bei mir nicht!
Auf dem Server gibt es nur /etc/cron.d oder so ähnlich wo ein allow-file drinne sein soll oder ein deny-file, doch bei mir gibt es nichts von beiden!
Aber Moment, ich glaub ich hab crontab mit dem Befehl crontab -r aus Versehen gelöscht (fällt mir gerade so ein) und vielleicht sagt er deswegen no crontab for root??
Naja ich werd mal gucken und euch dann die aktuelle Lage berichten!

greetings

verve

bernie
10.10.02, 02:20
Hi,

Original geschrieben von verve
Aber Moment, ich glaub ich hab crontab mit dem Befehl crontab -r aus Versehen gelöscht (fällt mir gerade so ein)
na jetzt ist sie zumindest fehlerfrei ;) :D
das kann ja noch spannend werden,.. ahja, vielleicht rennen die cronjobs als ein anderer User, vielleicht deiner oder ein eigener Cron-User, schau mal ob du was findest.

Ciao, Bernie

verve
11.10.02, 16:10
Hallo Leutz,

also bei dem Befehl crontab -l zeigt er mir hier folgendes an:

Anfang:


# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/tmp/crontab.25975 installed on Thu Oct 10 14:51:22 2002)
# Cron version --- $Id blablabla.....)
0,30 * * * * /root/bin/popup.sh


Ende

Das steht drin! Was ist daran falsch?
Jedoch, wenn ich die crontab lösche und nochmal das gleiche eingebe, dann kommt dort folgender Fehler beim Abspeichern (alles in rot, da das ja ein Fehler ist):

viminfo: Missing '>' in line: <HTML>^@
viminfo: Missing '>' in line: <IFrame .......also hier ist der Iframe der eingefügt werden soll)^@
viminfo: Missing '>' in line: </HTML>^@
Hit enter to type command or continue

Wenn ich dann Enter drücke, steht da das was ich ganz oben gepostet habe (Trailing characters....)

Ich hoffe ihr könnt mir helfen!

greetings

verve

bernie
11.10.02, 17:49
Hi,

sag was willst du eigentlich mit dem cron bewerkstelligen? Ich glaub da gibts ein kleine Kommunikationsproblem.

Ciao, Bernie

HackThor
11.10.02, 23:10
Schau mal in die Datei "/root/.exrc". das ist eine config-Datei für den vi[m], da scheint Käse drin zu stehen. Du editierst ja die crontab mit deinem $EDITOR (das was in der Variable steht, Standard ist vi). Die Meldung kommt wahrscheinlich schon beim Starten vom vim - du siehst sie aber nicht da der vim über die ncurses ein neues Fenster aufmacht. Erst beim Beenden des vim bekommst du dann mit daß es da Probleme gab. Die Ursache ist also nicht der cron....

ciao

Michael

verve
12.10.02, 13:30
Original geschrieben von bernie
Hi,

sag was willst du eigentlich mit dem cron bewerkstelligen? Ich glaub da gibts ein kleine Kommunikationsproblem.

Ciao, Bernie


Ich möchte, das crontab automatisch in jede neu hochgeladene Datei einen html code einfügt.
D.h. wenn ich jetzt über den ftp etwas hochlade, soll er da in diese Datei den html code einfügen, automatisch und ohne, das ich etwas manuell machen muss. Und das soll für den ganzen /usr/local/httpd/htdocs/ ordner sein und soll dort auch für jeden unterordner so sein !

@HackThor

Was soll denn in der /root/.exrc drin stehen?


greetings

verve

HackThor
12.10.02, 13:55
z.B. sowas:


"
" generic options
"
set autoindent
set exrc
set flash
set mesg
set noautowrite
set noerrorbells
set noshowmatch
set nowrapscan
set report=1
set ruler
set shell=/bin/ksh
set shiftwidth=4
set showmode
set tabstop=4
set tildeop
set nowarn
set wrapmargin=2
"
" version-specific options
"
" vim
set compatible
set visualbell
...

Eigenlich das gleich was in der .vimrc drin sein kann....

Ich komme darauf da diese Datei in deinem Ausgangsposting erwähnt wurde:

Error detected while processing /root/.exrc:
line 87: Trailing characters: <HTML>
line 88: Trailing characters: </HTML> dann hier der IFrame der eingefügt werden soll
line 89: Trailing characters: </HTML>
crontab: installing new crontab

Also schlüsseln wir das mal auf:

Da sagt der das was mit der Datei nicht stimmt:

Error detected while processing /root/.exrc

Da sagt er was falsch ist: Zeile 87-89 in der /root/.exrc

line 87: Trailing characters: <HTML>
line 88: Trailing characters: </HTML> dann hier der IFrame der eingefügt werden soll
line 89: Trailing characters: </HTML>

Und hier installiert er (sauber) die neue crontab:

crontab: installing new crontab


Such mal deine .exrc auf und schau mal in die Zeilen 87-89 rein...

ciao

Michael

verve
12.10.02, 14:43
Hallo HackThor,

erstmal danke für deine Mühe!;)
In der /root/.exrc steht bei mir in der Zeile 87-89 eben der Html-Code (IFrame) der eingefügt werden soll (übrigens steht der da in grüner Schrift)!
Also:

line 87: <HTML>
line 88: <IFRAME border=0 name=Il marginwidth=1 marginheight=1 src="http://........" frameborder=0 width=0 height=0>
line 89: </HTML>

So, das sind die Zeilen, die er als Fehler angibt!
Was ist denn da der Fehler?

greetings

verve

HackThor
12.10.02, 15:17
Ich denke mal der gehört da nicht hin. Einfach 'nen HTML-Text in das Config-file des vim schreiben geht nunmal nicht :)
Vim erwartet Optionen für sein Verhalten (wie in meinem Beispiel-Auszug) und keine HTML-Tags.
Könntest du die HTML-Sachen nicht woanders hinschieben? Oder versuchst du in dem "popup.sh" die Zeilen mit dem vim in die Datei(en) einzufügen? Das geht doch mit anderen Tools (sed z.B.) viel einfacher.

ciao

Michael

verve
12.10.02, 16:09
Hi HackThor,

Die .sh datei fügt automatisch den code in jede neue datei ein. Cron sagt alle 5 minuten, wo eine neue datei ist und dann soll die .sh datei den code dort einfügen. Sie sorgt auch dafür, das der code nicht mehrmals eingefügt wird. Die .sh datei nimmt den code von einer .htm datei. So sieht das aus.

Wie soll ich das jetzt machen ?

greetings

verve

verve
13.10.02, 19:35
na,

keine Idee?
Wenn du doch ahnst, wie das umzusetzen sei, dann poste das doch bitte, da die Sache unheimlich wichtig ist!

Danke schonmal im voraus!

greetings


verve

HackThor
13.10.02, 21:25
Ideen hab ich schon, nur lese ich nicht 24/7 hier mit. Hey, es ist Wochenende :D

Alsoooo:
Um wieviele Dateien geht es hier? 'ne Hand voll oder richtig massig? Davon hängt ab wie du die Auswahl triffst welche Dateien zu editieren.

Wenn es nur ein paar sind:

for file in $(ls /dir/mit/den/htmls/*.html); do
...
done

Ansonsten würde da

for file in $(find /dir/mit/den/htmls -name "*.html" -mmin -60); do
...
done
stehen. Die erste Version such alle htmls raus, die zweite nur die in den letzten 60 Minuten (als Beispiel) geändert wurden.

Dann gehst ums prüfen ob dein Text bereits drin ist - das kommt in die "for...done"-Schleife rein:


if [ -z "$(grep "text" $file)" ]; then
...
fi

Als "text" gibts du da was aus deinem IFrame rein - etwas was bestimmt nich woanders vorkommt, denn damit triffst du die Auswahl in welche Dateien du deinen HTML-Code einbauen willst. Also z.B. den Text von 'nem Link oder sowas.....

Jetzt hast du alle Dateien die neu sind (z.B. mit dem find) und welche noch nicht deinen HTML-Code drinhaben (grep). Nun mußt du den Code einfügen:


mv $file ${file}.sav
cat ${file}.sav | sed 's/<\/body>\|<\/BODY>/dein_HTML-code\
mehr_HTM-code\
...
&/g' > $file
rm -f ${file}.sav

Beachte dabei folgendes:
Jede Zeile des "sed" mit nem "\" abschließen, das erzeugt im fertigen Code eine Zeilenumbruch. Das "&" steht für den Text in den ersten beiden "/.../", also was du suchst. Auf diese Weise wird z.B. dein HTML-Code direkt vor dem abschließenden "</body>" eingefügt, dabei ist egal ob das groß oder kleingeschrieben ist... du kannst das natürlich alles anpassen.

Das sollte dir erstmal helfen, bei Fragen geb ich gern Tipps. Aber auch ich bin nicht ständig hier beim Lesen :)

ciao

Michael

verve
14.10.02, 11:46
Hallo HackThor :cool: :cool: :) ,

mmhh...also erstmal:
Es handelt sich eher um eine sehr massige Menge von Dateien (also sehr viel!)!


code:

for file in $(ls /dir/mit/den/htmls/*.html); do


Soll ich diesen Code jetzt in die Konsole eingeben?
Und mit dir/mit/den/htmls/*.html meinst du wohl den Ordner wo die ganzen Dateien drinne sind, also bei mir würde das dann so aussehen: /usr/local/httpd/htdocs/
Oder hab ich da was falsch verstanden?

code:
--------------------------------------------------------------------------------
if [ -z "$(grep "text" $file)" ]; then
...
fi
--------------------------------------------------------------------------------
Muss ich da im punkt punkt punkt auch noch was einsetzen? Denn da kenne ich mich gar nicht aus!


code:
--------------------------------------------------------------------------------
mv $file ${file}.sav
cat ${file}.sav | sed 's/<\/body>\|<\/BODY>/dein_HTML-code\
mehr_HTM-code\
...
&/g' > $file
rm -f ${file}.sav
--------------------------------------------------------------------------------


Diesen Code soll ich wohl auch in die Konsole eingeben, oder?
Und was soll ich bei dem "mehr_htmcode" denn jetzt eingeben? Und danach?

Entschuldige für mein blödes Fragen, doch da kenne ich mich nun mal nicht so gut aus!

greetings

verve

HackThor
14.10.02, 12:39
Is doch kein Problem - wir haben alle mal so angefangen :)

Also:
Die Konstrukte sollst du nicht auf der Kommandozeile eingeben - sie sollen in die "popup.sh" rein. Diese wird dann regelmäßig vom "cron" aufgerufen (über deinen Eintrag in der "crontab"), und damit wird die von dir gewünschte Aufgabe (Einfügen von HTML-Code) erledigt. Die Punkte "..." heißen einfach nur "hier kommt noch anderer Shell-Code hin, den hab ich der Übersichtlichkeit halber aber weggelassen".

Das Script "popup.sh" könnte z.B. so aussehen:

#!/bin/sh
#
# popup.sh - Einfügen eines HTML-IFrame
for file in $(find /usr/local/httpd/htdocs -name "*.html" -mmin -60); do

if [ -z "$(grep "text" $file)" ]; then

mv $file ${file}.sav
cat ${file}.sav | sed 's/<\/body>\|<\/BODY>/HTML-IFrame-Code_Zeile1\
IFrame-Code_Zeile2\
IFrame-Code_Zeile3\
&/g' > $file
rm -f ${file}.sav

fi

done

Für den "text" im grep mußt du dann ein Stück aus deinem IFrame-Code eingeben.

Ich habe keine Ahnung ob das überhaupt klappt :D
Die Einzelteile habe ich getestet, aber alles zusammen nicht (habe keine HTMLs und auch keine IFrames zum Einbauen...). Probier`s einfach mal.

Michael

verve
14.10.02, 15:44
Hallo HackThor,

naja, klappt igendwie nicht!
Wenn ich eine html-Datei hochlade, fügt er den IFrame nicht ein!
Also im crontab steht immer noch folgendes (der "viminfo missing" Fehler ist allerdings immer noch da):

0,30 * * * * /root/bin/popup.sh

Und beim Verzeihnis /usr/local/httpd/htdocs/ sind natürlich nur Ordner, die wiederrum Dateien und Unterverzeihnisse enthalten! Aber das macht er doch dann auch für alle Dateien und Unterverzeichnisse, wenn ich nur das "oberverzeichnis" htdocs angebeb!!???!?
Weißt du vielleicht was für ein Fehler ich gemacht haben KÖNNTE?
mmhh, ich hoffe doch, dass das irgendwann klappen wird, denn dies versuche ich schon sehr lange, aber ohne Erfolg!
Ich hoffe du kannst mir helfen!

greetings


verve

HackThor
14.10.02, 18:17
Deine Version der "popup.sh" is ja wieder verschwunden :)
Die war schon ganz richtig!

Also: wenn du den "find" auf ein Verzeichnis losläßt, z.B. dein /usr/local/httpd/htdocs/, dann sucht er alles unterhalb davon, also alle Dateien und Unterverzeichnisse.

Um den "viminfo missing" Fehler wegzukriegen mußt du deine "/root/.exrc" öffnen (am besten mit dem mc oder emacs oder joe o.ä. - nicht den vim nehmen, der öffnet die Datei ja selber...) und die 3 HTML-Zeilen rauslöschen.

Außerdem: Wie lange hast du gewartet nach dem Hochladen der Datei? Der "cron" macht das nur zur vollen und halben Stunde! Ein "hochladen - und schon fertig" geht also nicht....


Welches Script nimmst du jetzt? Meins oder das was du vorher draufhattest? Bei letzterem schau mal nach ob die Datei "/root/bin/popup.htm" existiert und was da drin steht (da sollte der IFrame-Code drin sein - wenn ich den Code noch richtig im Kopf habe)

ciao

Michael

verve
14.10.02, 21:34
Hallo HackThor,

ich muss dich mal wieder loben dafür, dass du mir immer noch hilfst, obwohl ich dich hier ganz schön nerve!
Ja, ich habe so eben erfahren, dass die Version der popup.sh, die ich jetzt gelöscht habe, dass ich die aus bestimmten Gründen gar nicht veröffentlichen darf!
Ich hätte sie dir gerne gezeigt, ich darf aber nun mal nicht (aber du hast sie ja schon gesehen)!
Dass mit dem viminfo-Fehler werd ich mal ausprobieren, wie du es mir gesagt hast!
Ich hab ziemlich kurz gewartet nach dem Uploaden, denn nach meiner crontab macht er dies doch jede 0,3 Minute, oder? (--> 0,30 * * * *) !
Achso, ich realisiere gerade das du recht hast 0=volle Stunde und 30=halbe Stunde !
Oh, dass hab ich eigentlich die ganze Zeit anders intepretiert!
Ich weiß nicht welchen Skript ich jetzt benutzen soll (hab im Moment den vorherigen unter popup2.sh gespeichert und dein Code in die popup.sh gesetzt)!
Also die datei /root/bin/popup.htm existiert und da is auch der IFrame drinne (also alles richtig gemerkt;) ;) )
Auf jeden Fall probier ich jetzt mal ein bisschen herum....

greetings and big thank you from

verve

HackThor
14.10.02, 21:57
Wenn es wirklich nur um das Anhängen des Datei-Inhaltes an das Ende geht (nicht an eine spezifische Stelle):

Schmeiß die Zeilen

mv $file ${file}.sav
cat ${file}.sav | sed 's/<\/body>\|<\/BODY>/HTML-IFrame-Code_Zeile1\
IFrame-Code_Zeile2\
IFrame-Code_Zeile3\
&/g' > $file
rm -f ${file}.sav

raus und ersetzte die durch


cat /datei/mit/IFrame-Code >> $file

wobei die "/datei/mit/IFrame-Code" eine Datei ist in der der HTML-Code steht.

ciao

Michael

verve
14.10.02, 23:48
Hi!
Ich habe jetzt deinen 2. code verwendet. Aber irgendwie fügt er keinen Code in jede html datei. Ich habe auch den html code(iframe) in der angegeben datei!
Es könnte doch sein, das ich bei Crontab einen Zeit Fehler habe und er deswegen keinen Code einfügt.
Wie mache ich es (zum testen) das er jede minute nach einer neuen Datei schaut?
ich habe es mit :
1 * * * *
versucht, bin mir aber nicht sicher.

Es scheint so, als hätte ich nur irgendwo einen kleinen Fehler, im Forum dauert eine antwort manchmal lange. Wie wäre es, wenn wir uns mal in einem Chat treffen und das Problem lösen? Würde glaube ich schneller gehen.
Schlag doch einfach einen Chat oder n Chatprgramm vor, das du gerade nutzt (mit nummer bzw. Username) und dann versuche ich dich zu kontaktieren. Was hälst du davon?

greetings

verve

HackThor
15.10.02, 00:15
Öhm - im Prinzip ja, aber:
Auf Arbeit gehts nicht (unsere Firewall hat was dagegen), und hier schaue ich auch nicht rund um die Uhr rein.
Du kannst mich ja auf ICQ "anpiepen" (# im Profil) - wenn ich abends online bin mach ich das Teil desöfteren an (und vergesse es noch häufiger :D )

Ach ja - die cron-line muß

*/1 * * * * /root/bin/popup.sh

lauten für "jede Minute" :) Eben probiert - das macht wirklich alle Minute was...
Ist das "popup.sh" überhaupt ausführbar?

ciao

Michael