Ich möchte, dass mein Browserverlauf Jahre zurückreicht, damit ich mir Dinge ansehen kann, die mich vor langer Zeit interessiert haben. Um diesem Wunsch nachzugehen, habe ich Safari so eingestellt, dass Verlaufselemente „manuell“ unter der General
Registerkarte in der Preferences
. Ich habe dasselbe für Download-Listenelemente getan. Meine Absicht war (und ist), niemals Verlaufselemente zu entfernen und zu verhindern, dass Safari dies automatisch tut.
Dies schien eine Zeit lang gut zu funktionieren, und ich habe immer noch eine Geschichte, die mehr als ein Jahr zurückreicht. Ich habe jedoch kürzlich bemerkt, dass die ältesten Tage in meiner Geschichte verschwinden. Anfangs war ich mir nicht sicher, aber nach einigen Tests bin ich mir sicher. Es scheint zufällig und selten zu passieren. Ich denke, dass das Safari-Fenster auch den Fokus verliert, wenn es passiert.
Ich bin mir nicht sicher, wie oder warum dies geschieht. Das einzige, was mir einfällt, ist, dass es in Safari selbst möglicherweise ein fest codiertes Limit gibt. Oder vielleicht löscht es alte Verlaufselemente, wenn es eine Speichergrenze erreicht.
Ich sehe, dass meine History.db
Datei in der ls
Ausgabe 80 MB groß ist:
-rw-r--r-- 1 my_username staff 80M Dec 29 13:02 History.db
Sind 80 MiB eine Art implizites Limit für Safari?
Ein weiterer beunruhigender Aspekt dieses Problems ist, dass ich meinen Safari-Verlauf nicht in einen anderen Browser exportieren kann. Sowohl Chrome als auch Firefox weigern sich, außer Lesezeichen etwas aus Safari zu importieren. Außerdem habe ich nicht viele Backups meines Safari-Verlaufs. Backups würden jedoch sowieso nicht viel helfen, da einem Backup mein aktueller Verlauf fehlen würde.
Wie kann ich also Safari dazu bringen, dass meine ältesten Verlaufselemente nicht mehr verloren gehen?
Einige Umgebungsinfos:
Meine Safari-Version ist derzeit 11.0.2 auf macOS 10.13.2. Außerdem verwende ich keine iCloud-Integration mit Safari.
BEARBEITEN:
Zum Zeitpunkt der Prämie zu dieser Frage werde ich auch in Betracht ziehen, Antworten zu akzeptieren, die eine Möglichkeit bieten, meinen Verlauf in einen anderen Browser (vorzugsweise Firefox oder Chrome) zu exportieren.
Dies ist eine von Safari auferlegte Größenbeschränkung .
Eine SQLite-Datenbank kann offensichtlich größer als 80 MB sein; Es ist nur durch die Menge des verfügbaren Speicherplatzes begrenzt, hat aber technisch gesehen eine obere Dateigrößenbeschränkung von etwa 140 TB
Andere Entwickler haben festgestellt, dass in (älteren Versionen von) Safari das Limit auf 50 GB begrenzt ist . Es ist davon auszugehen, dass dieses Limit in späteren Versionen von macOS/iOS/Safari erhöht wurde.
Es liegt auch nahe, dass diese Größenbeschränkung von (Apple) Safari auferlegt wird, da es standardmäßig so konfiguriert ist, dass es mit iCloud mit anderen Apple-Geräten synchronisiert wird, von denen viele durch die Speicherverfügbarkeit eingeschränkt sind (z. B. iPhones und iPads).
Wir wissen auch, dass die grundlegende (kostenlose) Speicherzuteilung von iCloud 5 GB beträgt und dies viel mehr als den Browserverlauf berücksichtigen muss. Dinge wie Dateien, Einstellungen, Gerätesicherungen (falls zutreffend), Schlüsselbunde, Notizen usw. müssen Speicherplatz zugewiesen werden. Die Synchronisierung dieser Elemente wird standardmäßig von Apple eingestellt.
Es würde nicht viel Sinn machen, einen unbegrenzten Verlauf zuzulassen, History.db
der die Kapazität von iCloud/iPad/iPhone übersteigen könnte.
Auch wenn Sie keine iCloud-Integration verwenden , tut dies der durchschnittliche Benutzer, und Apple wird seine Produkte um diese Prämisse herum entwickeln und seine Produkte entsprechend gestalten.
Extrahieren Ihrer Historie
History.db
Mit diesem (sehr) einfachen sqlite3-Skript können Sie Ihre Verlaufselemente aus der Datei ziehen
Erstellen Sie eine „commands.txt“-Datei und füllen Sie sie mit den folgenden Befehlen:
.mode csv
.once history.txt
select visit_time, title, url from history_visits inner join history_items on history_items.id = history_visits.history_item;
Geben Sie dann den Befehl aus
sqlite3 History.db < commands.txt
Dadurch wird eine CSV-Datei history.txt
mit dem Namen erstellt, die Zeit, Titel und URL der Verlaufselemente enthält. Dies setzt voraus, dass Sie sich im ~/Library/Safari
Verzeichnis befinden. Denken Sie daran, dass das Datum/die Uhrzeit Ihres Verlaufselements in Epochenzeit angegeben wird (obwohl die Epoche in diesem Fall anders ist ) und letztendlich konvertiert werden muss.
history.txt
Datei ist vollständig leer.sqlite3
sehen Sie etwas?sqlite3 History.db
, dann select * from history_items;
lassen Sie mich wissen, was Sie bekommen.url
Element in meiner history_visits
Tabelle. Ich habe DB Browser for SQLite verwendet , um die Datenbank zu untersuchen und dies herauszufinden.select
Befehl den falschen Feldnamen eingegeben. Probieren Sie es jetzt. Ich habe es gerade getestet und es funktioniert gut.history.txt
jetzt eine funktionsfähige Datei! Ich danke dir sehr!Einfache Antwort, nein kannst du nicht.
Ich schlage vor, Sie verwenden Chrome und importieren Ihre Daten mit diesen Schritten:
Solar-Mike
BIP2
defaults write ~/Library/Preferences/com.apple.Safari.plist HistoryAgeInDaysLimit 999999
. Ich bin mir noch nicht sicher, ob das funktionieren wird, insb. da dieser Rat keine akzeptierte Antwort war.Solar-Mike
BIP2
Solar-Mike
BIP2
HistoryAgeInDaysLimit
auf eingestellt habe999999
.Orom