El historial de Safari desaparece a pesar de la configuración

Me gusta tener el historial de mi navegador hace años para poder ver las cosas que pueden haberme interesado hace mucho tiempo. Para perseguir este deseo, configuré Safari para que elimine los elementos del historial "manualmente" en la Generalpestaña del archivo Preferences. He hecho lo mismo para los elementos de la lista de descargas. Mi intención era (y es) no eliminar elementos del historial nunca y evitar que Safari lo haga automáticamente.

Esto pareció funcionar bien por un tiempo, y todavía tengo un historial que se remonta a más de un año. Sin embargo, recientemente he notado que los días más antiguos de mi historia están desapareciendo. Al principio no estaba seguro, pero después de hacer algunas pruebas estoy seguro. Parece suceder al azar y con poca frecuencia. Creo que la ventana de Safari también pierde el foco cuando sucede.

No estoy seguro de cómo o por qué sucede esto. Lo único que se me ocurre es que puede haber algún límite codificado en el propio Safari. O quizás elimine los elementos del historial antiguo cuando alcance el límite de memoria.

Veo que mi History.dbarchivo tiene 80MiB de lssalida:

  -rw-r--r--    1 my_username staff  80M Dec 29 13:02 History.db

¿Es 80MiB algún tipo de límite implícito para Safari?

Otra faceta preocupante de este problema es que no puedo exportar mi historial de Safari a otro navegador. Tanto Chrome como Firefox se niegan a importar cualquier cosa de Safari excepto los marcadores. Además, no tengo muchas copias de seguridad de mi historial de Safari. Aunque, las copias de seguridad no ayudarían demasiado de todos modos, ya que una copia de seguridad carecería de mi historial reciente.

Entonces, ¿cómo puedo hacer que Safari deje de perder mis elementos de historial más antiguos?

Algunos datos del entorno:

Mi versión de Safari es actualmente 11.0.2 en macOS 10.13.2. Además, no estoy usando la integración de iCloud con Safari.

EDITAR:

En el momento de la recompensa por esta pregunta, también consideraré aceptar respuestas que ofrezcan una forma de exportar mi historial a otro navegador (preferiblemente Firefox o Chrome).

¿Ha buscado alguna pregunta similar aquí? Tales como: apple.stackexchange.com/q/178969/237687
@SolarMike Sí, he buscado preguntas similares aquí y en otros lugares. Curiosamente, me topé con esa pregunta a la que usted se vinculó después de publicar mi pregunta aquí. No pude encontrarlo antes de publicar mi pregunta aquí y he tratado de aplicar algunos consejos en los comentarios de esa pregunta. Es decir, he ejecutado: defaults write ~/Library/Preferences/com.apple.Safari.plist HistoryAgeInDaysLimit 999999. Todavía no estoy seguro de si esto funcionará, esp. ya que este consejo no fue una respuesta aceptada.
Se le dio una pregunta similar a la sugerencia de un script chron para almacenar cada día / semana copiado en un archivo separado como copia de seguridad ... no puedo encontrarlo en este momento aunque '.
@SolarMike Esa es una idea interesante. Sin duda me gustaría saber más al respecto.
Bueno, haz una búsqueda, puede que lo encuentres antes que yo...
@SolarMike No encontré la sugerencia sobre cron, pero puedo confirmar que el consejo en la pregunta a la que se vinculó no funciona. Todavía pierdo el historial incluso después HistoryAgeInDaysLimitde configurar 999999.
Por lo que puedo decir, si sincroniza el historial de Safari en iCloud, su historial de macOS se truncará para que coincida con un límite de tamaño más pequeño impuesto por cualquier otro dispositivo (por ejemplo, iOS) con el que se haya vuelto a sincronizar. Esto no tiene sentido, por supuesto, pero parece ser lo que sucede.

Respuestas (2)

Este es el límite de tamaño impuesto por Safari .

Una base de datos sqlite obviamente puede tener más de 80M; solo está limitado por la cantidad de espacio de almacenamiento disponible, pero técnicamente tiene un límite de tamaño de archivo superior de aproximadamente 140 TB

Otros desarrolladores han notado que en (versiones anteriores de) Safari, el límite está limitado a 50 GB . Es razonable suponer que este límite se ha incrementado en versiones posteriores de macOS/iOS/Safari.

También es lógico que Safari (Apple) imponga este límite de tamaño porque, de forma predeterminada, está configurado para sincronizarse con iCloud con otros dispositivos Apple, muchos de los cuales están limitados por la disponibilidad de almacenamiento (iPhones y iPads, por ejemplo).

