0 votos

¿Por qué iCloud brctl dice que tengo 136 "Elementos de verdad del cliente no limpios" (archivos / carpetas sin sincronizar)?

actualización: Encontré una solución alternativa para esto. Básicamente, crear un archivo pequeño dentro de la carpeta Ubiquity activa algo en el daemon bird. Puede variar, pero cualquier persona que desee examinar o probar mi script puede descargarlo desde https://gist.github.com/luckman212/7afe50d37aa79d0170e8e96da2b96ae1

Cuando ejecuto brctl status | grep sync-up-scheduled | wc -l, informa 136 archivos que están desincronizados y necesitan ser "sincronizados" con iCloud. Se refieren como Elementos no limpios de la Verdad del Cliente. Curiosamente, todos dicen intentos:0

salida de brctl

elementos no limpios de la verdad del cliente

Ambas de mis computadoras informan el mismo número y un conjunto idéntico de archivos/carpetas. Cuando miro en la base de datos SQLite de iCloud (~/Library/Application Support/CloudDocs/session/db/client.db), puedo ver que todos se refieren a las carpetas Documents de varios Contenedores de Ubicuidad de aplicaciones Ubiquity

He intentado lo siguiente:

  • Reiniciar toda la computadora
  • Matar al demonio bird
  • Eliminar las bases de datos SQLite y las cachés de sesión en:
    • ~/Library/Application Support/CloudDocs/session/db
    • ~/Library/Application Support/CloudDocs/session/containers
  • Eliminar todo el contenido de ~/Library/Mobile Documents/

Este problema comenzó exactamente cuando actualicé mis 2 Mac a macOS Sonoma 14.0.

Desde entonces, he intentado actualizar uno de ellos a 14.1 Beta de Desarrollador 2 para ver si era un error que se había solucionado, pero eso no ha ayudado.

Tengo una cuenta de iCloud paga (200GB) y actualmente la uso para almacenar aproximadamente 55GB de datos. La mayor parte está ocupada por una réplica de mi bóveda de Obsidian que consiste en muchos archivos de texto pequeños (markdown) y algunos PNG. Estos datos se sincronizan bien, el problema parece estar con los datos de sincronización ocultos de iCloud que las aplicaciones utilizan para sincronizarse con iCloud.

He probado con Optimizar Almacenamiento de Mac tanto ACTIVADO como DESACTIVADO (actualmente está DESACTIVADO). No ha hecho ninguna diferencia.

Este es un captura de pantalla de mis preferencias de iCloud:

captura de pantalla de las preferencias de iCloud

1voto

chr Puntos 136

@Mattie sugirió en un comentario anterior que el script que mencioné también funcionó para ellos, así que ahora tenemos un tamaño de muestra de 2. Voy a responderme a mí mismo con esa sugerencia.

  1. guarda el script a continuación como icloud_ubiquity_fix.sh
  2. hazlo ejecutable con chmod +x icloud_ubiquity_fix.sh y ejecútalo.

    !/usr/bin/env bash

    CLIENT_DB="$HOME/Library/Application Support/CloudDocs/session/db/client.db" [[ -e $CLIENT_DB ]] || { echo "db no encontrada"; exit 1; }

    mapfile -t ITEM_IDS < <(sqlite3 "$CLIENT_DB" <<-EOS SELECT throttle_id FROM client_sync_up EOS ) STUCKITEMCOUNT=${#ITEM_IDS[@]} (( STUCKITEMCOUNT > 0 )) || { echo "no se encontraron elementos bloqueados"; exit 0; } echo "encontrados ${STUCKITEMCOUNT} elementos bloqueados" CANARYFNAME="flag$(xxd -l3 -ps -c0 /dev/urandom)" ID_STR=$(IFS=,; echo "${ITEM_IDS[*]}")

    while IFS='|' read -r LIBRARY_NAME FNAME SESSDIR ; do FNAME=${FNAME/\~/$HOME} SESS_DIR=${SESS_DIR/\~/$HOME} if [[ -d $FNAME ]]; then echo "escribiendo archivo canario en $FNAME" echo "xyzzy" >"$FNAME/$CANARY_FNAME" else echo "actualizando marca de tiempo de $FNAME" touch -A "$FNAME" fi done < <(sqlite3 "$CLIENT_DB" <<-EOS SELECT l.app_library_name, '~/Library/Mobile Documents/' || REPLACE(l.app_library_name, '.', '~') || '/' || ci.item_filename, '~/Library/Application Support/CloudDocs/session/containers/' || l.app_library_name FROM client_items as ci INNER JOIN app_libraries as l on ci.app_library_rowid = l.rowid WHERE ci.rowid IN ( $ID_STR ) ORDER BY l.app_library_name EOS )

    echo "pausando 10s para permitir la estabilización" sleep 10 echo "eliminando archivos de flag/canario ($CANARY_FNAME)" find "$HOME/Library/Mobile Documents" -type f -name "$CANARY_FNAME" -delete

    echo "hecho. por favor ejecuta `brctl status` nuevamente para verificar"

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X