Saltar al contenido
NeverWipedPrueba gratis14 días · sin tarjeta

Docs · Referencia

Referencia de comandos

Todos los comandos y opciones del agente `neverwiped` (versión 0.3.0, restic 0.18.1). Esta página se genera a partir del código fuente del agente, así que no puede desviarse de lo que acepta el CLI.

Versión MarkdownEl CLI habla inglés por defecto (`--lang es` para español). Algunos bloques de salida vienen de una sesión en francés: están señalados y traducidos en el texto.

Cómo funcionan

El agente está en /usr/local/bin/neverwiped. Todos los comandos se ejecutan como root (si no: neverwiped doit être lancé en root, «debe ejecutarse como root»). Las opciones van antes o después de los argumentos, como --opción valor o --opción=valor. -y equivale a --yes.

El CLI muestra sus mensajes en inglés por defecto, o en español o francés con --lang es|fr o NEVERWIPED_LANG; la página de mensajes de error explica cada uno. Los ejemplos de salida de estas páginas vienen de una sesión en francés y están señalados.

El script de instalación

curl -fsSL https://neverwiped.com/install.sh | sh
curl -fsSL https://neverwiped.com/install.sh | sh -s -- --api-key "$NEVERWIPED_API_KEY" --yes
curl -fsSL https://neverwiped.com/install.sh | NEVERWIPED_NO_SETUP=1 sh

El script detecta la arquitectura (amd64 o arm64), descarga el agente, comprueba su huella SHA-256 (escrita en el propio script), lo instala en /usr/local/bin/neverwiped y después ejecuta neverwiped install con todo lo que pongas tras sh -s --. Con NEVERWIPED_NO_SETUP=1 solo instala el binario.

Comandos

neverwiped install

Registra este servidor, detecta qué copiar, muestra el plan, programa las copias y lanza la primera. Si la vuelves a lanzar en un servidor instalado, recalcula el plan; nunca crea un segundo servidor.

neverwiped install [--api-key CLAVE] [--yes] [--no-backup] [--include RUTA]... [--exclude PATRÓN]... [--preset NAME]... [--no-databases] [--no-docker] [--no-estimate] [--limit-upload VELOCIDAD] [--limit-cpus N] [--priority low|normal] [--same-server] [--api-url URL]
OpciónQué hace
--api-key CLAVEClave de API de cuenta (nw_acc_…) de tu panel, Claves de API. Si no, NEVERWIPED_API_KEY; si no, una pregunta en la terminal. Se ignora una vez registrado el servidor.
--api-url URLDirección de la plataforma; install.sh ya la pasa. Si no, NEVERWIPED_API_URL.
--include RUTAAñade una carpeta al plan. Repetible: --include /data --include /opt/app.
--exclude PATRÓNExcluye archivos (patrón de restic, como "*.log" o /var/www/site/tmp). Repetible.
--presetAñade un conjunto de exclusiones: logs, build, trash, disk-images, archives o all. Repetible, o separado por comas. Ninguno está activo por defecto; la estimación de tamaño indica cuánto ahorraría cada uno. Los patrones están en la guía de inicio.
--pause-volumeRespalda este volumen Docker con sus contenedores en pausa durante una copia local (de segundos a minutos), en lugar de leerlo en caliente. Repetible.
--live-volumeLee este volumen Docker en caliente, sin pausar sus contenedores (lo predeterminado para los volúmenes que no son una base). Repetible.
--limit-upload VELOCIDADLimita el envío al almacenamiento, por ejemplo 20mbit (o 20Mbps), 800kbit, 2MB, 500KiB; off quita el límite. La unidad es obligatoria: Mbit/s y MB/s difieren en un factor 8. La restauración nunca se limita. Se conserva si install se vuelve a lanzar sin la opción.
--limit-cpus NDeja que restic use como máximo N núcleos (GOMAXPROCS) para leer, comprimir y cifrar; off usa todos los núcleos. Es un tope de trabajo en paralelo, no una cuota exacta. Se conserva si install se vuelve a lanzar sin la opción.
--prioritylow (por defecto): restic y las herramientas de exportación de las bases locales se ejecutan con nice 10 y la clase de disco idle, el sitio va primero. normal: como cualquier otro proceso, para una copia más rápida. Se conserva si install se vuelve a lanzar sin la opción.
--yes, -yResponde sí a todas las preguntas: acepta el plan y lanza la primera copia. Obligatorio sin terminal (scripts, agentes de IA). También -y.
--no-backupNo lanza la primera copia; se hará a la hora programada o con neverwiped backup now.
--no-databasesNo copia ninguna base de datos, ni local ni en Docker.
--no-dockerIgnora Docker: ni volúmenes ni bases de datos en contenedores.
--no-estimateOmite la estimación de tamaño mostrada con el plan (y la comprobación de cuota antes de la primera copia). Útil en servidores con millones de archivos.
--same-serverSolo cuando el agente se detuvo con «esta configuración pertenece al servidor … y se copió en otra máquina» en el propio servidor, porque cambió su identificador de máquina (sistema reinstalado con /etc/neverwiped repuesto, /etc/machine-id regenerado). Registra el nuevo identificador y conserva el mismo servidor y las mismas claves. Nunca en una copia: ahí, ejecuta neverwiped uninstall --yes y vuelve a instalar, para que la copia tenga sus propias claves.

