Hi,
ich bräuchte euere Hilfe bei einem shell-script. es soll folgendes tun: den datenbaum des konquerors, in dem sämtliche cache-einträge gespeichert sind, beim starten des Konquerors durch einen leeren ersetzen.
nur: wie mache ich das genau?
schon mal vielen danke für jede hilfe
beste grüsse
markus r.
Schau doch mal hier unter konqueror.org .
Vielleicht hilft dir das weiter.
Grüße, Claus
Hi,
also ich kann dir jetzt nur beschreiben wie ich vor gehen würde, vielleicht hilft dir das weiter!
Also du sagst es ist eine Datenbanl in der er dies alles ablegt.
Wenn es eine Datei wäre, bräuchtest du diese nur noch suchen und ein einfaches Skript schreiben, dass beim start des Konquerors zuerst ausgeführt wird und die Datei, in der der Cache steht einfach mit einer leeren überschreiben.
Mit der Datenbanl würde ich einfach mal auf die Konqueror Seite gehen und mal schauen was er für eine verwendet und welche Sprache. Wenn z.B. MySql dann baust du dir ein Skript das auf die Datenbank beim start des Konqueror zugreift und ein DB Befehl ausführt der dann den Eintrag in der Tabelle auf Null setzt der die Einträge des Chaches verwaltet oder das was du verändern willst.
Mehr kann ich dir leider nicht sagen. Du musst dir nur vorstellen was du machen willst und systematisch dem Problem nachgehen, und dir immer Fragen stellen (gute) die dich dann hoffentlich zum Ziel bringen. :)
Weiter kannst du ja hier die Jungens und Mädels fragen falls du direkte Probs dann mit dem Skript hast, wie zB führ ich den MySQL befehl darin aus usw. :)
I hope, I could help you a little bit…!
Lg
Frank
Hi Frank,
also, es würde sich um ein Verzeichnis handeln. Das müsste beim Starten
des Browsers durch ein Abbild desselben in “leerem” Zustand überschrieben werden.
Da ich leider in der shell-Progr. keine Erfahrung hab, bin ich auch da für jeden Hinweis
dankbar.
lg
markus
Hi,
jo ich bin da auch noch nicht so fit :) Muss das im mom auch neu lernen hier auf Arbeit :)
Bin grad dabei die Korn-Shell näher kennenzulernen hab da auch gleich mal was für dich im Anhang :)
Ich hoffe das bringt dich weiter!
Ich habe mal so etwas geschrieben, dass ein cron Job (is fast das Gleiche wie eine Task unter Windows) ausgeführt werden soll und dann einfach Linux Befehle ab arbeitet.
Du machst aus einem File ein Skript in dem du ganz am Anfang in die erste Zeile den Namen der Shell angibst
zB:
#!/bin/sh
oder für die KoRn Shell:
#!/bin/ksh
Dann weiss er welche Skripsprache er verwenden soll und ruft den Interpreter auf :)
Aber sonst kannst du über das erste Beispiel einfach Befehls abfolgen eintragen!
Als würdest du diese auf der Konsole nacheinander eingeben.
Das vereinfacht dir Befehle die du nicht jedes mal aufs neue eingeben willst!
zB:
———
#!/bin/sh
mkdir affe
chmod 755 affe
usw.
———
oder halt mit Skript Befehlen!
Schau dir einfach mal die beiden Links an.
Hoffe ich konnte dir ein wenig weiterhelfen.
Lg
Frank
[1] http://www.linuxfibel.de/kapitel6.htm
[2] http://www.oreilly.de/catalog/unut3ger/chapter/
Oder du machst es einfach so: (is nicht komplett kenn ja deinen Verzeichnisbaum nicht)
Also du lässt das Skript abarbeiten und am Ende rufst du den Konqueror auf.
Kannst ja dann dieses Skript aufn KDE o. Gnome Desktop verlinken.
#!/bin/sh
cd /bla –> Konqueror Verzeichnis. Eins unter dem Chache Verzeichnis.
Lösung 1:
rmdir -R NamedesCacheOrdners
#(-R Rekursiv löscht also auch die Ordner darin und alle)
mkdir NamedesCacheOrdners
o. Lösung 2 du gehst gleich in den Chache Ordner und machst folgendes
rm *.*
Ich finde Lösung 2 besser :)
anschliessend muss der Konqueror noch gestartet werden.
alias zum starten des Konqueror musste mal schaun
Ob man nun hinter jede Zeite eine Semikolon schreiben muss weiss ich nicht mehr. Musst du mal ausprobieren. Aber das wäre eine Lösung, ausser jemand anderes hat ne besserer :) Was immer sein kann.
Lg
Frank
hi frank,
danke! Ichbdenke, damit kann ich schon einiges machen.
werde das mal ausprobieren und bei erfolg das script posten.
vielleicht interessierts die anderen auch …
lg
markus
Vorschlag meinerseits:
#!/bin/sh
rm $HOME/.kde/share/config/konq_history*
rm $HOME/.kde/share/apps/konqueror/konq_history
rm -r /var/tmp/kdecache-schreinereihHUYT8/http/*
kfmclient openProfile webbrowsing
Und dieses Script dann per Desktopverknüfung starten.
Grüße, Claus
Kein Problem Marcus :)
Aber die Lösung vom Claus finde ich fast besser! :)
Sie ist direkter und überdachter.
Sag ja es kann immer bessere Lösungen geben.
Also Nice One Claus.
Lg
Frank
Thx Frank,
:-)
Grüße Claus
Hallo Markus.
Kommt mir alles irgendwie bekannt vor, gell.
http://www.linux-club.de/viewtopic.php?t=23867
http://www.linux-club.de/viewtopic.php?t=24476
Ich hoffe dein Prob ist gelöst !!!
Gruß misterhsp…
Morgen!
Dank an euch alle!
Es führen ja immer mehrere Wege nach Rom bzw. zum Konqueror.
Hier hat das alles schon mal funktioniert, ich hoffe, das tuts
auch bei der Ansteuerung des Proxys (ist vom Privatrechner nicht möglich).
Aber ich denke, da sollte es keine Probleme geben.
@misterhsp: Man kann sich ja mal umhören, man weiß ja nie, wer was
gerade weiß, oder vorbeischaut oder … ;-)
Schönes Wochenende!
Markus.
Gibt es dafür einen speziellen Grund? Lässt sich das Problem nicht einfach
durch deaktivieren des Caches in den Optionen beheben?
Hi,
wenn der cache deakticviert wird, dann wird vom Nutzer alle paar Sekunden lang
die Authentifizierung verlangt (über den Proxy). Damit würde der Browser
unbenutzbar.
Mein script sieht bisher so aus:
#! /bin/bash
cd ~/.kde/share/config/
rm ./konq_history*
cd ~/.kde/share/config/session/
rm ./*
cd ~/.kde/cache-suse/
rm -rf ./*
cd ~/.kde/cache-linux/
rm -rf ./*
cd ~/.kde/cache-mygateway/
rm -rf ./*
cd ~/.kde/share/apps/konqueror/
rm ./konq_history
cd /
cd /var/tmp/kdecache-markus/
rm -rf ./*
kfmclient openProfile webbrowsing
Nur: leider funkionierts immer noch nicht!
Hm, … hab ich was übersehen?
LG
Markus
Bei den cache-* Verzeichnissen löscht Du wahrscheinlich zu “oft” — das sollten alles symbolische Links auf /var/tmp/kdecache-markus/ sein, und Du löscht eventuell zuviel! Das ist ein Verzeichnis, in dem alle möglichen KDE Programme Daten hinterlegen können, inklusive die Datei ksycoca (KDE System Configuration Cache) deren Erzeugung bei jedem KDE-Start ein wenig Zeit kostet, wenn man sie dauernd löscht.
Ebenso würde ich die Finger von ~/.kde/share/config/session/ lassen, weil hier die Session-Informationen von allen laufenden KDE Programmen gespeichert werden. Das hat mit dem Browser-Cache nichts zu tun.
Für den Konqi gibt es übrigens eine FAQ, in der folgende Dateien/Verzeichnisse angeführt werden:
Combobox items: ~/.kde/share/config/konq_history History module and combobox completion: ~/.kde/share/apps/konqueror/konq_history HTTP cache: ~/.kde/share/cache/http/ Ausserdem gibt es das Programm kio_http_cache_cleaner.
hi marc,
mit ‘./kio_http_cache_cleaner’ hab ichs auch schon versucht:
kein ergebnis.
Die FAQs geben folgende Verzeichnisse an:
HTTP cache: ~/.kde/share/cache/http/ (previously in
~/.kde/share/apps/kio_http/cache/)
Nur leider finde ich bei meiner SuSE 9.2 diese nicht
(auch die Suchfunktion hat nicht mal was Ähnliches aus-
gespuckt).
Irgendwie verstehe ich das nicht. Wenn man den Cache per
Hand löscht, ist er doch leer?! Warum erinnert dieser Browser
trotzdem die letzte Authentifizierung???
Beste Grüße
Markus
Stimmt dir FAQ scheint ein wenig hinterher zu hinken. Unter ~/.kde/share/cache/http/ sind die letzten Einträge bei mir vom Anfang letzten Jahres. Der Cache scheint jetzt unter /var/tmp/kdecache-benutzername/ zu liegen.
Das Programm kio_http_cache_cleaner kennt übrigens die Option –clear-all. Das hätte man mit –help rausfinden können.
Allerdings weiss ich nicht so ganz ob das Dein Problem löst. Offensichtlich willst Du mehr als den Cache löschen. Im Cache landen alle Daten die Du im Browser lädtst, also hauptsächlich HTML und Grafiken. Authentifizierungsdaten wohl eher nicht. Bei Webforen und ähnlichem werden die häufig als Cookies gespeichert und HTML-Authentifikationen, z.B. hier bei der Linux-Community, werden glaube ich eine Weile im RAM gehalten.
Könntest Du vielleicht doch mal verraten warum Du das machen willst und nicht nur was Du machen möchtest? Vielleicht gibt’s für das Problem ja auch eine ganz andere Lösung.
Hi,
es handelt sich um nen Rechner im KDE-Kiosk-Modus. Die Nutzer können
sich einen Browser teilen, der einen Proxy ansteuert.
Jeder Nutzer hat ein Konto, worüber er sich per Authentifizierung
Zugang zum Web verschafft.
Wenn jetzt der Browser geschlossen und wieder geöffnet wird ist die
Authentifizierung des letzen Nutzers noch offen … das ist das Problem.
Eine ganz andere Lösung wäre auch ok, hauptsache es funktioniert.
LG
Markus
Zuerst mal zu Shell-Script-Befehlen, und dann zu einer eher “KDE-gemässen” Lösung…. ;-)
Der Befehl (in neueren KDE-Versionen, z.B. ab. 3.3.2 zumindest), rm -rf /var/tmp/kdecache-$USER/* löscht radikal alles unterhalb der Struktur. $USER ist immer der augenblickliche Nutzer. Du brauchst ihn nicht mit dem wirklichen Namen zu ersetzen. (Wenn Du das als root ausführst, löscht sich root seinen eigenen Cache.). Unterhalb dieser Struktur liegen auch der KDE System Cache (“ksycoca”), und die “favicons”. Möglicherweise reicht es, nur eines der dort vorhandenen Unterverzeichnisse zu löschen: rm -rf /var/tmp/kdecache-$USER/http/* (Genau dasselbe macht rm -rf $KDEHOME/cache-$HOSTNAME/* da dieses Verzeichnis ein symbolischerLink auf das weiter obengenannte ist.)
Eine ganz andere Lösung wäre es, jedem Benutzer seinen eigenen permanenten Account auf dem Rechner selbst zu geben (und nicht nur auf dem Proxy), dann kann der Cache erhalten bleiben. (Aber vielleicht ist das wegen häufig wechselnder Benutzer, oder anderen Umständen, nicht so sinnvoll bei diesem konkreten Fall.)
——
Nun zu der KDE-gemässen Lösung:
Der Befehl kio_http_cache_cleaner –clear-all macht genau das, was Du willst. Du kannst ganz ohne Shell-Skript auskommen, falls Du den KDE Menü-Editor verwendest: gib den Befehl “kmenuedit” ein. (Falls das der Kiosk-Mode bereits verbietet, musst Du diesen eben mal kurz aufheben.) suche dort den Eintrag für den Konqueror-Start (falls der Eintrag aus dem K-Menu entfernt wurde, lege einen neuen an…) gib’ dem betreffenden Eintrag eventuell den Namen “Kiosk-Konqueror”. trage als Kommando folgendes ein: kio_http_cache_cleaner –clear-all; \ kfmclient openURL https://www.linux-community.de/ Bitte alles in einer Zeile eingeben, ohne das “\”. (Natürlich wirst Du die o.a. URL nach Deinen Erfordernissen ändern. Achtung, das Löschen des Cache wird vermutlich nur funktionieren, wenn du nicht eine andere Konqueror-Instanz offen hast — also beim Testen entsprechend aufpassen.)
Du kannst alternativ auch kfmclient openProfile “Internet Browsing” verwenden, falls Du mit Hilfe der Konqueror-Funktion “Profile verwalten” zuvor ein Profil mit diesem Namen angelegt hast. Dieses Profil könnte den Konqueror dann z.B. gleich mit 3 oder 5 verschiedenen Tabs öffnen, falls Deine Nutzer immer auf dieselben Seiten gehen [müssen].
Schaue Dir mal die Beispiele an, die “kfmclient –commands” produziert.
Anschliessend verwendest Du den Kiosk-Modus, um den Start und Gebrauch des “kmenuedit”-Programms zu verhindern.
KDE bietet viele Möglichkeiten.
hi,
habe alle die hier vorgeschlagenen lösungen in diversen variationen
ausgetestet: ohne ergebnis.
ein freund brachte schließlich die lösung bzw. die richtige fährte:
haben uns die kde-prozesse mit htop angekuckt:
es werden diverse dienste mit dem konqueror gestartet. diese
prozesse werden nach ner weile wieder aus dem ram genommen.
nun die einfachtse lösung:
ein script, das alle ableger von ksycoca im user-account löscht, und
dann den browser ohne profil startet. es darf dabei kein hintergrund-
prozess des konqueror mehr laufen.
das ist zwar eine etwas radikale und unelegante lösung, aber mehr
konnten wir bisher nicht erreichen. und: es funktionierte nur unter
SuSe 9.2 und KDE 3.3.2. nicht bspw. unter 9.0 und KDE 3.3.0
warum, ist uns ein rätsel!?
jetzt muss sich das nur noch im dauereinsatz beweisen. das wird
sich dann kommende woche zeigen.
hat jemand aufgrund dieses vorgehens eine elegantere lösung?
oder eine erklärung?
lg
markus