Configure o Cron do Nextcloud para funcionar automaticamente com um temporizador do Systemd.

Quando a página de administração do Nextcloud indica que suas tarefas em segundo plano não foram executadas recentemente, a limpeza, as notificações e outras tarefas agendadas podem ficar atrasadas. Em um servidor systemd, a solução geralmente é executar o Nextcloud cron.phpcomo o servidor web a partir de um serviço systemd e, em seguida, agendar esse serviço com um temporizador ativado. O Manual de Administração atual do Nextcloud fornece um exemplo com duas unidades; os caminhos e a conta de serviço devem corresponder à sua instalação.

Verifique primeiro o que está falhando.

Os jobs em segundo plano do Nextcloud são executados quando o cron.phpcomando é invocado. Um serviço do systemd define o comando a ser executado; um temporizador inicia esse serviço em um cronograma. Se o serviço for executado manualmente, mas o temporizador nunca for acionado, concentre-se na ativação do temporizador. Se o temporizador for acionado, mas o serviço falhar, inspecione seu comando, ambiente PHP e permissões.

Confirme o diretório Nextcloud e o usuário HTTP corretos antes de editar qualquer coisa. Este exemplo pressupõe `/usr/local/bin` /var/www/nextcloude `/usr www-data/local/bin`, comuns no Debian e Ubuntu. A conta pode ser `/ usr/local/bin` wwwrun, apache`/usr/local/bin` ou outro usuário em sistemas diferentes. O Nextcloud exige que seus comandos de linha de comando sejam executados como o usuário HTTP para que a propriedade dos arquivos permaneça consistente. Consulte a documentação do Nextcloud sobre o `occ` .

Teste o mesmo executável PHP e o mesmo script cron que você pretende que o systemd utilize:

sudo -u www-data /usr/bin/php -f /var/www/nextcloud/cron.php

Substitua a conta, o caminho do PHP e o caminho do Nextcloud pelo seu host. Se o comando reportar um erro de PHP, extensão ausente, problema de permissão, modo de manutenção ou falha na conexão com o banco de dados, resolva isso primeiro; o temporizador não pode corrigir um comando com falha.

Confirme se o Nextcloud usa o cron do sistema.

Abra as configurações de administração → Configurações básicas → Tarefas em segundo plano e selecione Cron , caso ainda não esteja selecionado. Você também pode executar este comando a partir do diretório do Nextcloud:

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

O Nextcloud observa que selecionar o Cron nas configurações de administração não é estritamente necessário se cron.phpo script for executado a partir da linha de comando, pois ele define o modo automaticamente. Definir o modo explicitamente deixa claro qual será o modo de produção pretendido. O Nextcloud recomenda o cron do sistema para produção; sua documentação sobre tarefas em segundo plano também menciona os timers do systemd como uma alternativa de agendamento.

Repare o serviço systemd

Crie ou atualize /etc/systemd/system/nextcloudcron.servicecom o seguinte conteúdo. Use o caminho completo para o PHP para que o systemd não dependa do shell interativo PATH.

[Unit]
Description=Nextcloud cron.php job

[Service]
User=www-data
ExecCondition=/usr/bin/php -f /var/www/nextcloud/occ status -e
ExecStart=/usr/bin/php -f /var/www/nextcloud/cron.php
KillMode=process

Altere Userpara a conta do servidor web e ambos os caminhos para os locais correspondentes do PHP e do Nextcloud. A condição verifica se a instância está operando normalmente antes de executar a tarefa. Se a condição falhar, o systemd poderá ignorar o serviço; verifique se o Nextcloud está em modo de manutenção e inspecione o journal antes de remover ou alterar a condição. Mantenha o `<service-undefined>` KillMode=process, pois o exemplo do Nextcloud o utiliza, para que programas externos iniciados pelo cron possam continuar após o término do processo cron. A unidade de serviço não precisa de uma [Install]seção `<service-undefined>`.

Repare e ative o temporizador.

Criar /etc/systemd/system/nextcloudcron.timer. Este agendamento inicia cinco minutos após a inicialização e aguarda cinco minutos após cada ativação de serviço:

[Unit]
Description=Run Nextcloud cron.php every 5 minutes

[Timer]
OnBootSec=5 min
OnUnitActiveSec=5 min
Unit=nextcloudcron.service

[Install]
WantedBy=timers.target

Recarregue o systemd para que ele leia os arquivos de unidade e, em seguida, habilite e inicie o temporizador em um único comando:

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

Habilitar o serviço faz com que o temporizador inicie em inicializações futuras; --nowhabilitá-lo imediatamente o inicia. Não habilite o serviço em si como se fosse um temporizador recorrente. O temporizador é a unidade que pertence à seção `<interval>` timers.target. O manual atual do Nextcloud explica essas configurações de intervalo e o comando de ativação necessário; versões mais antigas do manual incluíam uma seção de instalação obsoleta para o serviço, portanto, siga o exemplo da unidade atual.