neverwiped estimate

Muestra el plan que propondría install y lo mide: tamaño y archivos de cada carpeta y volumen Docker tras las exclusiones, las carpetas más grandes, el tamaño de los archivos de las bases locales y lo que quitaría cada preajuste. Solo lee tamaños, no registra nada y no hace ninguna llamada de red. Lánzalo antes de suscribirte para elegir un plan.

neverwiped estimate [--include RUTA]... [--exclude PATRÓN]... [--preset NAME]... [--no-databases] [--no-docker] [--json] [--max-seconds N]
OpciónQué hace
--include RUTAAñade una carpeta, como con install.
--exclude PATRÓNExcluye archivos (patrón de restic), como con install.
--presetAplica un preajuste de exclusiones, como con install.
--pause-volumeMarca un volumen Docker como copiado en pausa, como con install (se muestra el tamaño de la copia).
--live-volumeMarca un volumen Docker como leído en caliente, como con install.
--max-secondsDetiene la medida tras N segundos y muestra el resultado como «al menos». Sin límite por defecto (install se detiene a los 90 s).
--jsonSalida JSON (plan, luego estimate con files.bytes, files.files, files.partial, files.sources, files.largest, files.savings, databases_on_disk_bytes, databases_not_measured, pause_copy_bytes), para scripts y agentes de IA.
--no-databasesDeja fuera las bases de datos, como con install.
--no-dockerIgnora Docker, como con install.

neverwiped status

Muestra el servidor, el plan de lo que se copia, tu suscripción, si las copias están activas, el espacio usado, la última copia correcta, la programación encontrada y las últimas líneas del registro.

neverwiped status [--json]
OpciónQué hace
--jsonSalida JSON (hostname, server_id, agent_version, plan, platform con la suscripción, el espacio usado y la última copia, schedule, limits, log_file; platform_error si no se llega a la plataforma), para scripts y agentes de IA. Los nombres de campo no cambian con el idioma.

neverwiped limits

Muestra o cambia lo que las copias pueden tomar de este servidor: la velocidad de envío, los núcleos de CPU que puede usar restic y la prioridad (baja por defecto: nice 10 y clase de disco idle). Sin opciones, muestra los límites actuales. Se aplican a cada copia, programada o manual, y a la purga de las copias antiguas; las restauraciones nunca se limitan. Funciona sin conexión: los límites se guardan en /etc/neverwiped/config.json.

neverwiped limits [--limit-upload VELOCIDAD|off] [--limit-cpus N|off] [--priority low|normal] [--json]
OpciónQué hace
--limit-upload VELOCIDADLimita el envío al almacenamiento, por ejemplo 20mbit (o 20Mbps), 800kbit, 2MB, 500KiB; off quita el límite. La unidad es obligatoria: Mbit/s y MB/s difieren en un factor 8. La restauración nunca se limita.
--limit-cpus NDeja que restic use como máximo N núcleos (GOMAXPROCS) para leer, comprimir y cifrar; off usa todos los núcleos. Es un tope de trabajo en paralelo, no una cuota exacta.
--prioritylow (por defecto): restic y las herramientas de exportación de las bases locales se ejecutan con nice 10 y la clase de disco idle, el sitio va primero. normal: como cualquier otro proceso, para una copia más rápida.
--jsonSalida JSON (upload_kib_s, 0 = sin límite; cpus, 0 = todos los núcleos; cpus_total; priority: low o normal), para scripts y agentes de IA. También en status --json, campo limits.

neverwiped backup now

