قم بتشغيل Nextcloud Cron تلقائيًا باستخدام مؤقت Systemd

عندما تُشير صفحة إدارة Nextcloud إلى عدم تشغيل مهامها الخلفية مؤخرًا، فقد تتأخر عمليات التنظيف والإشعارات والمهام المجدولة الأخرى. في خادم systemd، يتمثل الحل عادةً في تشغيل Nextcloud cron.phpباستخدام حساب خادم الويب من خدمة systemd، ثم جدولة تلك الخدمة مع تفعيل مؤقت. يُقدم دليل إدارة Nextcloud الحالي مثالًا لوحدتين؛ يجب أن تتطابق المسارات وحساب الخدمة مع تثبيتك.

تحقق أولاً من سبب العطل

تُشغَّل مهام Nextcloud في الخلفية عند cron.phpاستدعائها. تُحدِّد خدمة systemd الأمر المراد تشغيله؛ ويقوم مؤقت بتشغيل هذه الخدمة وفقًا لجدول زمني. إذا كانت الخدمة تعمل يدويًا ولكن المؤقت لا يعمل، فركز على تفعيل المؤقت. أما إذا عمل المؤقت ولكن الخدمة فشلت، فافحص الأمر وبيئة PHP والأذونات.

تأكد من صحة مجلد Nextcloud ومستخدم HTTP قبل إجراء أي تعديلات. يفترض هذا المثال استخدام حسابي `nextcloud.co.uk` /var/www/nextcloudو`nextcloud.co.uk` www-data، وهما شائعان في Debian وUbuntu. قد يكون الحساب `nextcloud.co.uk` wwwrunأو apache`nextcloud.co.uk` أو حساب مستخدم آخر على أنظمة مختلفة. يتطلب Nextcloud تشغيل مهام سطر الأوامر الخاصة به كمستخدم HTTP لضمان ثبات ملكية الملفات. راجع توثيق Nextcloud occ .

اختبر نفس ملف PHP القابل للتنفيذ وبرنامج cron النصي الذي تنوي أن يستخدمه systemd:

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

استبدل اسم الحساب ومسار PHP ومسار Nextcloud الخاص بمضيفك. إذا أبلغ الأمر عن خطأ في PHP، أو امتداد مفقود، أو مشكلة في الأذونات، أو وضع الصيانة، أو فشل في الاتصال بقاعدة البيانات، فقم بحل هذه المشكلة أولاً؛ إذ لا يمكن للمؤقت إصلاح أمر فاشل.

تأكد من أن Nextcloud يستخدم cron النظام

افتح إعدادات الإدارة ← الإعدادات الأساسية ← مهام الخلفية، ثم حدد Cron إذا لم يكن محددًا بالفعل. يمكنك أيضًا تشغيل هذا الأمر من مجلد Nextcloud:

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

تُشير Nextcloud إلى أن اختيار Cron في إعدادات المسؤول ليس شرطًا أساسيًا عند cron.phpتشغيل البرنامج النصي من سطر الأوامر، لأن البرنامج النصي يُحدد الوضع تلقائيًا. يُوضح تحديده صراحةً وضع الإنتاج المقصود. تُوصي Nextcloud باستخدام Cron النظامي للإنتاج؛ كما تُوثّق وثائق مهام الخلفية مؤقتات systemd كبديل لجدولة المهام.

أصلح خدمة systemd

أنشئ أو حدّث الملف /etc/systemd/system/nextcloudcron.serviceبالمحتويات التالية. استخدم المسار الكامل لـ PHP حتى لا يعتمد systemd على shell التفاعلي 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

غيّر Userإلى حساب خادم الويب، ثمّ حدّد كلا المسارين لموقعي PHP وNextcloud المتطابقين. يتحقق الشرط من أن المثيل يعمل بشكل طبيعي قبل تشغيل المهمة. في حال فشل الشرط، قد يتجاوز systemd الخدمة؛ لذا تحقق مما إذا كان Nextcloud في وضع الصيانة، واطلع على سجل النظام قبل إزالة الشرط أو تغييره. احتفظ بالشرط KillMode=process، كما هو الحال في مثال Nextcloud، حتى تتمكن البرامج الخارجية التي يبدأها cron من الاستمرار بعد انتهاء عملية cron. لا تحتاج وحدة الخدمة إلى [Install]قسم.

أصلح المؤقت وقم بتفعيله

إنشاء /etc/systemd/system/nextcloudcron.timer. يبدأ هذا الجدول بعد خمس دقائق من بدء التشغيل، ثم ينتظر خمس دقائق بعد كل تفعيل للخدمة:

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

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

[Install]
WantedBy=timers.target

أعد تحميل systemd حتى يتمكن من قراءة ملفات الوحدة، ثم قم بتمكين المؤقت وبدء تشغيله في أمر واحد:

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

يؤدي التفعيل إلى بدء المؤقت عند إعادة تشغيل النظام لاحقًا؛ --nowيبدأه فورًا. لا تُفعّل الخدمة نفسها كما لو كانت مؤقتًا دوريًا. المؤقت هو الوحدة التي تنتمي إلى timers.target. يشرح دليل Nextcloud الحالي إعدادات الفاصل الزمني هذه وأمر التفعيل المطلوب؛ تضمنت الإصدارات القديمة من الدليل قسمًا قديمًا لتثبيت الخدمة، لذا اتبع مثال الوحدة الحالي بدلًا من ذلك.

تتبع عملية التشغيل الفاشلة وتحقق من الإصلاح

تحقق من حالة المؤقت وموعد التشغيل التالي:

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

يجب أن يظهر المؤقت في حالة الانتظار أو النشاط، ويجب أن تُظهر القائمة وقت التفعيل التالي. ثم افحص آخر عملية تشغيل للخدمة:

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