También sabemos que la asignación de almacenamiento básica (gratuita) de iCloud es de 5 GB y esto debe representar mucho más que el historial de navegación. Cosas como archivos, configuraciones, copias de seguridad de dispositivos (cuando corresponda), llaveros, notas, etc. deben tener espacio asignado. Apple establece la sincronización de estos elementos de forma predeterminada.

No tendría mucho sentido permitir un historial ilimitado donde History.dbpodría superar la capacidad de iCloud/iPad/iPhone.

A pesar de que no está utilizando la integración de iCloud , el usuario promedio lo hace y Apple diseñará sus productos en torno a esta premisa y diseñará sus productos en consecuencia.

Extrayendo tu historial

Puede extraer los elementos de su historial del History.dbarchivo con este (muy) simple script sqlite3

Cree un archivo "commands.txt" y rellénelo con los siguientes comandos:

.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;

Luego emita el comando

sqlite3 History.db < commands.txt

Esto creará un archivo CSV llamado history.txtque contiene la hora, el título y la URL de los elementos del historial. Esto supone que estás en el ~/Library/Safaridirectorio. Tenga en cuenta que la fecha/hora de su elemento de historial estará en el tiempo de la época (aunque la época es diferente en este caso ) y deberá convertirse en última instancia.

Esta es información útil y es bueno saber que Safari impone este límite a propósito. Al menos no es un bicho loco. Sin embargo, todavía preferiría una forma de sortear esta limitación para poder seguir usando Safari. Pero si no aparece una mejor respuesta, supongo que esta será la mejor.
Bueno, acabo de probar tu secuencia de comandos ya que no han aparecido nuevas respuestas. Extrañamente, no parece funcionar. history.txtEl archivo resultante está completamente vacío.
Si ingresa manualmente el comando de selección sqlite3, ¿ve algo?
No, tampoco hay salida cuando hago eso.
Solo para que estemos en la misma página... sqlite3 History.db, luego select * from history_items;Déjame saber lo que obtienes.
Eso produce un volcado masivo de mis elementos de historial.
Tendré que mirarlo cuando regrese porque ahora estoy en mi iPhone y no puedo probar
Allan, lamento que la recompensa haya expirado antes de que tuviera la oportunidad de otorgarte todos los puntos. Recibiste la mitad del premio, pero no sabía si debía darte la cantidad total ya que tu guión aún no funciona. Pido disculpas ya que también tuve una emergencia familiar que atender y no pude estar más atento para que su guión funcionara. Te daré un voto a favor por todo tu esfuerzo y realmente espero que podamos hacer que tu guión funcione para que al menos pueda tener un formato más funcional para mi historial. Por favor, ofrezca más consejos si es posible; Aceptaré su respuesta una vez que su script funcione.
Creo que tengo una idea de lo que está mal con su secuencia de comandos SQL. Parece que no hay ningún urlartículo en mi history_visitsmesa. Usé DB Browser para SQLite para inspeccionar la base de datos y descubrir esto.
Allan, ¿planeas seguir analizando este problema? Agradecería más ayuda ya que no estoy muy seguro de cuál es el problema hasta el momento y realmente me gustaría extraer mi historial de Safari lo antes posible.
Perdón por la demora: terminé con gripe durante gran parte de una semana, lo que me retrasó una semana en todos mis otros proyectos. Me tomó lo que parece una eternidad volver a ponerme al día con todo. Escribí el nombre de campo incorrecto en el selectcomando. Pruebalo ahora. Lo acabo de probar y funciona bien.
¡Lo siento mucho por tu gripe! Ha estado dando vueltas donde vivo también y ciertamente es algo asqueroso de tratar. Además, su nuevo conjunto de comandos funciona muy bien y ahora tengo un history.txtarchivo viable. ¡Muchas gracias!

Respuesta simple, no, no puedes.

Le sugiero que use Chrome e importe sus datos con estos pasos:

  1. instalar e iniciar Chrome (cerrar Safari)
  2. Haga clic en los 3 puntos en la esquina superior derecha
  3. Arrastre el cursor a "Marcadores" y luego haga clic en "Importar marcadores y configuraciones"
  4. Verá 4 opciones, es Seleccionar elementos para importar: "Historial de navegación" "Favoritos/Marcadores" "Contraseñas guardadas" "Motores de búsqueda"
Esto es todo lo que veo cuando intento importar cosas de Safari a Chrome.
¿Puede explicar cómo responde esto a la pregunta?
1. Chrome no puede importar el historial de Safari a partir de ahora 2. Chrome también elimina el historial de más de 90 días. 3. La mejor alternativa es FF, que brinda al usuario la posibilidad de establecer la fecha de caducidad/número superuser.com/questions/1635171/… pero eso no es útil para esta pregunta
Gracias, Sherlock; Llegas tres años tarde a la discusión.