Lanza una copia ahora, con el plan guardado. Solo se envían los cambios desde la anterior.

neverwiped backup now
OpciónQué hace
--scheduledLa forma que usa la programación (temporizador systemd o cron). No hace falta lanzarla a mano.

neverwiped check

Comprueba que las copias guardadas se pueden leer y están completas, con restic check y tu clave (la plataforma y el almacenamiento no pueden hacerlo por ti: no tienen la clave). No cambia nada. Sin opciones solo se relee la estructura; --read relee y descifra también una parte del contenido, --full todo el contenido. Más o menos una vez por semana, tras una copia correcta, el agente la lanza solo, con una parte distinta cada vez. Código de salida 0 si no encuentra errores, 1 si los encuentra.

neverwiped check [--read 5%|1/26|2G] [--full]
OpciónQué hace
--readRelee y descifra también una parte del contenido: un porcentaje (5%), una parte de N (1/26) o una cantidad (2G), elegida al azar.
--fullRelee todo el contenido: tarda, y descarga tanto como el tamaño del repositorio.

neverwiped list

Lista las copias que puedes restaurar, con fecha (hora del servidor), identificador, tamaño añadido y contenido.

neverwiped list [--json]
OpciónQué hace
--jsonSalida JSON (instantáneas de restic: id, short_id, time, hostname, paths, tags, summary), para scripts y agentes de IA.

neverwiped restore

Restaura una copia: latest, un día 2026-11-03 (la última de ese día), un minuto "2026-11-03 22:59" o un identificador de al menos 4 caracteres. Con --target, en una carpeta aparte; sin él, en su sitio, después de escribir RESTAURAR (o pasar --yes). Con un agente de IA: primero --plan y, tras tu permiso, el comando mostrado con --approve.

neverwiped restore <date|id|latest> [--target CARPETA] [--include RUTA]... [--yes] [--plan | --approve CÓDIGO]
OpciónQué hace
--target CARPETARestaura en esta carpeta, sin tocar los archivos en uso. Las rutas originales se recrean debajo: /var/www pasa a CARPETA/var/www. Pide confirmación si la carpeta no está vacía.
--include RUTASolo restaura esta ruta, tal como estaba en el servidor (por ejemplo /var/www/site). Repetible.
--approve CÓDIGOSolo lanza la restauración si el código es el que --plan mostró para esta copia, esta carpeta y estas rutas; si no, la rechaza antes de escribir nada. Equivale a las confirmaciones que mostró el plan. El código no es una contraseña: vincula un permiso a un plan. No se combina con --plan.
--yes, -yConfirma sin preguntar. En una restauración en su sitio es un permiso explícito para sobrescribir.
--planNo escribe nada: muestra qué copia, qué rutas y dónde escribiría la restauración (en su sitio o en una carpeta aparte, vacía o no), un código de aprobación y el comando exacto para lanzarla. No toma el bloqueo ni contacta con la plataforma. Para agentes de IA: enseñar este plan y esperar el permiso.

neverwiped recover

En un servidor nuevo, tras perder el anterior: da a este servidor acceso a las copias del anterior, con una clave de API de cuenta y la clave de recuperación mostrada en la instalación. Se revocan el acceso al almacenamiento y la clave de agente del servidor perdido; no se restaura nada hasta neverwiped restore.

neverwiped recover [--api-key CLAVE] [--server ID|NOMBRE] [--recovery-key-file ARCHIVO] [--repo-key] [--yes] [--api-url URL]
OpciónQué hace
--api-key CLAVEClave de API de cuenta (nw_acc_…). Si no, NEVERWIPED_API_KEY; si no, una pregunta en la terminal.
--server ID|NOMBREEl servidor perdido, por su identificador o su nombre (mira el panel). Obligatorio con --yes si la cuenta tiene varios servidores; si no, eliges de una lista.
--recovery-key-file ARCHIVOArchivo con la clave de recuperación (mostrada una vez en la instalación). Si no, NEVERWIPED_RECOVERY_KEY; si no, una pregunta oculta en la terminal. La clave nunca se envía a NeverWiped.
--api-url URLDirección de la plataforma. Si no, NEVERWIPED_API_URL.
--yes, -yConfirma sin preguntar (se revocan los accesos del servidor perdido). Obligatorio sin terminal.
--repo-keyEl archivo de clave contiene una copia del /etc/neverwiped/repo.key del servidor perdido (copia de esa carpeta o instantánea de disco), no una clave de recuperación. No se compara el código de control; restic comprueba la clave una vez reemitida la credencial de almacenamiento, así que una clave errónea revoca igualmente la credencial del servidor perdido.