قد يبقى المؤقت نشطًا حتى عند فشل تشغيل كل خدمة، لذا راجع كلا الوحدتين. إذا كانت الخدمة مفقودة أو رفض systemd الملف، فقم بتشغيل الأمر systemd-analyze verify /etc/systemd/system/nextcloudcron.service /etc/systemd/system/nextcloudcron.timer، وصحح مشكلة بناء الجملة أو المسار المُبلغ عنها، ثم أعد تحميل systemd. إذا خرجت الخدمة دون نجاح، فغالبًا ما يُشير مُخرج السجل إلى مسار PHP غير صالح، أو مُستخدم خاطئ، أو حالة فشل، أو خطأ في وقت تشغيل Nextcloud. إذا لم يكن للمؤقت تشغيل تالٍ، فتحقق من اسم ملف المؤقت بدقة، وقم بتشغيل الأمر daemon-reload، وتأكد من تفعيله باستخدام الأمر systemctl is-enabled nextcloudcron.timer.

بعد تفعيل المؤقت التالي، تحقق من حالة مهام Nextcloud الخلفية مرة أخرى. يجب أن تُظهر وقت تنفيذ حديث بدلاً من تحذير قديم. إذا أبلغ كل من المؤقت والخدمة عن عمليات تشغيل ناجحة، ولكن صفحة الإدارة لا تزال تبدو قديمة، فتحقق من سجلات المثيل وإصدار PHP المستخدم من قِبل خادم الويب؛ فقد يختلف إصدار PHP المستخدم في سطر الأوامر عن إصدار PHP المستخدم في بيئة تشغيل الويب. يُعالج هذا الإعداد جدولة systemd على مضيف Linux عادي. قد تُدير عمليات التثبيت المُحاوياتية والأجهزة cron من خلال مُشرف الخدمة الخاص بها، لذا استخدم الطريقة المدعومة من تلك المنصة بدلاً من إضافة وحدات مضيفة لا يمكنها الوصول إلى ملفات الحاوية.

اترك تعليقاً

قم بتشغيل Nextcloud Cron تلقائيًا باستخدام مؤقت Systemd

تحقق من وضع cron الخاص بـ Nextcloud، وقم بإصلاح خدمة systemd والمؤقت الخاص به، وتأكد من تشغيل المهام الخلفية بعد بدء التشغيل وكل خمس دقائق.

إزالة تحذير قفل الملفات من Nextcloud باستخدام Redis

قم بتمكين قفل الملفات الموثوق به في Nextcloud، واختر الواجهة الخلفية المناسبة Redis أو Valkey، وتحقق من إزالة التحذير دون المخاطرة بتغييرات الملفات المتزامنة.

ما يلزم للحصول على تصنيف أمان A+ من Nextcloud

ما يلزم للحصول على تصنيف أمان A+ من Nextcloud

قم بإصلاح نتائج فحص Nextcloud الشائعة من خلال التحديثات الحالية، و HTTPS و HSTS، والثقة الدقيقة في الخادم الوكيل العكسي، وعمليات التحقق من الخادم العام.

تفعيل تشفير جانب الخادم في Nextcloud مع قياس التأثير

قم بتكوين Nextcloud SSE للتخزين الذي يحتاج إليه، وقم بحماية مفاتيح التشفير، وقم بقياس تأثير النقل ووحدة المعالجة المركزية قبل تشفير الملفات الموجودة.

أضف خاصية البحث النصي الكامل في Elasticsearch إلى Nextcloud

قم بتوصيل خاصية البحث عن الملفات في Nextcloud بـ Elasticsearch، وقم بفهرسة محتويات المستندات، واختر إعدادًا يناسب احتياجات الخادم والأمان لديك.

تحديد سياسة انتهاء صلاحية موثوقة للملفات المحذوفة من Nextcloud

تحديد سياسة انتهاء صلاحية موثوقة للملفات المحذوفة من Nextcloud

قم بتكوين Nextcloud لإزالة الملفات المحذوفة بعد فترة احتفاظ محددة، وجدولة مهام الخلفية بشكل موثوق، وتجنب الأوامر التي تقوم بمسح سلة المهملات الخاصة بكل مستخدم.

تحذير: مسح فهارس قاعدة البيانات المفقودة في Nextcloud

تحذير: مسح فهارس قاعدة البيانات المفقودة في Nextcloud

قم بتشغيل أداة إصلاح OCC الخاصة بـ Nextcloud بأمان، واستعرض تغييرات قاعدة البيانات، وتحقق من سبب استمرار التحذير.

ارفع حد تحميل الملفات على Nextcloud إلى ما يزيد عن 2 جيجابايت

ارفع حد تحميل الملفات على Nextcloud إلى ما يزيد عن 2 جيجابايت

السماح بتحميل ملفات أكبر حجماً عبر متصفح Nextcloud عن طريق ضبط إعدادات PHP أو Nginx أو Apache والتخزين المؤقت والمهلة الزمنية - والتحقق من الحد الذي يمنع الملف.

إزالة تحذير ذاكرة PHP الخاص بـ Nextcloud على خادم الويب

قم بتعيين حد ذاكرة PHP الذي يستخدمه Nextcloud فعليًا، وأعد تشغيل الخدمة الصحيحة، وتأكد من إعداد 512 ميجابايت في نظرة عامة على المسؤول.

قم بتوصيل حاوية تخزين متوافقة مع S3 بوحدة تخزين خارجية في Nextcloud

قم بتثبيت حاوية تخزين كائنات متوافقة في Nextcloud باستخدام الواجهة الخلفية S3 الخاصة بها، مع نقطة النهاية الصحيحة، وبيانات الاعتماد، ونطاق الوصول، وخطوات التحقق.