Ejecuta tareas en segundo plano de ownCloud de forma fiable con un temporizador de Systemd.

Si la página de administración de ownCloud indica que las tareas en segundo plano no se están ejecutando, la limpieza en cola y otras tareas programadas podrían retrasarse hasta que alguien visite el sitio. En un servidor Linux administrado por systemd, configure el modo de tareas en segundo plano de ownCloud para Cron y use un temporizador para ejecutarlo occ system:croncomo la cuenta del servidor web. La documentación actual de ownCloud Server recomienda usar el cron del sistema para las tareas en segundo plano habituales y menciona específicamente los temporizadores de systemd como otra forma de programar comandos.

Esta guía es para ownCloud Server Classic instalado directamente en un host Linux. No se aplica a ownCloud Infinite Scale, que tiene una arquitectura diferente, ni a la imagen oficial de Docker de ownCloud, que ya ejecuta cron internamente. Para Docker, siga la configuración documentada de la imagen en lugar de crear un segundo temporizador en el host. Consulte la documentación actual de las tareas en segundo plano de ownCloud Server .

Verifique el comando antes de cambiar el horario.

Un servicio systemd define el comando a ejecutar; un temporizador inicia ese servicio periódicamente. Primero, confirme la ruta de instalación de ownCloud y la cuenta del servidor HTTP. Los ejemplos a continuación usan /var/www/owncloudy www-data, comunes en Debian y Ubuntu. Otras distribuciones de Linux pueden usar wwwrun, apache, u otra cuenta.

Ejecuta el comando ownCloud manualmente con esa cuenta para distinguir entre un comando defectuoso y una programación defectuosa:

sudo -u www-data /usr/bin/php -f /var/www/owncloud/occ system:cron

Modifique el ejecutable y la ruta de PHP para occque coincidan con su servidor. ownCloud recomienda usar system:cronpara trabajos en segundo plano; las guías antiguas que programan cron.phppueden hacer referencia a comportamientos heredados. Un comando actual puede finalizar sin imprimir un mensaje de éxito, así que verifique su estado de salida echo $?inmediatamente después: 0significa que el comando finalizó correctamente. Si devuelve un error, corrija primero la ruta, la instalación de PHP CLI, los permisos, la conectividad de la base de datos o el error de ownCloud. El temporizador ejecutará repetidamente el mismo comando fallido si omite esta verificación.

Configura ownCloud en modo Cron.

En la configuración de administrador de ownCloud, abra la sección de trabajos en segundo plano o Cron y seleccione Cron . También puede configurar el programador desde el directorio de instalación con:

cd /var/www/owncloud
sudo -E -u www-data php occ background:cron

Esto activa el modo Cron; el comando programado permanece sin cambios occ system:cron. El manual de ownCloud indica que este comando equivale a seleccionar Cron en la página de administración. Cron es preferible para un servidor que debe procesar tareas de forma fiable, ya que AJAX depende de las visitas a la página y puede dejar tareas pendientes durante los periodos de baja actividad. Para una instancia personal pequeña, AJAX puede ser más sencillo, pero es menos predecible.

Cree el servicio systemd y el temporizador.

Crea /etc/systemd/system/owncloudcron.servicecon tu cuenta HTTP real y la ruta de ownCloud:

[Unit]
Description=ownCloud background jobs

[Service]
Type=oneshot
User=www-data
WorkingDirectory=/var/www/owncloud
ExecStart=/usr/bin/php -f /var/www/owncloud/occ system:cron

Type=oneshotIndica a systemd que el comando se ejecuta correctamente y luego finaliza. Proporcionar la ruta completa de PHP evita depender de los recursos limitados PATHdisponibles para los servicios del sistema. El directorio de trabajo ayuda a ownCloud a resolver rutas relativas. Mantenga la cuenta de servicio alineada con el propietario de los archivos y el acceso a los datos de ownCloud. No ejecute la tarea como root.

A continuación, crea /etc/systemd/system/owncloudcron.timer:

[Unit]
Description=Run ownCloud background jobs every 15 minutes

[Timer]
OnBootSec=5min
OnUnitActiveSec=15min
Unit=owncloudcron.service

[Install]
WantedBy=timers.target

El manual de ownCloud recomienda una cadencia de 15 minutos para su ejemplo estándar de cron y reconoce los temporizadores de systemd como una alternativa. Este temporizador se inicia cinco minutos después del arranque y luego programa ejecuciones posteriores 15 minutos después de la activación del servicio. Si su carga de trabajo requiere otro intervalo, modifíquelo OnUnitActiveSecdeliberadamente y considere el tiempo que necesita cada ejecución para finalizar. Evite configurar otra entrada de crontab para el mismo comando; los programadores duplicados pueden iniciar ejecuciones redundantes y dificultar la resolución de problemas.

Indícale a systemd que recargue sus definiciones de unidad, luego habilite e inicie el temporizador:

sudo systemctl daemon-reload
sudo systemctl enable --now owncloudcron.timer

daemon-reloadSe requiere después de crear o editar archivos de unidad. Habilitar el temporizador hace que se inicie automáticamente después de futuros arranques; --nowlo inicia en la sesión actual. Habilite la unidad del temporizador, no solo el servicio.