Rastreie uma execução perdida e verifique a correção.

Verifique o estado do temporizador e a próxima execução agendada:

systemctl status nextcloudcron.timer
systemctl list-timers nextcloudcron.timer

O cronômetro deve mostrar o status "aguardando" ou "ativo", e a lista deve exibir o próximo horário de ativação. Em seguida, verifique a última execução do serviço:

systemctl status nextcloudcron.service
journalctl -u nextcloudcron.service --since today

Um temporizador pode permanecer ativo mesmo quando cada execução do serviço falha, portanto, revise ambas as unidades. Se o serviço estiver ausente ou o systemd rejeitar o arquivo, execute ` systemd-analyze verify /etc/systemd/system/nextcloudcron.service /etc/systemd/system/nextcloudcron.timersystemctl get service`, corrija o problema de sintaxe ou caminho relatado e, em seguida, recarregue o systemd novamente. Se o serviço for encerrado sem sucesso, a saída do journal geralmente identifica um caminho PHP inválido, usuário incorreto, condição de falha ou erro de tempo de execução do Nextcloud. Se o temporizador não tiver uma próxima execução, verifique o nome exato do arquivo do temporizador, execute `systemctl get service` daemon-reloade confirme se ele foi ativado com `systemctl enable service` systemctl is-enabled nextcloudcron.timer.

Após a próxima ativação do temporizador, verifique novamente o status dos trabalhos em segundo plano do Nextcloud. Ele deve mostrar um horário de execução recente, em vez de um aviso de desatualização. Se o temporizador e o serviço relatarem execuções bem-sucedidas, mas a página de administração ainda parecer desatualizada, verifique os logs da instância e a versão do PHP usada pelo servidor web; o PHP da linha de comando pode ser diferente do ambiente de execução web. Esta configuração aborda o agendamento do systemd em um host Linux normal. Instalações em contêineres e appliances podem gerenciar o cron por meio de seu próprio supervisor de serviço; portanto, use o método compatível com a plataforma em vez de adicionar unidades de host que não podem acessar os arquivos do contêiner.

Deixar um comentário

Configure o Cron do Nextcloud para funcionar automaticamente com um temporizador do Systemd.

Verifique o modo cron do Nextcloud, repare o serviço systemd e o temporizador, e certifique-se de que as tarefas em segundo plano sejam executadas após a inicialização e a cada cinco minutos.

Remova o aviso de bloqueio de arquivos do Nextcloud com o Redis.

Habilite o bloqueio de arquivos confiável do Nextcloud, escolha o backend Redis ou Valkey adequado e verifique se o aviso desaparece sem risco de alterações simultâneas nos arquivos.

O que é preciso para alcançar uma classificação de segurança A+ no Nextcloud

O que é preciso para alcançar uma classificação de segurança A+ no Nextcloud

Corrija problemas comuns encontrados em verificações do Nextcloud com as atualizações mais recentes, HTTPS e HSTS, configuração precisa de proxy reverso e verificações em relação ao servidor público.

Habilite a criptografia do lado do servidor do Nextcloud com impacto mensurável.

Configure o Nextcloud SSE para o armazenamento que precisa dele, proteja as chaves de criptografia e meça o impacto na transferência e na CPU antes de criptografar os arquivos existentes.

Adicione a pesquisa de texto completo do Elasticsearch ao Nextcloud.

Conecte a busca de arquivos do Nextcloud ao Elasticsearch, indexe o conteúdo dos documentos e escolha uma configuração que se adapte às suas necessidades de servidor e segurança.

Defina uma política de expiração confiável para arquivos excluídos do Nextcloud.

Defina uma política de expiração confiável para arquivos excluídos do Nextcloud.

Configure o Nextcloud para remover arquivos excluídos após um período de retenção definido, agendar tarefas em segundo plano de forma confiável e evitar comandos que esvaziam a lixeira de todos os usuários.

Limpar aviso de índices de banco de dados ausentes do Nextcloud

Limpar aviso de índices de banco de dados ausentes do Nextcloud

Execute o reparo do OCC do Nextcloud com segurança, visualize as alterações no banco de dados e verifique por que o aviso pode persistir.

Aumente o limite de upload da web do Nextcloud para além de 2 GB.

Aumente o limite de upload da web do Nextcloud para além de 2 GB.

Permita uploads maiores pelo navegador Nextcloud alinhando as configurações de PHP, Nginx ou Apache, armazenamento temporário e tempo limite — e verifique qual limite está bloqueando o arquivo.

Limpar o aviso de memória PHP do Nextcloud no servidor web

Defina o limite de memória PHP que o Nextcloud realmente utiliza, reinicie o serviço correto e confirme a configuração de 512 MB na Visão Geral do Administrador.

Conecte um bucket compatível com S3 ao armazenamento externo do Nextcloud.

Monte um bucket de armazenamento de objetos compatível no Nextcloud usando seu backend S3, com o endpoint, as credenciais, o escopo de acesso e as etapas de verificação corretos.