neverwiped recovery-key

Para una clave de recuperación perdida o dudosa, en el propio servidor mientras siga funcionando. check prueba una clave con las copias de este servidor y dice si es la actual; la clave no se envía a ningún sitio. new añade una nueva clave de recuperación con el repo.key de este servidor, comprueba que abre las copias, la muestra una vez con su código de control y solo envía el código a NeverWiped (el titular de la cuenta recibe un correo). La clave anterior no se elimina y sigue abriendo las copias. Una vez perdido el servidor, ninguna de las dos puede ayudar. Ver Cifrado.

neverwiped recovery-key check [--recovery-key-file ARCHIVO] | recovery-key new [--yes]
OpciónQué hace
--recovery-key-file ARCHIVOSolo check: archivo con la clave que se prueba. Si no, NEVERWIPED_RECOVERY_KEY; si no, una pregunta oculta en la terminal.
--yes, -ySolo new: crea la clave sin preguntar. La clave se muestra igualmente una vez: no pongas esa salida en un registro compartido.

neverwiped feedback

Envía un mensaje al equipo de NeverWiped: el mensaje, su tipo y la versión del agente, nada más (ni nombre de máquina ni registros). Muestra lo que se enviará y pregunta antes. Sin mensaje en la línea de comandos, lo lee de la entrada estándar.

neverwiped feedback [MENSAJE...] [--kind bug|idea|help|other] [--yes] [--api-key CLAVE]
OpciónQué hace
--kind TIPObug, idea, help u other (por defecto).
--api-key CLAVEClave de API de cuenta, para un servidor sin el agente instalado. Si no, la clave de agente de este servidor; si no, NEVERWIPED_API_KEY.
--api-url URLDirección de la plataforma. Si no, la guardada en la instalación; si no, NEVERWIPED_API_URL.
--yes, -yEnvía sin preguntar.

neverwiped update

Actualiza el agente a una versión firmada. La lista de versiones debe estar firmada por una clave de publicación integrada en el agente (la plataforma no la tiene), no caducada y no más antigua que la última aceptada por este servidor; el binario debe coincidir con su huella SHA-256 y su tamaño firmados y superar una prueba antes de reemplazar el actual, que se conserva para --rollback. Si falla un paso, no cambia nada. Configuración, claves, repositorio y plan no se tocan. La actualización automática tras la copia nocturna está desactivada por defecto.

neverwiped update [--check] [--to VERSION] [--yes] | update --rollback | update --pin VERSION|X.Y|none | update --auto on|off
OpciónQué hace
--toInstala esa versión exacta, también una más antigua (la confirmación es entonces «no» por defecto).
--pin0.3.1 se queda en esa versión, 0.3 en esa rama (solo correcciones), none sigue la última versión. Solo ajuste: no instala nada.
--autoon: tras la copia programada, como mucho una vez al día, instala lo que permite la fijación; nunca cambia el resultado de la copia. Desactivada por defecto.
--checkMuestra la versión instalada, la fijación, la actualización automática y la versión disponible. No instala nada.
--rollbackVuelve a poner el binario reemplazado por la última actualización, sin red, y fija esa versión. Repetido, lo deshace.
--yes, -yConfirma sin preguntar.

neverwiped uninstall

Quita el agente de este servidor: programación, binario, restic, estado, caché, configuración (salvo --keep-config). Se niega mientras haya una copia, restauración o verificación en curso, y reanuda cualquier contenedor que una ejecución interrumpida dejó en pausa. Se avisa a la plataforma y se revoca la clave del servidor. Tus copias se quedan en el almacenamiento, o con --delete-backups se pide borrarlas: el titular de la cuenta lo confirma en el panel. El registro se conserva salvo --remove-log.

neverwiped uninstall [--yes] [--keep-config] [--keep-backups | --delete-backups] [--remove-log]
OpciónQué hace
--yes, -yConfirma sin preguntar.
--keep-configConserva /etc/neverwiped (configuración y clave de cifrado local).
--keep-backupsConserva las copias en el almacenamiento sin preguntar (lo predeterminado con --yes).
--delete-backupsPide a la plataforma que borre las copias de este servidor. Nada se borra desde el servidor: el titular de la cuenta recibe un correo con un enlace y lo confirma en el panel (las claves del servidor no pueden borrar copias a petición).
--remove-logQuita también el registro /var/log/neverwiped.log (se conserva por defecto).