Descubre por qué se omitió o falló una carrera.

Comprueba si el temporizador está activado y cuándo se ejecutará de nuevo:

systemctl is-enabled owncloudcron.timer
systemctl list-timers --all owncloudcron.timer
systemctl status owncloudcron.timer

Un temporizador habilitado debería aparecer en la lista de temporizadores con una próxima activación. Si no aparece, confirme el nombre del archivo de la unidad, reinicie systemd y habilite el temporizador nuevamente. Si el temporizador muestra que se está ejecutando, pero el trabajo de ownCloud sigue retrasado, revise el servicio y sus registros.

systemctl status owncloudcron.service
sudo journalctl -u owncloudcron.service --since today

Busque una ruta incorrecta, un directorio de datos inaccesible, una extensión PHP faltante o un error de base de datos. Pruebe manualmente el comando exacto en el archivo de servicio para www-datareproducir el entorno lo más fielmente posible. Verifique también que haya utilizado el comando ownCloud occ system:cron, en lugar de copiar un ejemplo de Nextcloud que invoque cron.php.

Verifica que ownCloud esté procesando trabajos.

Tras uno o dos intervalos del temporizador, confirme que el servicio se ha completado correctamente y que el temporizador tiene programada una activación posterior. A continuación, compruebe el estado de las tareas en segundo plano en la página de administración de ownCloud. La hora de la última ejecución mostrada debería avanzar y la advertencia de Cron obsoleto debería desaparecer. Si systemd informa de que la operación se ha realizado correctamente, pero la advertencia persiste, revise el registro de la aplicación ownCloud y compruebe si la interfaz web está conectada a la misma instancia y base de datos que utiliza la instalación desde la línea de comandos.

Para los contenedores oficiales de ownCloud, no instale estas unidades de host a menos que haya deshabilitado intencionalmente el planificador interno del contenedor y la documentación actual de ownCloud respalde su configuración. La configuración aquí descrita es una solución a nivel de host para ownCloud clásico en systemd; los nombres de los servicios, las rutas, las versiones de PHP y el comportamiento del contenedor dependen de la implementación.

Dejar un comentario

Elimine de forma segura las versiones de archivos de ownCloud con el comando occ.

Elimine de forma segura las versiones de archivos de ownCloud con el comando occ.

Elimine todas las versiones de archivos almacenadas de ownCloud Server Classic para una cuenta o para todos los usuarios, y distinga entre una eliminación completa y la caducidad basada en la retención.

¿Se ha rechazado la conexión móvil de ownCloud? Compruebe la URL y la accesibilidad.

¿Se ha rechazado la conexión móvil de ownCloud? Compruebe la URL y la accesibilidad.

Para rastrear un rechazo de conexión móvil de ownCloud, verifique la URL del servidor, la red telefónica, el punto final HTTPS y los registros del servidor en el orden correcto.

Ejecuta tareas en segundo plano de ownCloud de forma fiable con un temporizador de Systemd.

Sustituya la ejecución de trabajos bajo demanda por un temporizador systemd que ejecute el comando occ system:cron compatible con ownCloud cada 15 minutos.

Restaurar la sincronización WebDAV de ownCloud encontrando la ruta rota

Rastrea la solicitud WebDAV a través de Apache, Nginx o un proxy inverso, y luego confirma que la sincronización de ownCloud funciona con una prueba PROPFIND autenticada.

Configura la URL pública de Nextcloud para que pueda acceder a sí mismo.

Solucione el problema de Nextcloud que indica que falta la dirección de correo electrónico saliente configurando su URL canónica y comprobando el DNS, HTTPS y el enrutamiento del proxy inverso desde el propio servidor.

Configurar el almacenamiento en caché de Nextcloud Redis en Ubuntu 24.04

Configurar el almacenamiento en caché de Nextcloud Redis en Ubuntu 24.04

Configure APCu y Redis a través de un socket Unix local para el almacenamiento en caché y el bloqueo de archivos de Nextcloud, con pasos para las versiones actuales y anteriores de Nextcloud.

Ejecuta Nextcloud Cron automáticamente con un temporizador de Systemd.

Comprueba el modo cron de Nextcloud, repara su servicio systemd y su temporizador, y verifica que las tareas en segundo plano se ejecuten después del inicio y cada cinco minutos.

Elimina la advertencia de bloqueo de archivos de Nextcloud con Redis.

Habilite el bloqueo de archivos confiable de Nextcloud, elija el backend Redis o Valkey adecuado y verifique que la advertencia desaparezca sin riesgo de que se produzcan cambios simultáneos en los archivos.

Requisitos para obtener una calificación de seguridad A+ en Nextcloud

Requisitos para obtener una calificación de seguridad A+ en Nextcloud

Solucione los problemas comunes detectados en los análisis de Nextcloud con las últimas actualizaciones, HTTPS y HSTS, una configuración precisa de la confianza en el proxy inverso y comprobaciones con el servidor público.

Habilitar el cifrado del lado del servidor de Nextcloud con impacto medido

Configure Nextcloud SSE para el almacenamiento que lo necesite, proteja las claves de cifrado y mida el impacto en la transferencia y la CPU antes de cifrar los archivos existentes.