neverwiped mcp

Lanza un servidor Model Context Protocol en la entrada y la salida estándar, para un agente de IA que trabaja en este servidor (Claude Code, Codex, Cursor). Herramientas fijas: el estado de este servidor, los servidores de la cuenta y el historial de operaciones (con un token de API), y lanzar una copia. Nunca entrega una clave; restaurar, recover, desinstalar y los demás comandos con confirmación siguen siendo comandos que escribes tú.

neverwiped mcp [--read-only] [--token-file ARCHIVO]
OpciónQué hace
--token-fileArchivo con un token de API de solo lectura (nw_tok_…, área de cliente > Claves de API > Tokens de API) para las herramientas de la cuenta; si no, NEVERWIPED_API_TOKEN. Una clave de API de cuenta se rechaza.
--read-onlyQuita la única herramienta de escritura (lanzar una copia): el agente solo puede leer.

neverwiped version

Muestra las versiones del agente y de restic.

neverwiped version

También: neverwiped --version, neverwiped -v

neverwiped help

Muestra la ayuda integrada, en el idioma del CLI.

neverwiped help

También: neverwiped --help, neverwiped -h

Reimportar bases de datos en Docker

docker exec -i CONTENEDOR sh -c 'exec psql -U "${POSTGRES_USER:-postgres}" -d postgres' < /root/restore/var/lib/neverwiped/dumps/postgresql-docker-CONTENEDOR.sql
docker exec -i CONTENEDOR sh -c 'M=$(command -v mariadb || command -v mysql); MYSQL_PWD="${MARIADB_ROOT_PASSWORD:-${MYSQL_ROOT_PASSWORD:-}}" exec "$M" -uroot' < /root/restore/var/lib/neverwiped/dumps/mysql-docker-CONTENEDOR.sql

Si el contenedor lee su contraseña de root de un archivo (MARIADB_ROOT_PASSWORD_FILE o MYSQL_ROOT_PASSWORD_FILE), como hace la copia, empieza el script de la línea MySQL con MYSQL_PWD=$(cat "$MARIADB_ROOT_PASSWORD_FILE"); export MYSQL_PWD; (o el nombre con MYSQL_). Para recuperar una sola base, prepara antes su archivo como en Una base de datos.

Variables de entorno

VariableQué hace
NEVERWIPED_API_KEYClave de API de cuenta para install, en lugar de --api-key.
NEVERWIPED_API_TOKENToken de API de solo lectura (nw_tok_…) para mcp, en lugar de --token-file: permite al agente de IA listar los servidores de la cuenta y el historial de operaciones. Una clave de API de cuenta se rechaza.
NEVERWIPED_API_URLDirección de la plataforma para install, en lugar de --api-url.
NEVERWIPED_LANGIdioma del CLI: en, fr o es. Tiene prioridad sobre la configuración regional del sistema (LC_ALL, LC_MESSAGES, LANG); --lang tiene prioridad sobre ella. Inglés por defecto.
NEVERWIPED_RECOVERY_KEYClave de recuperación para recover y recovery-key check, en lugar de --recovery-key-file. Evítala en un historial de shell compartido.
NEVERWIPED_RELEASES_URLPara update: otra dirección de las versiones firmadas (un espejo; por defecto <plataforma>/downloads/releases). La firma se sigue comprobando con las claves integradas.
NEVERWIPED_RESTIC_BASE_URLRéplica de descarga de restic (mismos nombres de archivo que en GitHub). La huella SHA-256 se sigue comprobando.
NEVERWIPED_ROOTPrefijo de todas las rutas del agente (pruebas, contenedores). No en producción.
NEVERWIPED_NO_SETUPSolo install.sh: instala el binario sin lanzar neverwiped install.

Códigos de salida

CódigoSignificado
0Correcto
1Fallo: el mensaje sigue a Erreur : en la salida de error
2Uso incorrecto: opción desconocida, falta un argumento, falta la clave de API con --yes, ningún comando

Comprobar la programación

systemctl list-timers neverwiped-backup.timer
cat /etc/cron.d/neverwiped
crontab -l | grep neverwiped

Uno de los tres muestra la programación (systemd, cron o la crontab de root en Alpine y BusyBox). Si ninguno lo hace, vuelve a lanzar neverwiped install --yes.