انتقل إلى المحتوى الرئيسي انتقل إلى الملاحة انتقل إلى التذييل

تطبيق سطر الأوامر

دليل شامل لاستخدام واجهة سطر أوامر Rediacc لإدارة المنصة

مرجع سطر أوامر Rediacc

نظرة عامة

**Rediacc CLI** (`rdc`) هي واجهة سطر أوامر لإدارة البنية التحتية ذاتية الاستضافة: الأجهزة، والمستودعات، والتخزين، والنسخ الاحتياطية، والمزيد.

التثبيت

قم بتنزيل أحدث ملف تنفيذي لمنصتك من [صفحة إصدارات Rediacc](https://www.rediacc.com) أو قم بالتثبيت عبر مدير الحزم الخاص بك:

# macOS / Linux
curl -fsSL https://www.rediacc.com | sh

# Or use the packaged binary directly
./rdc --help

الخيارات العامة

يدعم كل أمر هذه العلامات العامة:

العلامةالوصف
--outputصيغة المخرجات (table|json|yaml|csv). Override default with REDIACC_DEFAULT_OUTPUT.
--configاستخدام إعدادات محددة لهذا الأمر
--langتجاوز اللغة ({{languages}})
--forceتخطي نوافذ التأكيد

1. إدارة الإعدادات

إدارة ملفات التكوين: الإنشاء، والتبديل، والتحرير، وتسوية الحالة، والمرافق الشاملة (الحقول، التدقيق، مفاتيح SSH، المزامنة البعيدة).

تخزن ملفات الإعدادات تفاصيل الاتصال (عنوان URL للـ API، بيانات الاعتماد، الفريق/المنطقة/الجسر الافتراضي) حتى تتمكن من التبديل بين البيئات بسرعة.

1.1 prune

إزالة الأوزان الميتة من ملف التكوين المحلي في ~/.config/rediacc/<config>.json. يتم تنظيف ثلاث مجموعات، جميعها محلية بحتة (بدون مكالمات SSH/renet): (1) إدخالات ذاكرة التخزين المؤقت لشهادات ACME التي لم يعد المرسى GUID/repo/machine الخاص بها موجوداً في التكوين النشط؛ (2) المستودعات المؤرشفة التي انتهت فترة سماحها (افتراضياً 7 أيام، انظر defaults.pruneGraceDays)؛ (3) المراجع المتقاطعة المعلقة (machine→strategy، strategy→repo). الموارد المستخدمة وبيانات الاعتماد ورموز التخزين والمضيفات المعروفة لا تُلمس أبداً. السلوك الافتراضي هو تطبيق التغييرات؛ مرر --dry-run للمعاينة فقط.

rdc config prune [options]
العلامةالوصفمطلوبافتراضي
--dry-runمعاينة ما سيتم إزالته دون تعديل ملف التكوين. يعكس دلالات الإيقاف الافتراضية لأوامر التنظيف الأخرى.لا-
--certs-onlyتقييد ذاكرة التخزين المؤقت لشهادات ACME. يتخطى تطهير الأرشيف وتنظيف المراجع المتقاطعة. حصري بشكل متبادل مع --archives-only و --refs-only.لا-
--archives-onlyتقييد لتطهير الأرشيف المنتهي. يتخطى ذاكرة التخزين المؤقت للشهادات وتنظيف المراجع المتقاطعة. حصري مع --certs-only و --refs-only.لا-
--refs-onlyتقييد للمراجع المتقاطعة المعلقة (machine→strategy، استثناءات/تضمينات strategy→repo). يتخطى ذاكرة التخزين المؤقت للشهادات والأرشيف. حصري مع --certs-only و --archives-only.لا-
--purge-archivedإسقاط جميع المستودعات المؤرشفة بغض النظر عن العمر، ليس فقط تلك التي تجاوزت فترة السماح. مكافئ لتشغيل 'rdc repo admin archive purge' لكل مستودع مؤرشف. استخدم فقط عندما تكون متأكدًا من أنك لا تحتاج إلى أي من بيانات الاعتماد المخزَّنة للاستعادة.لا-
--orphan-reposيزيل إدخالات المستودعات غير المرتبطة بأي جهاز. يحتوي كل إدخال على بيانات الاعتماد ومفتاح SSH الخاص بذلك المستودع، لذا فإن هذا الإجراء لا رجعة فيه. شغّل أولًا 'rdc config reconcile' حتى يعكس التوزيع الأجهزة الفعلية.لا-
--gone-machine-reposأرشفة إدخالات المستودعات الموضوعة على جهاز لم يعد في الإعداد. تُؤرشف ولا تُحذف: يحتفظ كل منها ببيانات اعتماده ويبقى قابلًا للاستعادة حتى تنتهي مهلة الأرشيف. يحدد هذه الفئة فقط: تُتخطى فئات ذاكرة الشهادات المؤقتة والأرشيفات والمراجع المتقاطعة ما لم يُمرَّر أيضاً خيارها --*-only الخاص بها.لا-
--grace-days <days>تجاوز نافذة سماح الأرشيف (بالأيام) لهذا الاستدعاء. يعود إلى defaults.pruneGraceDays في التكوين، ثم إلى 7 إذا لم يتم تعيين أي منهما.لا-

1.2 init

إنشاء ملف إعدادات مسمى جديد

في الوضع المحلي يمكنك إضافة الآلات مباشرة:

rdc config init [name] [options]
العلامةالوصفمطلوبافتراضي
--ssh-key <path>المسار إلى مفتاح SSH الخاص (مثال: ~/.ssh/id_rsa)لا-
--renet-path <path>المسار إلى ثنائي renet (افتراضي: renet في PATH)لا-
--master-password <password>تشفير الموارد بكلمة مرور رئيسيةلا-
--server <url>عنوان خادم الحسابلا-

1.3 list

عرض جميع ملفات الإعدادات

rdc config list

1.4 show

عرض تفاصيل الإعدادات الحالية

rdc config show [options]
العلامةالوصفمطلوبافتراضي
--revealعرض النص الصريح للقيم الحساسة (الوضع التفاعلي فقط)لا-

1.5 current

عرض الإعدادات النشطة: الاسم، الملف، الخادم والقناة بعد الحل، حالة الرمز

rdc config current

1.6 delete

حذف ملف إعدادات

rdc config delete <name>

1.7 set

تعيين قيمة افتراضية (فريق، منطقة، جسر)

rdc config set <key> <value>

1.8 clear

مسح القيم الافتراضية (الكل أو مفتاح معين)

rdc config clear [key]

1.9 recover

استعادة الإعدادات من ملف النسخة الاحتياطية (.bak)

rdc config recover [name] [options]
العلامةالوصفمطلوبافتراضي
-y, --yesتخطي نافذة التأكيدلا-

1.10 ssh

إدارة إعدادات مفتاح SSH

set

تعيين مفتاح SSH للإعدادات الحالية

rdc config ssh set [options]
العلامةالوصفمطلوبافتراضي
--key <path>مسار ملف مفتاح SSH الخاصنعم-
--embedتضمين محتوى المفتاح في الإعدادات بدلاً من تخزين المسارلا-

show

عرض إعدادات مفتاح SSH الحالية

rdc config ssh show

remove

إزالة مفتاح SSH من الإعدادات الحالية

rdc config ssh remove

1.11 remote

إدارة اتصال تخزين الإعدادات عن بُعد

enable

ربط هذه الإعدادات بالتخزين المشفر عن بُعد

rdc config remote enable [options]
العلامةالوصفمطلوبافتراضي
--master-passwordالتسجيل بلا واجهة رسومية باستخدام فتحة كلمة مرور مُجهَّزة مسبقًا (بلا متصفح)لا-
--master-password-stdinمثل --master-password، مع قراءة كلمة المرور الرئيسية من stdinلا-
--api-url <url>عنوان خادم الحسابلا-
--forceاستبدال المحتوى المحلي المختلف بنسخة الخادم دون تأكيدلا-
--config-id <id>أرفِق بهذه الإعدادات الموجودة في المخزن بدلاً من إنشاء إدخال جديدلا-

disable

قطع الاتصال بالتخزين عن بُعد وحفظ الإعدادات محلياً

rdc config remote disable [options]
العلامةالوصفمطلوبافتراضي
--localفكّ الارتباط على هذا الجهاز فقط، من النسخة المخزنة مؤقتاً، دون الاتصال بالخادملا-
-y, --yesتخطي نافذة التأكيدلا-

status

عرض حالة الاتصال عن بُعد

rdc config remote status

master-password

إدارة كلمة المرور الرئيسية لهذا العضو (فتحة كلمة المرور)

change:

تغيير كلمة المرور الرئيسية: إعادة تغليف مفتاح الإعدادات من تسجيل هذا الجهاز ضمن فتحة كلمة مرور جديدة

rdc config remote master-password change [options]
العلامةالوصفمطلوبافتراضي
--new-master-password-stdinاقرأ كلمة المرور الرئيسية الجديدة من stdin (وإلا فمن REDIACC_NEW_STORE_MASTER_PASSWORD، أو عبر مطالبة في TTY)لا-

refresh

إعادة جلب الإعدادات من التخزين عن بُعد

rdc config remote refresh

versions

عرض الإصدارات السابقة من هذه الإعدادات المحفوظة على الخادم

rdc config remote versions [options]
العلامةالوصفمطلوبافتراضي
--explainعرض مؤشرات JSON التي غيّرها كل إصدار، من الإصدارات التي احتفظ بها الخادملا-

restore

نشر إصدار سابق من هذه الإعدادات بوصفه أحدث إصدار لها

rdc config remote restore <version> [options]
العلامةالوصفمطلوبافتراضي
-y, --yesتخطي نافذة التأكيدلا-

1.12 field

عمليات حقول التكوين المعنونة بالمؤشرات (get/set/unset/rotate/list). مؤشرات JSON (RFC 6901) مثل /credentials/cfDnsApiToken.

get

قراءة قيمة تكوين واحدة بواسطة مؤشر JSON. تُخفى الحقول الحساسة إلا باستخدام --reveal (للمستخدمين البشريين فقط).

rdc config field get [options]
العلامةالوصفمطلوبافتراضي
--pointer <pointer>مؤشر JSON إلى الحقل (مثال: /credentials/cfDnsApiToken)نعم-
--revealإظهار النص الصريح للقيم الحساسة (طرفية تفاعلية فقط؛ يُسجَّل في التدقيق)لا-
--digestطباعة تلخيص SHA-256 بدلاً من القيمة (آمن للمشاركة مع العملاء الذكيين)لا-

set

كتابة قيمة تكوين عند مؤشر JSON. المسارات الحساسة تتطلب --current (بوابة المعرفة).

rdc config field set [options]
العلامةالوصفمطلوبافتراضي
--pointer <pointer>مؤشر JSON إلى الحقل (مثال: /credentials/cfDnsApiToken)نعم-
--new <value>القيمة الجديدة (تُفسَّر كـ JSON إذا بدأت بـ { [ " أو true/false/null/رقم)نعم-
--current <value>القيمة الصريحة الحالية - مطلوبة لتعديل المسارات الحساسة (إثبات بوابة المعرفة)لا-

unset

حذف قيمة تكوين عند مؤشر JSON. المسارات الحساسة تتطلب --current.

rdc config field unset [options]
العلامةالوصفمطلوبافتراضي
--pointer <pointer>مؤشر JSON إلى الحقل (مثال: /credentials/cfDnsApiToken)نعم-
--current <value>القيمة الصريحة الحالية - مطلوبة لحذف المسارات الحساسةلا-

rotate

تدوير قيمة حساسة دون --current. طرفية تفاعلية فقط؛ يُسجَّل بشكل بارز.

rdc config field rotate [options]
العلامةالوصفمطلوبافتراضي
--pointer <pointer>مؤشر JSON إلى الحقل الحساس (مثال: /credentials/cfDnsApiToken)نعم-
--new <value>قيمة جديدةنعم-

list

سرد كل قالب مؤشر مسجّل مع نوعه وسياسة الالتزام/التشفير.

rdc config field list [options]
العلامةالوصفمطلوبافتراضي
--sensitiveعرض القوالب الحساسة فقط (غير العامة)لا-

1.13 edit

فتح التكوين الحالي في $EDITOR كإسقاط JSONC مُخفى. للمستخدمين البشريين فقط؛ يُرفض العملاء.

rdc config edit [options]
العلامةالوصفمطلوبافتراضي
--revealإظهار النص الصريح للقيم الحساسة (طرفية تفاعلية فقط؛ يُسجَّل في التدقيق)لا-
--dumpطباعة التكوين الحالي كـ JSONC إلى stdout بدلاً من فتح المحرر (للقراءة فقط؛ آمن للعملاء عند الإخفاء)لا-
--apply <file>تطبيق ملف JSONC معدّل (يتخطى إطلاق $EDITOR)لا-
--current-secrets <file>ملف JSON يربط المؤشر → النص الصريح القديم لبوابة المعرفة عند --applyلا-
--editor <cmd>أمر المحرر البديل (يتبع تسلسل git: --editor > $GIT_EDITOR > git config core.editor > $VISUAL > $EDITOR)لا-

1.14 audit

فحص سجل تدقيق التكوين (JSONL متسلسل التجزئة في ~/.config/rediacc/audit.log.jsonl)

log

طباعة أحدث إدخالات التدقيق بصيغة JSON

rdc config audit log [options]
العلامةالوصفمطلوبافتراضي
--since <spec>إظهار الإدخالات الأحدث من (مثال: '24h', '7d', طابع زمني ISO)لا-
--path <glob>تصفية حسب نمط مؤشر JSON (مثال: /credentials/*)لا-
--actor <kind>تصفية حسب نوع الفاعل (human|agent)لا-

tail

بث الإدخالات الجديدة أثناء كتابتها (Ctrl+C للإيقاف)

rdc config audit tail

verify

التحقق من سلامة سلسلة تجزئة SHA-256 عبر جميع إدخالات التدقيق

rdc config audit verify

1.15 reconcile

إعادة بناء حالة وقت التشغيل من واقع الأجهزة. يُصلح بيانات الإرفاق والتوجيه القديمة.

rdc config reconcile [options]
العلامةالوصفمطلوبافتراضي
--machine <m...>تقييد التسوية بهذه الأجهزةلا-
--dry-runعرض ما سيتم تنفيذه دون إجراء تغييراتلا-
--accept-observedإعادة كتابة الموضع المُعلن ليطابق مكان الصورة الفعلي، ولكن فقط عندما يكون ذلك لا لبس فيه (مُلاحظ على جهاز واحد بالضبط). التكرارات تبقى تعارضات.لا-

1.16 rotate-cek

تدوير مفتاح تشفير تكوين المؤسسة

rdc config rotate-cek [options]
العلامةالوصفمطلوبافتراضي
--api-url <url>عنوان خادم الحسابلا-

1.17 access

إدارة مفاتيح الوصول في التكوين: مفاتيح SSH العامة التي تكتبها CLI في authorized_keys الخاص بالجهاز مع قيد from= على نطاقات IPv4 و IPv6 المعلنة. اربط المفتاح بجهاز باستخدام 'machine access set' ثم طبّقه باستخدام 'machine access push'

add

إضافة مفتاح وصول، أو تحديث مفتاح موجود في مكانه مع الإبقاء على ارتباطاته بالأجهزة. تسري النطاقات المحددة هنا على المفتاح في كل جهاز ما لم يحدد الارتباط نطاقاته الخاصة؛ وبدون نطاقات تسري نطاقات التكوين العامة

rdc config access add <key> [options]
العلامةالوصفمطلوبافتراضي
--public-key <key>سطر مفتاح OpenSSH العام، أو مسار ملف يحتويهنعم-
--hosted-executorإضافة نطاقات الصادر المرصودة للمنفّذ المستضاف (104.28.0.0/16 و 2a09:bac0::/29)لا-
--ipv4 <cidrs>نطاقات IPv4 بصيغة CIDR (مفصولة بفواصل، مثل 203.0.113.0/24)لا-
--ipv6 <cidrs>نطاقات IPv6 بصيغة CIDR (مفصولة بفواصل، مثل 2001:db8::/32)لا-
--no-restrictكتابة from= وحده، دون قيود no-forwarding و no-pty و no-user-rcلا-

remove

إزالة مفتاح وصول من التكوين

rdc config access remove <key>

ranges

تعيين نطاقات المصدر التي يستخدمها كل مفتاح وصول ما لم يحدد المفتاح أو ارتباطه بالجهاز نطاقاته الخاصة. بدون خيارات تُعرض النطاقات الحالية

rdc config access ranges [options]
العلامةالوصفمطلوبافتراضي
--hosted-executorإضافة نطاقات الصادر المرصودة للمنفّذ المستضاف (104.28.0.0/16 و 2a09:bac0::/29)لا-
--ipv4 <cidrs>نطاقات IPv4 بصيغة CIDR (مفصولة بفواصل، مثل 203.0.113.0/24)لا-
--ipv6 <cidrs>نطاقات IPv6 بصيغة CIDR (مفصولة بفواصل، مثل 2001:db8::/32)لا-
--clearإزالة النطاقات العامة للتكوينلا-

list

عرض مفاتيح الوصول في التكوين

rdc config access list

2. إدارة مخزن البيانات

تجمّعات تخزين مسماة تحمل المستودعات. مخزن البيانات متنقّل (أرفقه بجهاز، انقله إلى آخر) وأحادي الحامل (جهاز واحد بالضبط يحمله في كل مرة). مخزن البيانات الافتراضي الضمني على كل جهاز لا يُدار هنا.

2.1 resize

توسيع أو تقليص مخزن بيانات. هذه عملية غير متصلة: يجب إيقاف المستودعات بداخله.

rdc datastore resize <datastore> [options]
العلامةالوصفمطلوبافتراضي
--size <size>الحجم الجديد (مثلاً 200G)نعم-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

2.2 fork

تفريع مخزن بيانات بنسخ-عند-الكتابة. التفريع فوري وتكلفته لا تنمو مع حجم التجمّع. يحتاج خلفية rbd: مخزن البيانات local ليس له نسخ على مستوى الكتل، لذا تُفرَّع المستودعات بداخله واحدًا تلو الآخر عبر reflink بدلاً من ذلك (rdc repo fork).

rdc datastore fork <datastore> [options]
العلامةالوصفمطلوبافتراضي
--tag <tag>وسم النسخة المتفرعة (تكون النتيجة name:tag)نعم-
--attach-to <machine>إرفاق النسخة المتفرعة بهذا الجهاز فورًا (يتطلب --writes)لا-
--writes <disposition>وجهة كتابات النسخة المتفرعة: local (فوري، مؤقت) أو ceph (نسخة دائمة)لا-
--cow-size <size>حجم الطبقة التراكبية لـ --writes localلا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

2.3 status

عرض مخزن بيانات واحد: خلفيته، وإرفاقه، واستخدامه، ومستودعاته، ولقطاته. مخزن البيانات غير المرفق لا يزال يُبلِّغ عن سجله.

rdc datastore status <datastore> [options]
العلامةالوصفمطلوبافتراضي
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

2.4 create

إنشاء مخزن بيانات إضافي مسمى على جهاز. الخلفية local هي تجمّع مدعوم بملف على ذلك الجهاز ويبقى هناك. الخلفية rbd تعيش في Ceph، لذا يمكنها الانتقال إلى أي جهاز يصل إلى نفس العنقود. مرّر --cluster لجعله مخزن بيانات من عالم Kubernetes؛ هذا المرجع الخلفي ثابت عند الإنشاء.

rdc datastore create <datastore> [options]
العلامةالوصفمطلوبافتراضي
-m, --machine <name>الجهاز المُراد إنشاء مخزن البيانات عليهنعم-
--size <size>حجم مخزن البيانات (مثلاً 100G)نعم-
--backend <type>خلفية التخزين: local (مدعومة بملف، تبقى على هذا الجهاز) أو rbd (Ceph، قابلة للنقل)لاlocal
--pool <name>تجمّع Ceph لخلفية rbd (الافتراضي: rbd)لا-
--image <name>اسم صورة RBD لخلفية rbd (الافتراضي: اسم مخزن البيانات)لا-
--cluster <name>عنقود Kubernetes الذي ينتمي إليه مخزن البيانات هذا. تعيينه يعني مستودعات Kubernetes فقط؛ عدم تعيينه يعني مستودعات Docker فقط. يُحدَّد بشكل ثابت عند الإنشاء.لا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

2.5 list

عرض مخازن البيانات المسماة، وأماكن إرفاقها، وما تحتويه.

rdc datastore list [place]

2.6 attach

إرفاق مخزن بيانات بجهاز. جهاز واحد بالضبط يحمل مخزن البيانات في كل مرة، لذا فإن إرفاقه في مكان آخر يعني نقله: يتخلى الحامل القديم عنه أولاً، وإذا فشل التسليم يبقى الإرفاق الأصلي سليمًا. يجب على النسخة المتفرعة تحديد وجهة كتاباتها.

rdc datastore attach <datastore> [options]
العلامةالوصفمطلوبافتراضي
--to <machine>الجهاز المُراد إرفاق مخزن البيانات بهنعم-
--writes <disposition>وجهة كتابات النسخة المتفرعة: local (فوري، مؤقت، يُفقد عند الفصل) أو ceph (نسخة دائمة في التجمّع). مطلوب للنسخة المتفرعة.لا-
--cow-size <size>حجم الطبقة التراكبية لـ --writes localلا-
--no-autoعدم إعادة إرفاق مخزن البيانات هذا تلقائيًا عند الإقلاعلا-
--forceتسييج (fence) حامل قديم لم يتخلَّ عن مخزن البيانات بشكل نظيفلا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

2.7 detach

فصل مخزن بيانات عن جهازه. تتوقف المستودعات بداخله أولاً. النسخة المتفرعة المرفقة بـ --writes local ليس لديها مكان تكتب طبقتها التراكبية إليه، لذا فصلها يتخلّى عن الطبقة التراكبية ويتطلب --discard.

rdc datastore detach <datastore> [options]
العلامةالوصفمطلوبافتراضي
--discardالتخلي عن نسخة متفرعة بكتابات محلية وطبقتها التراكبية. البيانات غير قابلة للاسترجاع.لا-
-y, --yesتخطي نافذة التأكيدلا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

2.8 snapshot

أخذ وعرض اللقطات اللحظية لمخزن بيانات. اللقطة لا تكلّف شيئًا وهي ثابتة، وهي ما تستنسخ منه النسخة المتفرعة.

create

أخذ لقطة لحظية لمخزن بيانات. لا يتوقف شيء. اللحظة متّسقة عبر الانهيار، وليست متّسقة على مستوى التطبيق: إذا احتجت أن تكون كتابة معيّنة داخل اللقطة، زامنها أولاً.

rdc datastore snapshot create <datastore> [options]
العلامةالوصفمطلوبافتراضي
--snapshot <label>تسمية اللقطة (الافتراضي: طابع زمني UTC)لا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

list

عرض لقطات مخزن البيانات.

rdc datastore snapshot list <datastore> [options]
العلامةالوصفمطلوبافتراضي
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

2.9 delete

تدمير مخزن بيانات وكل ما فيه. يُفصل أولاً؛ إذا تعذّر فصله بشكل نظيف، يفشل الحذف بدلاً من ترك تجمّع مركّب يتيمًا.

rdc datastore delete <datastore> [options]
العلامةالوصفمطلوبافتراضي
-y, --yesتخطي نافذة التأكيدلا-
--forceالحذف حتى لو كانت مستودعات لا تزال تشير إليه. تُحذف بياناتها معه.لا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

3. إدارة الأجهزة

فحص حالة الأجهزة البعيدة: موارد النظام، والحاويات قيد التشغيل، وخدمات systemd، والمستودعات المنشورة، وتشخيصات الصحة. استعلامات للقراءة فقط؛ لتعديل المستودعات استخدم `repo`. الأوامر الفرعية الرئيسية: status (الحالة الكاملة، مُضيَّقة بـ --system و--containers و--repositories و--services)، health، list، add، remove، setup، prune، provision، deprovision.

3.1 list

قائمة الآلات

rdc machine list [options]
العلامةالوصفمطلوبافتراضي
--search <text>البحث في {{field}}لا-
--sort <field>الترتيب حسب الحقللا-
--descالفرز بترتيب تنازليلا-

3.2 health

فحص صحة الآلة لأنابيب CI/CD

يُخرج أمر health مقاييس النظام وحالة الحاويات واستقرار الخدمات ومعلومات التخزين، وهو مفيد لفحوصات خطوط أنابيب CI/CD.

rdc machine health <name>

3.3 repair

يشغّل الإصلاحات الآمنة لنتائج فحص صحة الجهاز ثم يعيد الفحص (رمز الخروج 0: لم يبقَ شيء، 1: بقيت تحذيرات أو مهام للمشغّل، 2: بقي خطأ أو فشل إصلاح)

rdc machine repair <name> [options]
العلامةالوصفمطلوبافتراضي
--dry-runيسرد الإصلاحات التي ستُشغَّل دون تشغيلهالا-
--code <code>يصلح رمز النتيجة هذا فقط (قابل للتكرار)لا-
--with-backupيسمح بإصلاحات auto-with-backup، كلٌّ منها بعد لقطة ناجحة لمستودعهلا-
--window-overrideيشغّل إصلاحات window=only خارج نافذة الصيانةلا-
--set-window <window>يحفظ نافذة صيانة الجهاز (HH:MM-HH:MM بتوقيت UTC) أو يمسحها بـ off ثم يخرجلا-

3.4 provision

توفير جهاز جديد على مزود سحابي باستخدام OpenTofu

rdc machine provision <name> [options]
العلامةالوصفمطلوبافتراضي
--provider <name>اسم المزود السحابي (من machine provider add)نعم-
--region <region>تجاوز المنطقة الافتراضيةلا-
--type <type>تجاوز نوع المثيل الافتراضيلا-
--image <image>تجاوز صورة نظام التشغيل الافتراضيةلا-
--ssh-user <user>اسم مستخدم SSH للجهاز الافتراضي الجديد (الافتراضي: root)لا-
--base-domain <domain>النطاق الأساسي للبنية التحتية (مثال: example.com). يتضمن --infraلا-
--no-infraتخطي تكوين البنية التحتية (الوكيل + DNS)لا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

3.5 deprovision

تدمير جهاز مُوفَّر سحابياً وإزالته من الإعدادات

rdc machine deprovision <name> [options]
العلامةالوصفمطلوبافتراضي
--forceتخطي نافذة التأكيدلا-
--archive-reposأرشفة إدخالات الإعداد للمستودعات الموضوعة على هذا الجهاز (تُحفظ بيانات الاعتماد وتبقى قابلة للاستعادة)لا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

3.6 prune

إزالة موارد مخزن البيانات المعزولة واللقطات القديمة من جهاز

rdc machine prune <name> [options]
العلامةالوصفمطلوبافتراضي
--dry-runعرض ما سيتم إزالته دون إجراء تغييراتلا-
--orphaned-reposحذف كل صورة مستودع على الجهاز غير موجودة في تكوين CLI المحلي لديك. سلوك خشن: يحذف أيضًا النسخ المتفرعة التي أنشأتها أدوات أخرى ولا يوجد لها إدخال تكوين محلي، حتى عندما تحدِّدها مرآة renet بشكل صحيح كنسخ متفرعة. استخدم --prune-unknown للسلوك الأضيق الذي يحترم المرآة.لا-
--prune-unknownحذف فقط المستودعات التي لا يستطيع مرآة renet .interim/state تصنيفها (ليست في التكوين المحلي ولا تحتوي على مرآة موسومة بالشوكة). أضيق بشكل صارم من --orphaned-repos: تتم المحافظة على الشوكات بدون تكوين عندما تحددها المرآة. المتبقيات القديمة قبل المرآة والأجداد القدامى الذين تم حذف إدخال التكوين الخاص بهم يقعون كلاهما في هذه الفئة.لا-
--force-delete-mountedتجاوز فحص أمان التركيب وحذف المستودعات حتى لو كانت مركبة حالياً أو تحتوي على حاويات Docker قيد التشغيل. مختلف عن --force (الذي يتجاوز فترة السماح للأرشيف فقط). ينطبق على كل من --orphaned-repos و --prune-unknown.لا-
--forceتخطي نوافذ التأكيدلا-
--grace-days <days>فترة السماح بالأيام للمستودعات المؤرشفة حديثًا (الافتراضي: 7)لا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

3.7 converge

يعيد تشغيل كل خدمة مستودع ما زالت تعمل بتخطيط قديم لبيئة التشغيل، واحدة تلو الأخرى، لتنتقل إلى التخطيط الحالي. تتولى CLI ذلك تلقائيًا بعد رفع renet، ويفيد تشغيله يدويًا في معاينة الخطة أو استئناف جولة فاشلة أو، مع --policy always، إعادة التشغيل بعد أي تغيير في ملف renet التنفيذي.

rdc machine converge <name> [options]
العلامةالوصفمطلوبافتراضي
--dry-runعرض الخطة دون إعادة تشغيل أي شيءلا-
--jsonعرض تقرير المواءمة بصيغة JSONلا-
--include-unknownإعادة تشغيل المستودعات القديمة غير الموجودة في الإعدادات المحلية أيضًا (أسرار بيئتها غير معروفة)لا-
--policy <policy>سياسة إعادة التشغيل: epoch (عند تغيير التخطيط فقط) أو always (وعند أي تغيير في ملف renet التنفيذي أيضًا)لاepoch
--continue-on-errorالمتابعة بعد فشل أحد المستودعات بدلًا من إيقاف الجولةلا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

3.8 add

إضافة جهاز إلى الإعدادات الحالية

rdc machine add <name> [options]
العلامةالوصفمطلوبافتراضي
--ip <address>عنوان IP للآلة أو اسم المضيفنعم-
--user <username>اسم مستخدم SSHنعم-
--port <port>منفذ SSHلا22

3.9 infra

إدارة تكوين البنية التحتية (الوكيل، DNS، الشهادات)

cert

إدارة شهادات TLS المخزنة مؤقتاً

clear:

إزالة ذاكرة تخزين الشهادات المؤقتة

rdc machine infra cert clear

pull:

تنزيل وتخزين شهادات TLS مؤقتاً من جهاز

rdc machine infra cert pull <machine> [options]
العلامةالوصفمطلوبافتراضي
--no-pruneتخطي تنظيف شهادات معرّف الشبكة القديمةلا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

push:

رفع شهادات TLS المخزنة مؤقتاً إلى جهاز

rdc machine infra cert push <machine> [options]
العلامةالوصفمطلوبافتراضي
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

status:

عرض مخزون الشهادات المخزنة مؤقتاً

rdc machine infra cert status

push

دفع إعدادات البنية التحتية إلى الجهاز (وكيل Traefik، الموجّه، Cloudflare DNS). شغّل 'machine infra set <machine>' أولاً

rdc machine infra push <machine> [options]
العلامةالوصفمطلوبافتراضي
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

set

تعيين إعدادات البنية التحتية لجهاز (خاصة بالجهاز: عناوين IP، النطاق، المنافذ؛ مشتركة: بريد الشهادة، رمز Cloudflare DNS)

rdc machine infra set <machine> [options]
العلامةالوصفمطلوبافتراضي
--public-ipv4 <ip>عنوان IPv4 العام (لكل جهاز)لا-
--public-ipv6 <ip>عنوان IPv6 العام (لكل جهاز)لا-
--base-domain <domain>النطاق الأساسي للتطبيقات (لكل جهاز)لا-
--cert-email <email>البريد الإلكتروني لإشعارات شهادات TLS (مشترك بين الأجهزة)لا-
--cf-dns-token <token>رمز Cloudflare DNS API لتحدي ACME DNS-01 (مشترك بين الأجهزة)لا-
--tcp-ports <ports>منافذ TCP للتوجيه (مفصولة بفواصل، مثال: 25,143,465)لا-
--udp-ports <ports>منافذ UDP للتوجيه (مفصولة بفواصل، مثال: 53)لا-

show

عرض تكوين البنية التحتية لجهاز

rdc machine infra show <machine>

3.10 provider

إدارة المزودين السحابيين لتوفير الأجهزة تلقائياً

add

إضافة مزود سحابي

rdc machine provider add <name> [options]
العلامةالوصفمطلوبافتراضي
--provider <source>مصدر مزوّد معروف (مثال: linode/linode، hetznercloud/hcloud)لا-
--source <source>مصدر مزوّد OpenTofu مخصص (مثال: vultr/vultr)لا-
--token-env <var>اسم متغير البيئة الذي يحمل رمز API الخاص بالمزوّد؛ لا يُمرَّر الرمز نفسه في سطر الأوامر أبدًانعم-
--region <region>المنطقة الافتراضية للأجهزة الجديدةلا-
--type <type>نوع/حجم النسخة الافتراضيلا-
--image <image>صورة نظام التشغيل الافتراضيةلا-
--ssh-user <user>اسم مستخدم SSH للأجهزة الافتراضية الجديدة (الافتراضي: root)لا-
--resource <type>مخصص: نوع مورد OpenTofu للأجهزة الافتراضيةلا-
--label-attr <attr>مخصص: اسم سمة تسمية الجهاز الافتراضيلا-
--region-attr <attr>مخصص: اسم سمة المنطقةلا-
--size-attr <attr>مخصص: اسم سمة نوع المثيللا-
--image-attr <attr>مخصص: اسم سمة صورة نظام التشغيللا-
--ipv4-output <attr>مخصص: سمة الإخراج لعنوان IPv4لا-
--ipv6-output <attr>مخصص: سمة الإخراج لعنوان IPv6لا-
--ssh-key-attr <attr>مخصص: اسم سمة مفاتيح SSHلا-
--ssh-key-format <format>مخصص: تنسيق مفتاح SSH (inline_list أو resource_id)لا-
--ssh-key-resource <type>مخصص: نوع مورد OpenTofu لمفاتيح SSHلا-

list

عرض قائمة المزودين السحابيين المُعدّين

rdc machine provider list

remove

إزالة تكوين مزود سحابي

rdc machine provider remove <name>

3.11 remove

إزالة جهاز من التكوين الحالي

rdc machine remove <name> [options]
العلامةالوصفمطلوبافتراضي
-y, --yesتخطي نافذة التأكيدلا-
--forceإزالة الجهاز حتى لو كانت مستودعات موضوعة عليه أو استراتيجيات نسخ احتياطي مرتبطة به، ما يترك تلك المراجع معلّقة.لا-
--archive-reposأرشفة إدخالات الإعداد للمستودعات الموضوعة على هذا الجهاز (تُحفظ بيانات الاعتماد وتبقى قابلة للاستعادة)لا-

3.12 restart-services

يعيد تشغيل خدمات renet التي لا تزال تعمل بملف تنفيذي مستبدَل، واحدة تلو الأخرى، لتنتقل إلى الملف المثبّت، ويتحقق من أن كل وحدة تعمل بالملف الجديد قبل الانتقال إلى التالية. مع --include-docker يُعاد أيضًا تشغيل مشرف rediacc-docker-N لكل مستودع، مستودعًا تلو الآخر، مما يعيد تشغيل حاويات ذلك المستودع.

rdc machine restart-services <name> [options]
العلامةالوصفمطلوبافتراضي
--include-dockerإعادة تشغيل مشرف rediacc-docker-N لكل مستودع أيضًا (يعيد تشغيل حاويات المستودع)لا-
--repo <name>تقييد إعادة التشغيل بمشرف مستودع واحد (يتطلب --include-docker)لا-
--jsonطباعة التقرير بتنسيق JSONلا-

3.13 scan-keys

فحص مفاتيح SSH للأجهزة في التكوين الحالي

rdc machine scan-keys [name]

3.14 setup

تهيئة جهاز بعيد للمستودعات (تثبيت renet، إعداد Docker، مخزن بيانات BTRFS). قابل للتكرار. مطلوب بعد config machine add وقبل repo create

rdc machine setup <name> [options]
العلامةالوصفمطلوبافتراضي
--datastore-path <path>مسار مخزن البيانات على الجهاز البعيدلا/mnt/rediacc
--datastore-size <size>حجم مخزن البيانات (مثال: 95%، 100G)لا95%
--no-convergeعدم إعادة تشغيل خدمات المستودعات التي ما زالت على تخطيط قديم لبيئة التشغيل (مثل REDIACC_SKIP_RUNTIME_CONVERGE=1)لا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

3.15 status

عرض حالة الجهاز الكاملة (النظام، المستودعات، الحاويات، الخدمات). للقراءة فقط: لا يحدّث renet على الجهاز أبدًا، ويعرض تحذيرًا إذا اختلف إصداره.

rdc machine status [name] [options]
العلامةالوصفمطلوبافتراضي
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-
--systemتضمين معلومات النظام فقطلا-
--repositoriesتضمين المستودعات فقطلا-
--containersتضمين الحاويات فقطلا-
--servicesتضمين الخدمات فقطلا-
--networkتضمين واجهات الشبكة فقطلا-
--block-devicesتضمين أجهزة التخزين فقطلا-
--licensesتضمين حالات تراخيص المستودعاتلا-
--storage-healthعرض تجزئة BTRFS ووفورات reflink لكل مستودعلا-
--datastoresعرض مخازن البيانات المرفقة (التركيب، الإرفاق، الاستخدام)لا-
--health-checkوضع فحص الصحة - الخروج برمز 2 إذا وُجدت حاويات غير سليمةلا-
--stability-checkوضع فحص الاستقرار - الخروج برمز 2 إذا وُجدت خدمات فاشلة/تعيد التشغيللا-
--search <text>تصفية المستودعات حسب الاسملا-
--sync-certsاسحب أيضًا ذاكرة التخزين المؤقت لشهادات ACME من الجهاز بعد الاستعلاملا-
--strictالخروج بقيمة غير صفرية (الكود 2) إذا تجاوزت أي حاوية عتبة انحراف الصحةلا-

3.16 gpu

يعرض وحدات GPU التي يستطيع الجهاز تسليمها إلى المستودعات، وأجهزة CDI التي يوفرها، والمستودع الذي يحمل كل جهاز.

list

يعرض وحدات GPU المكتشفة على الجهاز، وأسماء أجهزة CDI التي تعرّفها مواصفاته، والمستودعات الممنوح لها كل جهاز. لمنح جهاز استخدم 'rdc repo gpu grant'.

rdc machine gpu list <name> [options]
العلامةالوصفمطلوبافتراضي
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

3.17 access

ربط مفاتيح الوصول في التكوين بجهاز وكتابتها في authorized_keys الخاص به، مع تقييد كل مفتاح بنطاقات مصدره

set

ربط مفتاح وصول بجهاز. تحل النطاقات المحددة هنا محل نطاقات المفتاح على هذا الجهاز فقط. طبّقه باستخدام 'machine access push'

rdc machine access set <machine> [options]
العلامةالوصفمطلوبافتراضي
--key <key>اسم مفتاح الوصول (انظر 'config access list')نعم-
--ipv4 <cidrs>نطاقات IPv4 بصيغة CIDR (مفصولة بفواصل، مثل 203.0.113.0/24)لا-
--ipv6 <cidrs>نطاقات IPv6 بصيغة CIDR (مفصولة بفواصل، مثل 2001:db8::/32)لا-
--clear-rangesتجاهل نطاقات هذا الجهاز الخاصة ليسري ما حدده المفتاح أو التكوين من نطاقاتلا-

remove

إلغاء ربط مفتاح وصول بجهاز. سيزيل 'machine access push' التالي سطره

rdc machine access remove <machine> [options]
العلامةالوصفمطلوبافتراضي
--key <key>اسم مفتاح الوصول (انظر 'config access list')نعم-

show

عرض مفاتيح الوصول المرتبطة بجهاز والنطاقات التي يسري كل منها هناك

rdc machine access show <machine>

push

كتابة مفاتيح الوصول المرتبطة بجهاز في authorized_keys الخاص به، مع تبنّي أي سطر موجود بالمفتاح نفسه، وإزالة أسطر هذا التكوين للمفاتيح التي لم تعد مرتبطة. يرفض أي تغيير يحجب جلسة rdc نفسها، ولا يكتب شيئًا إذا تغيّر الملف أثناء الدفع

rdc machine access push <machine> [options]
العلامةالوصفمطلوبافتراضي
--dry-runعرض التغييرات دون كتابتهالا-

4. إدارة العناقيد

تجهيز وإدارة العناقيد: مجموعات مسمّاة من تجمعات العقد (ceph وk8s-server وk8s-agent وhyperconverged) على شبكة خاصة. تتجسد أعضاء التجمع كأجهزة، بحيث يعمل كل أمر -m عليها.

4.1 create

تصريح عنقود وتجهيزه: الأجهزة، وتجمعات Ceph، وKubernetes. مرّر --provider و--pool للتصريح في خطوة واحدة؛ التنفيذ المجرد لـ create يُجهِّز عنقودًا مُصرَّحًا به بالفعل.

rdc cluster create <cluster> [options]
العلامةالوصفمطلوبافتراضي
--provider <provider>المزود: مفتاح cloudProviders، أو 'kvm'لا-
--pool <spec...>مواصفات التجمع name:role:count[:size] (الدور: ceph|k8s-server|k8s-agent|hyperconverged)لا-
--declare-onlyتسجيل العنقود في التكوين دون تجهيزهلا-
--network-cidr <cidr>CIDR الشبكة الخاصة (مثلاً 10.0.0.0/24)لا-
--network-primitive <primitive>أولية الشبكة (مثلاً vlan وvpc وnetwork)لا-
--control-node <machine>جهاز عقدة تحكم صريح (الافتراضي: أول عضو k8s-server)لا-
--net-name <name>KVM: شبكة libvirt لهذا العنقود (مثلاً renet12)لا-
--net-base <prefix>KVM: بادئة الشبكة، الأوكتيتات الثلاثة الأولى (مثلاً 192.168.112)لا-
--net-offset <n>KVM: الإزاحة المضافة إلى VM id عند اشتقاق العنوانلا-
--control-id <n>KVM: VM id لعقدة التحكم والسجل (الافتراضي: 1)لا-
--docker-registry <endpoint>KVM: نقطة نهاية سجل Docker داخل VM لهذا العنقودلا-
--ssh-user <user>مستخدم SSH للأعضاء المجهزينلا-
--base-domain <domain>النطاق الأساسي لـ DNS العام للعنقود (وإلا يُورَث من جهاز شقيق)لا-
--control-ds-size <size>حجم مخزن بيانات التحكم التأسيسي (الافتراضي 10G)لا-
--control-ds-backend <backend>خلفية مخزن بيانات التحكم المرجعي: local | ceph (الافتراضي: ceph إذا كان العنقود يحتوي على ceph، وإلا local)لا-
--control-ds-pool <pool>مجمع Ceph RBD لمخزن بيانات التحكم التأسيسي (خلفية ceph)لا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

4.2 status

سرد جميع العناقيد، أو تمرير اسم عنقود لعرض إعداداته الكاملة.

rdc cluster status [cluster]

4.3 scale

تغيير عدد أعضاء تجمع (إضافة/إزالة أجهزة وضم/تفريغ عقد). تجمعات k8s-agent تتوسع في مكانها؛ يتم نمو تجمع ceph عبر cephadm مباشرة.

rdc cluster scale <cluster> [options]
العلامةالوصفمطلوبافتراضي
--pool <pool>اسم التجمعنعم-
--count <n>عدد الأعضاء المطلوبنعم-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

4.4 destroy

تفكيك الأعضاء المجهزين وإزالة العنقود وأجهزته من الإعداد.

rdc cluster destroy <cluster> [options]
العلامةالوصفمطلوبافتراضي
--forceتخطي التأكيد والمتابعة رغم أخطاء التفكيكلا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

4.5 kubeconfig

جلب kubeconfig من عقدة تحكم العنقود عبر SSH وتخزينه مؤقتاً محلياً (0600) لـ kubectl.

rdc cluster kubeconfig <cluster>

4.6 fork

استنساخ عنقود كامل، بما في ذلك بيانات مستودعاته، إلى عنقود جديد: نسخ عند الكتابة منسّق لصور العنقود وPV، ثم إعادة كتابة هوية العقدة بحيث يقلع التفريع على عناوين جديدة. يستمر الأصل في العمل.

rdc cluster fork <cluster> [options]
العلامةالوصفمطلوبافتراضي
--tag <tag>وسم التفريعنعم-
--to <dest-cluster>العنقود الوجهة الذي تستضيف عقده التفريع (عقدة تحكمه وعماله؛ لا يمكن لعنقود أن يتفرّع على أجهزته نفسها، لأن k3s لا يمكنهما مشاركة مساحة اسم شبكة مضيف واحدة)نعم-
--writes <disposition>نمط الكتابة في التفريع: local (طبقة تراكبية dm-COW مؤقتة، بدون أي أثر على Ceph) | ceph (نسخة دائمة). الافتراضي localلا-
--upتشغيل المستودعات المُفرَّعة والتحقق من صحة العنقود بعد إقلاع التفريعلا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

4.7 migrate

نقل عنقود كامل، بما في ذلك بيانات مستودعاته، إلى جهاز أو مركز بيانات آخر بفترة انتقال قصيرة (نسخ مسبق ساخن، ثم إيقاف وإعادة تشغيل في الوجهة).

rdc cluster migrate <cluster> [options]
العلامةالوصفمطلوبافتراضي
--to <dest-cluster>الوجهةنعم-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

4.8 join

ضمّ جهاز مسجَّل موجود كعقدة عامل Kubernetes تابعة لعنقود، باستخدام نفس رمز الانضمام المُشتق من CA المستخدم عند التثبيت (anchor) وإعادة الانضمام (rejoin).

rdc cluster join <machine> [options]
العلامةالوصفمطلوبافتراضي
--cluster <name>العنقود المطلوب ضم الجهاز إليهنعم-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

4.9 evict

تفريغ العقدة، وحذف كائن Node الخاص بها، ومسح عضويتها في العنقود. يُشتق العنقود من الجهاز؛ يُرفض أي جهاز لا يزال مخزن بيانات مثبَّتًا عليه.

rdc cluster evict <machine> [options]
العلامةالوصفمطلوبافتراضي
--forceتخطي التفريغ إذا كانت العقدة ميتة بالفعللا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

4.10 rehearse

التمرين على إصدار/ترقية: تفريع العنقود إلى وجهة كنسخة مؤقتة قابلة للتخلص منها (writes=local، بلا أسرار role=rehearsal)، ثم تشغيلها والتحقق من صحتها، ثم حذفها. لا يُمَس الأصل أبدًا.

rdc cluster rehearse <cluster> [options]
العلامةالوصفمطلوبافتراضي
--on <dest-cluster>العنقود الوجهة الذي يُقلَع عليه التمرين القابل للتخلص منهنعم-
--tag <tag>وسم اختياري لتفريع التمرين (الافتراضي: بطابع زمني)لا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

4.11 snapshot

لقطات لحظية للعنقود بأكمله. لحظة واحدة متسقة عبر الانهيار (crash-consistent) عبر كل مخزن بيانات معتمد على rbd يملكه العنقود، تُؤخذ عبر لقطة المجموعة (group snapshot) في Ceph: لا يتوقف شيء ولا يلاحظ العنقود ذلك مطلقًا. مخازن البيانات بخلفية local ليس لها بدائية مجموعة على مستوى الكتل، لذا تقع خارج هذه اللحظة ويُبلَّغ عنها كذلك. اللحظة متّسقة عبر الانهيار، وليست متّسقة على مستوى التطبيق: إذا احتجت أن تكون كتابة معيّنة داخل اللقطة، زامنها أولاً.

create

أخذ لقطة لكل مخزن بيانات معتمد على rbd في العنقود في لحظة واحدة. لا يتوقف أي شيء. أي مخزن بيانات بخلفية local في العنقود يُدرَج خارج تلك اللحظة: فهو ليس جزءًا من اللقطة. اللحظة متّسقة عبر الانهيار، وليست متّسقة على مستوى التطبيق: إذا احتجت أن تكون كتابة معيّنة داخل اللقطة، زامنها أولاً.

rdc cluster snapshot create <cluster> [options]
العلامةالوصفمطلوبافتراضي
--snapshot <label>تسمية اللقطة (الافتراضي: طابع زمني UTC)لا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

list

عرض لقطات المجموعة الخاصة بالعنقود.

rdc cluster snapshot list <cluster> [options]
العلامةالوصفمطلوبافتراضي
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

5. خادم MCP

خادم MCP للوكلاء الذكية

5.1 serve

تشغيل خادم MCP (نقل stdio)

rdc mcp serve [options]
العلامةالوصفمطلوبافتراضي
--config <name>اسم الإعدادات المستخدمة لجميع الأوامرلا-
--timeout <ms>مهلة الأمر الافتراضية بالميلي ثانيةلا120000

6. دورة حياة المستودعات

نشر وإدارة المستودعات المشفرة على الأجهزة. الأوامر الفرعية الرئيسية: create، up (نشر)، down (إيقاف)، fork (استنساخ CoW فوري)، delete، push/pull (نسخ احتياطي)، sync (نقل الملفات). دورة الحياة: repo create → repo up → repo down. راجع المفاهيم الأساسية في rdc --help لتفاصيل البنية والتوجيه ومتغيرات البيئة.

6.1 up

نشر أو تحديث مستودع (التركيب، وتشغيل Rediaccfile up الذي يستدعي renet compose). يُشتق الجهاز من موضع المرجع. تستغرق مسارات الوكيل نحو 3 ثوانٍ لتصبح نشطة بعد النشر. يطبع نمط عنوان URL للخدمات المكشوفة عبر HTTP (وسم rediacc.service_port) عند الاكتمال. يُركَّب أول نشر والنسخ المتفرعة تلقائيًا. تُكتشف استعادة نقطة تفتيش CRIU تلقائيًا؛ استخدم --skip-checkpoint لفرض بدء جديد. استخدم --all --machine <m> لنشر كل مستودع على جهاز.

rdc repo up [ref] [options]
العلامةالوصفمطلوبافتراضي
--no-startتركيب المستودع وتجهيزه دون تشغيل خطوات up() الخاصة به (يطوي أمر 'repo mount' المتقاعد؛ فتح LUKS، ولمستودعات العنقود، توليد PV).لا-
--skip-checkpointتخطي استعادة نقطة تفتيش CRIU حتى لو كانت بيانات checkpoint موجودة (فرض بدء جديد)لا-
--tlsطلب شهادة TLS مخصصة لهذا المستودع (النسخ المتفرعة تستخدم شهادة الجهاز المشتركة افتراضيًا)لا-
--no-waitالعودة فور بدء الحاويات؛ تستمر فحوصات الصحة في الخلفيةلا-
--allنشر كل مستودع موطنه --machine (صيغة الدفعة)لا-
-m, --machine <name>مع --all: الجهاز الذي تُنفَّذ الدفعة على مستودعاتهلا-
--include-forksتشغيل/بدء المستودعات المتشعبة أيضًالا-
--parallelبدء المستودعات بشكل متزامنلا-
--concurrency <n>الحد الأقصى للمستودعات المتزامنة (افتراضي: 3)لا3
-y, --yesتخطي التأكيد للعمليات الجماعيةلا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-
--skip-router-restartتخطي إعادة تشغيل خادم التوجيه بعد تحديث الملف التنفيذيلا-
--dry-runعرض ما سيتم تنفيذه دون إجراء تغييراتلا-

6.2 down

إيقاف حاويات Docker الخاصة بالمستودع (يُشغِّل Rediaccfile down عبر renet compose). يُشتق الجهاز من موضع المرجع. لا يفكّ تثبيت وحدة التخزين المشفرة، بل يبقى المستودع مركَّبًا ويمكن إعادة تشغيله بـ 'repo up'. استخدم --unmount لإغلاق حاوية LUKS أيضًا بعد الإيقاف (يطوي أمر 'repo unmount' المتقاعد). استخدم --checkpoint لحفظ حالة عمليات CRIU قبل الإيقاف (يستعيدها 'repo up' التالي تلقائيًا). استخدم --all --machine <m> لإيقاف كل مستودع على جهاز.

rdc repo down [ref] [options]
العلامةالوصفمطلوبافتراضي
--unmountفك التثبيت أيضًا (إغلاق حاوية LUKS) بعد الإيقاف. مطلوب قبل 'repo resize' أو لتأمين وحدة التخزين بالكامللا-
--checkpointإنشاء نقطة تفتيش CRIU قبل الإيقاف (حفظ حالة ذاكرة العمليات للاستعادة لاحقًا عبر 'repo up')لا-
--allإيقاف كل مستودع موطنه --machine (صيغة الدفعة)لا-
-m, --machine <name>مع --all: الجهاز الذي تُنفَّذ الدفعة على مستودعاتهلا-
--parallelبدء المستودعات بشكل متزامنلا-
--concurrency <n>الحد الأقصى للمستودعات المتزامنة (افتراضي: 3)لا3
-y, --yesتخطي التأكيد للعمليات الجماعيةلا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-
--skip-router-restartتخطي إعادة تشغيل خادم التوجيه بعد تحديث الملف التنفيذيلا-
--dry-runعرض ما سيتم تنفيذه دون إجراء تغييراتلا-

6.3 status

الحصول على حالة المستودع

rdc repo status <ref> [options]
العلامةالوصفمطلوبافتراضي
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-
--skip-router-restartتخطي إعادة تشغيل خادم التوجيه بعد تحديث الملف التنفيذيلا-

6.4 health

تشغيل فحوص health() في ملف Rediaccfile للمستودع والخروج بالرمز 0 (سليم) أو 1 (تحذير) أو 2 (خطأ)

rdc repo health <ref> [options]
العلامةالوصفمطلوبافتراضي
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-
--skip-router-restartتخطي إعادة تشغيل خادم التوجيه بعد تحديث الملف التنفيذيلا-

6.5 repair

يشغّل دوال repair() في ملفات Rediaccfile الخاصة بالمستودع التي تسمح بها فئتها المُعلنة، ثم health() مجددًا (رمز الخروج 0 سليم، 1 تحذير، 2 خطأ أو إصلاح فاشل)

rdc repo repair <ref> [options]
العلامةالوصفمطلوبافتراضي
--dry-runيعرض أي repair() سيُشغَّل دون تشغيل أي منهالا-
--with-backupيسمح بدوال repair() من فئة auto-with-backup بعد لقطة ناجحة للمستودعلا-
--window-overrideيشغّل دوال repair() من نوع window=only خارج نافذة صيانة الجهازلا-
-y, --yesيشغّل دون سؤال دوال repair() التي لا تُعلن فئة (operator-only)لا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

6.6 cat

قراءة نافذة محدودة من ملف داخل مستودع وكتابتها إلى stdout (محدودة من جانب الخادم؛ التشخيصات تذهب إلى stderr)

rdc repo cat <ref> [options]
العلامةالوصفمطلوبافتراضي
--remote-file <path>مسار الملف للقراءة، نسبةً إلى جذر تثبيت المستودعنعم-
--max-bytes <n>الحد الأقصى من البايتات للقراءة والطباعة (الافتراضي 1 MiB، الحد الأقصى المطلق 50 MiB)لا-
--offset <n>إزاحة البايت لبدء القراءة منهالا-
--head <lines>طباعة أول N سطر فقط (لا يمكن الدمج مع نطاق البايت)لا-
--tail <lines>طباعة آخر N سطر فقط (لا يمكن الدمج مع نطاق البايت)لا-
--statطباعة الحجم والنوع ووقت التعديل فقط؛ دون قراءة أي محتوىلا-
--force-binaryالسماح بقراءة المحتوى الثنائي (الذي يحتوي على NUL)لا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-
--skip-router-restartتخطي إعادة تشغيل خادم التوجيه بعد تحديث الملف التنفيذيلا-

6.7 diff

مقارنة على مستوى الملف بأسلوب git بين مستودعين مفترعين بنسخ-عند-الكتابة. تُبلّغ عن الملفات المضافة والمعدَّلة والمحذوفة والمعاد تسميتها. تُقارن المستودع المُعطى عبر <ref> الموضعي (الهدف / الجانب الجديد) بأصله المُحلَّل من الإعدادات المحلية، أو بمستودع --base صريح (الجانب القديم). تعتمد على البيانات الوصفية ومستقلة عن الحجم: تقارن صور LUKS المشفّرة على مستوى الكتل دون فكّ تشفيرها، فتُقارن مستودعًا بحجم 1 ج.ب وآخر بحجم 100 ج.ب في نفس أجزاء الثانية.

rdc repo diff <ref> [options]
العلامةالوصفمطلوبافتراضي
--base <ref>المستودع المُراد المقارنة معه (الجانب القديم/الأساس)؛ افتراضيًا أصل <ref>لا-
--name-onlyاطبع فقط مسارات الملفات المتغيّرة، واحدة في كل سطر (بدون أحرف الحالة)لا-
--statأظهر حجم التغيير لكل ملف (فروق البايت والكتل) والإجمالياتلا-
--content [path]أظهر فرقًا نصيًا موحَّدًا لملف واحد (يتطلّب مسار ملف)لا-
--fastثِق بمرشّح الكتل؛ تجاوز تأكيد تجزئة المحتوى (قد يُبالغ في الإبلاغ عن المُعدَّل)لا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-
--skip-router-restartتخطي إعادة تشغيل خادم التوجيه بعد تحديث الملف التنفيذيلا-

6.8 list

عرض المستودعات على جهاز

rdc repo list [options]
العلامةالوصفمطلوبافتراضي
-m, --machine <name>اسم الجهاز المستهدفلا-
--datastore <name>عرض المستودعات في مخزن البيانات هذا (يُحلّ إلى أيًا كان الجهاز الذي يحمله حاليًا)لا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-
--skip-router-restartتخطي إعادة تشغيل خادم التوجيه بعد تحديث الملف التنفيذيلا-

6.9 create

إنشاء مستودع جديد. حدِّد موطنه مرة واحدة: جهاز أو مخزن بيانات.

rdc repo create <name> [options]
العلامةالوصفمطلوبافتراضي
-m, --machine <name>اسم الجهاز المستهدفلا-
--datastore <name>مخزن البيانات المسمى الذي يستضيف المستودع (تدرّج Docker، أو صيغة العنقود)لا-
--size <size>حجم المستودع (مثلاً 10G، 100G، 1T)لا-
--no-dockerتخطي تشغيل Docker daemon بعد الإنشاءلا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-
--skip-router-restartتخطي إعادة تشغيل خادم التوجيه بعد تحديث الملف التنفيذيلا-

6.10 delete

حذف مستودع وبياناته. يُنقل إدخال التكوين الخاص بالـ fork إلى deletedRepositories، فيتحرر الاسم ويبقى GUID قابلًا للاستعادة عبر 'repo admin archive restore'؛ أما إدخال المستودع الرئيسي (grand) أو المدفوع إلى أجهزة أخرى فيبقى ما لم تُمرَّر --archive-config. يأخذ <ref> موضعيًا؛ الاسم المجرد يُحلّ إلى الخط الرئيسي (grand) ويُرفض عندما تشترك عدة مستودعات في الاسم الأساسي، لذا مرّر name:tag لاستهداف نسخة متفرعة.

rdc repo delete <ref> [options]
العلامةالوصفمطلوبافتراضي
--archive-configنقل إدخال الإعدادات إلى deletedRepositories للاستعادة لاحقاًلا-
--purge-backupsاحذف النسخ الاحتياطية السحابية للمستودع الآن أيضًا بدل تركها تنتهيلا-
-y, --yesتخطي نافذة التأكيدلا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-
--skip-router-restartتخطي إعادة تشغيل خادم التوجيه بعد تحديث الملف التنفيذيلا-
--dry-runعرض ما سيتم تنفيذه دون إجراء تغييراتلا-

6.11 commit

تجميد الحالة الحالية لفرع عمل (fork) مُركَّب في commit جديد غير قابل للتغيير (شبيه بـ git). يسجّل الـ commit رسالته ومؤلّفه وطابعه الزمني وأصله (parent) داخل المجلد المُشفَّر (بحيث ينتقل معه عند الدفع) ويُعلَّم للقراءة فقط، فيرفض التركيب. يبقى فرع العمل دون تغيير، تماماً كما يترك git شجرة العمل سليمة. استخرج الـ commit باستخدام 'rdc repo checkout' للحصول على نسخة قابلة للكتابة.

rdc repo commit <ref> [options]
العلامةالوصفمطلوبافتراضي
--message <msg>رسالة الـ commitنعم-
--author <author>مؤلّف الـ commitلا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

6.12 branch

إنشاء مرجع branch مُسمّى يشير إلى الـ commit الحالي لفرع العمل (fork) (طرفه). تُخزَّن مراجع الـ branch في إعدادات الـ CLI (الجهاز = مخزن الكائنات، الإعداد = مخزن المراجع).

rdc repo branch <ref> [options]
العلامةالوصفمطلوبافتراضي
--branch <branch>اسم الفرع الجديدنعم-

6.13 checkout

استنساخ commit غير قابل للتغيير (أو طرف branch) عبر reflink إلى فرع عمل (fork) جديد قابل للكتابة وتوجيه HEAD إليه. شبه فوري وثابت الزمن (reflink الخاص بـ BTRFS).

rdc repo checkout <commit-or-branch-ref> [options]
العلامةالوصفمطلوبافتراضي
--tag <name>اسم فرع العمل (fork) الجديد القابل للكتابةنعم-
--from <workingFork>حل الوسيطة الموضعية <commit-or-branch-ref> كاسم فرع على هذا الفرع العامللا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-
--skip-router-restartتخطي إعادة تشغيل خادم التوجيه بعد تحديث الملف التنفيذيلا-

6.14 log

طباعة سجل الـ commit الذي يمكن الوصول إليه من الـ commit الحالي لفرع العمل (fork) (أو من مرجع commit)، بتتبّع سلسلة الأصل (parent) المسجَّلة بواسطة 'rdc repo commit'. يقرأ من النسخة المرآة خارج المجلد المُشفَّر، فلا يُفتح أي commit.

rdc repo log <ref> [options]
العلامةالوصفمطلوبافتراضي
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

6.15 merge

دمج commit مصدري أو fork في fork عملي هدف. لا يتم تعديل الهدف الحي في مكانه أبداً: تُبنى النتيجة في نسخة reflink ويتم تبديلها بشكل ذري. يُرفض الهدف المُركَّب أو قيد التشغيل ما لم يُستخدم --force، الذي يوقفه أولاً بشكل نظيف. بدون --resolve يكون الدمج أخذًا للصورة الكاملة (take-theirs) فيصبح الهدف هو المصدر؛ ومع --resolve ours|theirs يكون دمجًا ثلاثي الاتجاهات لكل ملف مقابل السلف المشترك، يأخذ التغييرات الفريدة لكل جانب ويحل التعارضات الثنائية الجانب وفقًا للخيار.

rdc repo merge <ref> [options]
العلامةالوصفمطلوبافتراضي
--from <source>الـ commit أو fork المصدري المراد الدمج منهنعم-
--forceأوقِف الهدف المُركَّب/قيد التشغيل أولاً، ثم ادمج (لا يعدّل أبداً نقطة تركيب حية)لا-
`—resolve <ourstheirs>`حل التعارضات لكل ملف في دمج ثلاثي الاتجاهات: تُبقي 'ours' على نسخة الهدف، وتأخذ 'theirs' نسخة المصدر. احذفها للتقديم السريع للصورة كاملة (take-theirs).لا
--base <guid>‏GUID الخاص بإيداع السلف المشترك لدمج ثلاثي الاتجاهات (يُستخدم مع ‎--resolve). يكون افتراضيًا أصل إيداع المصدر أو الإيداع الحالي للهدف.لا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

6.16 gc

حذف كائنات الإيداع الثابتة على جهاز التي لا يصل إليها أي فرع أو HEAD (جمع المهملات بحسب قابلية الوصول). الجهاز هو مخزن الكائنات؛ وإعداد الـ CLI هو مخزن المراجع. تشغيل تجريبي افتراضيًا: مرّر ‎--apply‎ للحذف. لا يمسّ أبدًا كائنًا مركّبًا أو نسخة عمل.

rdc repo gc [options]
العلامةالوصفمطلوبافتراضي
-m, --machine <name>اسم الجهاز المستهدفنعم-
--applyحذف الإيداعات غير القابلة للوصول فعليًا (الافتراضي معاينة تجريبية)لا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

6.17 fork

إنشاء نسخة CoW (نسخ عند الكتابة) من مستودع. التفريع شبه فوري وثابت الزمن بغض النظر عن حجم المستودع؛ يستنسخ reflink الخاص بـ BTRFS الصورة الأساسية بحيث يُفرَّع مستودع بحجم 100 ج.ب ومستودع بحجم 1 ج.ب في نفس أجزاء الثانية تقريبًا. تحصل النسخة المتفرعة على GUID وnetworkId ونطاق IP ونطاق توجيه تلقائي جديد ({service}-fork-{tag}.{repo}.{machine}.{baseDomain}) وهي نسخة مستقلة تمامًا. التفريع أثناء التشغيل مدعوم، ويمكن للأصل الاستمرار في العمل. ترث النسخة المتفرعة بيانات اعتماد التشفير الخاصة بالأصل تلقائيًا. استخدم --checkpoint لالتقاط حالة عمليات CRIU قبل التفريع؛ ستستعيدها النسخة المتفرعة تلقائيًا عند أول 'repo up' (تُحفظ الحالة في الذاكرة). التفريع بين الأجهزة: فرِّع محليًا أولاً، ثم انقل: (1) rdc repo fork <parent-ref> --tag <name>، (2) rdc repo push <fork-ref> --to <target-machine>، (3) rdc backup restore <fork-ref> --as <fork-name> -m <target-machine> --up. تحذير: لا تستخدم "repo push" وحدها للتفريع، فهي تُنشئ نسخة خام بنفس GUID (وليست نسخة متفرعة مستقلة). فرِّع دائمًا أولاً للحصول على هوية جديدة. تستخدم المسارات التلقائية اسم المستودع، لذا تحصل كل نسخة متفرعة على نطاق فريد تلقائيًا.

rdc repo fork <ref> [options]
العلامةالوصفمطلوبافتراضي
--tag <name>وسم النسخة (ينشئ اسم:وسم)نعم-
--checkpointإنشاء نقطة تفتيش CRIU على المصدر قبل التفريع (التقاط حالة ذاكرة العمليات للاستعادة عند fork)لا-
--immutableيضع علامة على الفرع كقراءة فقط: يرفض التحميل ويُبقي صورته مستقرة على مستوى البايت إلى الأبد (التزام/أساس مجمَّد للدفع التزايدي بين الأجهزة)لا-
--upتركيب وبدء الخدمات بعد التفريع (fork + mount + up في أمر واحد)لا-
--no-waitمع --up: يعود فور بدء الحاويات؛ تستمر فحوصات الصحة في الخلفية (مثالي للفروع المؤقتة)لا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-
--skip-router-restartتخطي إعادة تشغيل خادم التوجيه بعد تحديث الملف التنفيذيلا-

6.18 replicate

إنشاء N نسخة قراءة من مستودع في ثوانٍ، بغض النظر عن حجم قاعدة البيانات. يأخذ لقطة واحدة فقط لمخزن البيانات، ثم يُنشئ N من عمليات ربط-التفريع (fork-attach) ثابتة الزمن (نسخ عند الكتابة، كتابات محلية قابلة للتخلص منها) موزّعة عبر عقد العنقود، ويطبّق طبقة تراكبية (overlay) مُولَّدة: PersistentVolume واحد مثبَّت لكل نسخة، وStatefulSet، وService اثنان ({repo}-rw للنسخة الرئيسية، {repo}-ro عبر النسخ). النسخ هي لقطات في لحظة زمنية محددة: لا يوجد تدفّق نسخ متماثل (replication)، ولا ضمان لقراءة ما كتبته بنفسك (read-your-writes)؛ تُجري كل نسخة دورة تعافٍ من الأعطال (crash-recovery) واحدة قبل بدء الخدمة. حدِّثها باستخدام 'repo replicate refresh'. مجموعات النسخ حالة مُدارة: راجعها عبر 'repo replicate status' وأزلها عبر 'repo replicate remove'.

status

عرض مجموعات النسخ المُدارة: النسخ، العقد المستضيفة، مخازن البيانات المُفرَّعة، اللقطة، وطوابع زمن التحديث.

rdc repo replicate status <ref>

remove

إزالة مجموعة نسخ: حذف كائنات k8s المُولَّدة لها (ضمن نطاق التصنيفات)، والتخلص من مخازن بياناتها المُفرَّعة، وإسقاط لقطتها، ونسيان حالتها. خطوات البنية التحتية تُنفَّذ على أساس بذل أفضل جهد (best-effort) بحيث تكتمل الإزالة حتى على عنقود فقد جزءًا منه.

rdc repo replicate remove <ref> [options]
العلامةالوصفمطلوبافتراضي
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

refresh

نقل كل نسخة إلى لقطة جديدة في لحظة زمنية محددة، واحدة تلو الأخرى: أعد تشغيل pod الخاص بالنسخة، تخلَّص من مخزن بياناته وأعد تفريعه على نفس المسار، ثم اسمح لفحص الجاهزية (readiness) بإعادة قبوله. تستمر N-1 نسخة في تقديم الخدمة طوال هذه العملية.

rdc repo replicate refresh <ref> [options]
العلامةالوصفمطلوبافتراضي
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

6.19 canary

شغّل صورة جديدة إلى جانب الصورة المستقرة وقسّم حركة المرور الحية بينهما بنسبة مئوية (الدرجة 2 من سلّم الإصدار). يُنشئ هذا الأمر Deployment وService واحدًا للـ Canary على نفس البيانات الحية (بلا تفريع: لأن مستخدمي الـ Canary على بيانات مفرَّعة سيقرؤون بيانات قديمة ويكتبون في نسخة مصيرها الحذف)، ويُخبر وكيل Rediacc بتوجيه النسبة المحددة من حركة مرور المضيف المستقر إليه. الوزن 0 يُبقي الـ Canary بلا حركة مرور (dark)، والوزن 100 هو تحويل blue/green الكامل. قبل كل تغيير على الـ Canary، تؤخذ تلقائيًا لقطة جماعية لمخازن بيانات العنقود (الدرجة 0 من سلّم الإصدار) كوسيلة تراجع شاملة. توافق المخطط (schema) بين الإصدارين (expand-contract) هو مسؤولية التطبيق نفسه. أما الإصدارات التي تكسر المخطط، فاستخدم blue/green بدلاً من ذلك: فرّع المستودع (فوري، يشمل البيانات)، ووجّه Service الخاص بالتفريع إلى هنا بوزن 100، وتراجع بإعادة تشغيل الأصل غير الممسوس؛ الكتابات التي تحدث بعد التحويل توجد فقط في النسخة الجديدة، لذا نافذة التراجع قرار يخص السياسة التشغيلية.

status

عرض مجموعات الـ Canary المُدارة: الوزن، الصور، Service المستقر، وأحدث لقطة للتراجع عن الإصدار.

rdc repo canary status <ref>

weight

تغيير نسبة حركة المرور الموجَّهة إلى الـ Canary. يأخذ أولاً لقطة جماعية جديدة للتراجع عن الإصدار، ثم يعيد تطبيق الطبقة التراكبية (overlay)؛ ويلتقط الوكيل التقسيم الجديد في دورة التحديث التالية. الوزن 100 يرسل كل حركة المرور إلى الإصدار الجديد (تحويل blue/green).

rdc repo canary weight <ref> [options]
العلامةالوصفمطلوبافتراضي
--weight <percent>نسبة حركة المرور الموجَّهة إلى الـ Canary (عدد صحيح من 0 إلى 100؛ 0 = تشغيل خفي، 100 = تحويل كامل)نعم-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

remove

إزالة Deployment وService الخاصين بالـ Canary (ضمن نطاق التصنيفات)؛ يعود Service المستقر لخدمة 100% من حركة المرور. تُحتفَظ بلقطات التراجع عن الإصدار؛ نظّفها باستخدام أوامر لقطات مخزن البيانات.

rdc repo canary remove <ref> [options]
العلامةالوصفمطلوبافتراضي
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

create

تشغيل صورة جديدة إلى جانب الصورة المستقرة وإرسال نسبة مئوية من حركة المرور الحية إليها. يشارك الـ Canary بيانات المستودع الحية (بلا تفريع)، لذا فإن توافق المخطط بين الإصدارين مسؤولية التطبيق. تُؤخذ لقطة جماعية لمخازن بيانات العنقود أولاً، كوسيلة للتراجع.

rdc repo canary create <ref> [options]
العلامةالوصفمطلوبافتراضي
--image <image>الصورة الجديدة التي يشغّلها Deployment الخاص بالـ Canary (على البيانات الحية المشتركة)نعم-
--port <port>المنفذ الذي يخدم عليه التطبيق (يجب أن يطابق Service المستقر)نعم-
--weight <percent>نسبة حركة المرور الموجَّهة إلى الـ Canary (عدد صحيح من 0 إلى 100؛ 0 = تشغيل خفي، 100 = تحويل كامل)نعم-
--service <name>Service المستقر الذي سيتم تقسيم حركة المرور معه (الافتراضي: اسم المستودع)لا-
--replicas <n>عدد نسخ Deployment الخاص بالـ Canary (الافتراضي: 1)لا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

6.20 resize

تغيير حجم مستودع دون اتصال (يدعم التوسيع والتقليص)

rdc repo resize <ref> [options]
العلامةالوصفمطلوبافتراضي
--size <size>حجم المستودع الجديد (مثلاً 10G، 100G، 1T)نعم-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-
--skip-router-restartتخطي إعادة تشغيل خادم التوجيه بعد تحديث الملف التنفيذيلا-

6.21 expand

توسيع مستودع مُركّب أثناء التشغيل (بدون توقف)

rdc repo expand <ref> [options]
العلامةالوصفمطلوبافتراضي
--size <size>حجم المستودع الجديد (مثلاً 10G، 100G، 1T)نعم-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-
--skip-router-restartتخطي إعادة تشغيل خادم التوجيه بعد تحديث الملف التنفيذيلا-

6.22 trim

استعادة مساحة تجمّع مخزن البيانات من المستودعات المركَّبة (أثناء التشغيل، دون توقف). تُعاد الكتل المحذوفة داخل المستودعات إلى التجمّع عبر fstrim. بدون مرجع، تُعالَج كل المستودعات المركَّبة على -m ومخزن البيانات نفسه. يُتخطى fstrim للمستودعات التي يجري نسخها احتياطيًا، لكن استعادة --docker تظل تُنفَّذ

rdc repo trim [ref] [options]
العلامةالوصفمطلوبافتراضي
--dockerاستعادة مساحة Docker (حاويات متوقفة، صور معلّقة، ذاكرة بناء مؤقتة)؛ تُنفَّذ حتى أثناء وجود لقطة نسخ احتياطي نشطةلا-
--docker-volumesحذف وحدات تخزين Docker غير المستخدمة أيضًالا-
--report-onlyعرض حالة discard وتقدير المساحة القابلة للاستعادة دون تنفيذلا-
-m, --machine <name>اسم الجهاز المستهدفلا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

6.23 prune

يصنّف تخزين Docker لمستودع ويستعيد مساحته: الصور غير المستخدمة، وذاكرة البناء المؤقتة، والحاويات المتوقفة، ومجلدات overlay2 التي لا تشير إليها أي صورة أو حاوية. تشغيل تجريبي ما لم تُستخدم --apply. تستعيد --apply المساحة عبر واجهة Docker البرمجية مع بقاء المستودع متصلاً، وتوقف --apply --offline فوق ذلك عفريت Docker الخاص بالمستودع طوال التشغيل وتعزل المجلدات اليتيمة. من دون مرجع، تفحص كل المستودعات المركّبة على -m (تشغيل تجريبي فقط)

rdc repo prune [ref] [options]
العلامةالوصفمطلوبافتراضي
--applyاستعادة المساحة؛ من دونه يقتصر التشغيل على الإبلاغلا-
--offlineإيقاف عفريت Docker الخاص بالمستودع وعزل المجلدات اليتيمة (يتطلب --apply)لا-
--all-imagesإزالة الصور الموسومة التي لا تستخدمها أي حاوية أيضاًلا-
--no-trimتخطي fstrim بعد الاستعادةلا-
-y, --yesتخطي نافذة التأكيدلا-
-m, --machine <name>اسم الجهاز المستهدفلا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

6.24 policy

إدارة سياسة الحجم التلقائية التي يطبقها مشرف التخزين في الجهاز: يوسّع حصة المستودع أثناء التشغيل عندما يمتلئ (لا يتجاوز max-quota أبدًا، ولا يوسّع عند انخفاض مساحة التجمّع) وينفّذ عمليات trim مجدولة. لا يوجد تقليص تلقائي؛ استخدم 'repo resize' لذلك. بدون مرجع، تُدار السياسة الافتراضية على مستوى الجهاز عبر -m

set

يضبط حقول سياسة الحجم. تتغير الأعلام الممررة فقط؛ تحتفظ بقية الحقول المخزنة بقيمها. يتطلب تفعيل التوسيع التلقائي ‎--max-quota: السقف هو موافقتك الصريحة على تجاوز سعة التجمّع

rdc repo policy set [ref] [options]
العلامةالوصفمطلوبافتراضي
--auto-grow <bool>تفعيل التوسيع التلقائي للحصة أثناء التشغيل (true/false)لا-
--max-quota <size>سقف التوسيع التلقائي (مثل 200G)؛ مطلوب للتوسيع التلقائيلا-
--grow-threshold <percent>نسبة استخدام نظام الملفات التي تطلق التوسيع (الافتراضي 85)لا-
--grow-step <step>مقدار التوسيع لكل خطوة: مطلق (10G) أو نسبة من الحصة (20%)لا-
--auto-trim <bool>تفعيل trim المجدول (true/false)لا-
--trim-interval <hours>الحد الأدنى من الساعات بين عمليات trim التلقائية (الافتراضي 24)لا-
--memory-max <size>سقف الذاكرة للمستودع (مثل 10G، أو max لإزالته)؛ عند بلوغه تُنهى إحدى حاوياته بسبب نفاد الذاكرة دون المساس بما هو خارجهلا-
--memory-high <size>نقطة تقييد الذاكرة للمستودع (مثل 8G، أو max لإزالتها)لا-
--cpu-max <cores>سقف المعالج للمستودع بعدد الأنوية (4، 2.5) أو N%، أو max لإزالتهلا-
--io-max <limits>سقف الإدخال/الإخراج لجهاز المستودع: rbps=،wbps=،riops=،wiops= (أي مجموعة منها، مثل rbps=200M,wbps=100M؛ KEY=max يزيل قيمة) أو maxلا-
--pids-max <count>سقف عدد العمليات للمستودع (pids.max)، أو max لإزالتهلا-
--ram-volume <size>حجم وحدة تخزين RAM للمستودع في <mount>/.ram (مثل 8G، أو max لإزالتها)؛ يجب أن يبقى سقف الذاكرة أعلى منها بمقدار 1Gلا-
--clear-limitsإزالة كل الحدود ووحدة تخزين RAM من المستودعلا-
--forceالسماح بسقف ذاكرة أقل من استخدام المستودع الحالي للذاكرةلا-
-m, --machine <name>اسم الجهاز المستهدفلا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

get

عرض افتراضي الجهاز المخزَّن، وتجاوز المستودع (مع مرجع)، والسياسة الفعلية المدمجة التي يعمل بها المشرف

rdc repo policy get [ref] [options]
العلامةالوصفمطلوبافتراضي
-m, --machine <name>اسم الجهاز المستهدفلا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

6.25 push

دفع مستودع إلى جهاز آخر. وجهات التخزين مُلغاة؛ استخدم `rdc backup snapshot` للنسخ الاحتياطي بنقطة زمنية. عند النقل بين الأجهزة، تُنسخ صورة المستودع المشفرة بنفس GUID: هذا نسخ احتياطي/ترحيل وليس fork. لإنشاء fork مستقل، استخدم 'repo fork' أولاً ثم ادفع. تصل النسخة المدفوعة كعنصر نسخة احتياطية (ARTIFACT): شغّلها على الجهاز الهدف بـ 'backup restore <ref> --as <name> -m <target> --up'

rdc repo push <ref> [options]
العلامةالوصفمطلوبافتراضي
--to <remote>اسم الجهاز الهدف (يُكتشف تلقائياً من الإعدادات)لا-
--to-machine <machine>—لا-
--provision <provider>تزويد الجهاز الهدف تلقائياً عبر مزود السحابة إذا لم يكن موجوداًلا-
--checkpointإنشاء نقطة فحص CRIU قبل النسخ الاحتياطي (التقاط حالة ذاكرة العمليات للترحيل المباشر)لا-
--forceفرض الكتابة فوق النسخة الاحتياطية الموجودةلا-
--bwlimit <limit>حدّ سرعة النقل: بايت في الثانية، أو وحدات عشرية (12.5M = ‏12.5 MB/s)، أو وحدات ثنائية (12Mi)، أو بتات (100Mbps). بدونه لا يوجد حدّلا-
--delta-base <guid>معرّف GUID أساسي ثابت متطابق بايتياً على كلا الجهازين؛ نقل الكتل المتغيرة فقط (هدف الجهاز). احذفه للاكتشاف التلقائي للأساسلا-
--strategy <strategy>استراتيجية دلتا الكتل عند استخدام أساس دلتا: auto أو physical أو sharedلا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-
--skip-router-restartتخطي إعادة تشغيل خادم التوجيه بعد تحديث الملف التنفيذيلا-

6.26 pull

سحب مستودع من جهاز آخر. مصادر التخزين مُلغاة؛ استخدم `rdc backup restore` للاستعادة بنقطة زمنية. يُكتشف نوع المصدر تلقائياً من الإعدادات. استخدم --up للنشر بعد السحب

rdc repo pull <ref> [options]
العلامةالوصفمطلوبافتراضي
--from <remote>اسم الجهاز المصدر (يُكتشف تلقائياً من الإعدادات)لا-
--from-machine <machine>—لا-
--forceفرض الكتابة فوق المستودع الموجودلا-
--upبعد السحب، قم بتركيب ونشر المستودع على هذا الجهازلا-
--bwlimit <limit>حدّ سرعة النقل: بايت في الثانية، أو وحدات عشرية (12.5M = ‏12.5 MB/s)، أو وحدات ثنائية (12Mi)، أو بتات (100Mbps). بدونه لا يوجد حدّلا-
--delta-base <guid>معرّف GUID أساسي ثابت متطابق بايتياً على كلا الجهازين؛ استقبال الكتل المتغيرة فقط (مصدر الجهاز)لا-
--strategy <strategy>استراتيجية دلتا الكتل عند استخدام أساس دلتا: auto أو physical أو sharedلا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-
--skip-router-restartتخطي إعادة تشغيل خادم التوجيه بعد تحديث الملف التنفيذيلا-

6.27 migrate

ترحيل مستودع حيًا من جهاز إلى آخر بأقل توقف ممكن. rsync على مرحلتين: نقل كتلي أثناء التشغيل، ثم توقف قصير لمزامنة الفروقات (delta). ينقل المستودع بالكامل (يُعاد توجيه التوجيه إلى الموطن الجديد)، وبمجرد نجاح النقل، يحذف صور المصدر (استخدم --keep-source للاحتفاظ بها). يدعم نقطة تفتيش CRIU لترحيل حالة ذاكرة العمليات والتزويد التلقائي للأجهزة الهدف

rdc repo migrate <ref> [options]
العلامةالوصفمطلوبافتراضي
--to <place>الجهاز أو العنقود الوجهةنعم-
--provision <provider>توفير تلقائي للهدف عبر مزود السحابة (مثال: hetzner، linode)لا-
--bwlimit <limit>حدّ سرعة النقل: بايت في الثانية، أو وحدات عشرية (12.5M = ‏12.5 MB/s)، أو وحدات ثنائية (12Mi)، أو بتات (100Mbps). بدونه لا يوجد حدّلا-
--checkpointترحيل مباشر عبر CRIU: التقاط واستعادة حالة ذاكرة العملياتلا-
--delta-base <guid>معرّف GUID أساسي ثابت لدلتا التحويل (متقدّم؛ الافتراضي هو أساس المرحلة 1)لا-
--strategy <strategy>استراتيجية دلتا الكتل للتحويل: auto أو physical أو sharedلا-
--skip-dnsتخطي تبديل سجلات DNS بعد الترحيللا-
--keep-sourceالاحتفاظ بصور المصدر بعد نجاح النقل (تُحذف افتراضيًا؛ النسخ المتبقية غير قابلة للعنونة من أي سجل تكوين، وتُعلّمها reconcile كعناصر شاردة)لا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

6.28 sync

مزامنة المستودعات والملفات (دفع/سحب جماعي، نقل ملفات)

upload

رفع الملفات إلى مستودع

rdc repo sync upload <ref> [options]
العلامةالوصفمطلوبافتراضي
--local <paths...>مسار واحد أو أكثر لملف أو مجلد محلي (الافتراضي: المجلد الحالي)لا-
--remote <path>مسار المجلد الفرعي البعيد ضمن المستودعلا-
--remote-file <path>‫مسار ملف بعيد واحد (نسبي إلى جذر المستودع) للرفع إليه. لا يمكن استخدامه مع --remote.لا-
--mirrorوضع الانعكاس - حذف الملفات البعيدة غير الموجودة محلياًلا-
--verifyالتحقق من الملفات باستخدام المجاميع الاختبارية بعد المزامنةلا-
--confirmمعاينة التغييرات وطلب التأكيد قبل المزامنةلا-
--exclude <patterns...>الأنماط التي يتم استبعادها من المزامنةلا-
--dry-runعرض ما سيتم تنفيذه دون إجراء تغييراتلا-

download

تنزيل الملفات من مستودع

rdc repo sync download <ref> [options]
العلامةالوصفمطلوبافتراضي
--local <path>مسار المجلد المحلي (افتراضي: المجلد الحالي)لا-
--remote <path>مسار المجلد الفرعي البعيد ضمن المستودعلا-
--remote-file <path>مسار الملف البعيد داخل المستودع (بديل لـ --remote لنقل ملف واحد)لا-
--mirrorوضع الانعكاس - حذف الملفات المحلية غير الموجودة على البعيدلا-
--verifyالتحقق من الملفات باستخدام المجاميع الاختبارية بعد المزامنةلا-
--confirmمعاينة التغييرات وطلب التأكيد قبل المزامنةلا-
--exclude <patterns...>الأنماط التي يتم استبعادها من المزامنةلا-
--dry-runعرض ما سيتم تنفيذه دون إجراء تغييراتلا-

status

التحقق من حالة المزامنة ومقارنة الملفات المحلية/البعيدة

rdc repo sync status <ref> [options]
العلامةالوصفمطلوبافتراضي
--local <path>مسار المجلد المحلي (افتراضي: المجلد الحالي)لا-
--remote <path>مسار المجلد الفرعي البعيد ضمن المستودعلا-
--remote-file <path>مسار الملف البعيد داخل المستودع (بديل لـ --remote لنقل ملف واحد)لا-

6.29 tunnel

إنشاء نفق SSH لتوجيه المنافذ إلى منفذ حاوية على جهاز بعيد. يكتشف تلقائيًا الحاوية والمنفذ عندما لا يكون هناك غموض. يبقى النفق مفتوحًا حتى تضغط Ctrl+C

rdc repo tunnel <ref> [options]
العلامةالوصفمطلوبافتراضي
-c, --container <name>اسم الحاوية (يُكتشف تلقائيًا إذا كانت واحدة فقط قيد التشغيل)لا-
--port <port>منفذ الحاوية البعيد للتوجيهلا-
--local <port>المنفذ المحلي (الافتراضي نفس المنفذ البعيد)لا-
--url-onlyطباعة عنوان URL المحلي فقط عند جهوزية النفق (قابل للقراءة آلياً)لا-

6.30 secret

إدارة أسرار كل مستودع المُحقنة وقت النشر. للكتابة فقط: تُعيد get التلخيص فقط (لا القيمة الصريحة أبدًا)، وتتطلب set/unset تطابق تلخيص --current أو --rotate-secret. وضعا تسليم: env (REDIACC_SECRET_<KEY>) وfile (نظام tmpfs في /var/run/rediacc/net-<networkId>/secrets/<KEY> عبر `secrets:` في compose). الأسرار لا تدخل صورة LUKS المشفرة أبدًا؛ النسخ المتفرعة لا ترث أيًا منها.

get

عرض تلخيص SHA-256 لسر. لا تُعاد القيمة الصريحة أبدًا بحكم التصميم (للكتابة فقط). استخدم --current في عملية set/unset لاحقة للتحقق من قيمة تعرفها بالفعل، أو دوّرها عبر `set --rotate-secret`.

rdc repo secret get <ref> [options]
العلامةالوصفمطلوبافتراضي
--key <KEY>مفتاح السر بصيغة UPPER_SNAKE_CASE (بحد أقصى 64 حرفاً). سيتم عرضه كـ REDIACC_SECRET_<KEY> لوضع env أو /run/secrets/<key> في الحاويات لوضع file.نعم-

list

سرد مفاتيح وأوضاع السر (لا قيم أبداً، ولا ملخصات).

rdc repo secret list <ref>

set

تعيين أو الكتابة فوق سر. الشوكات لا ترث؛ عيّن على الشوكة بشكل صريح. تحت سياق الوكيل، يتطلب تطابق ملخص --current (نمط passwd).

rdc repo secret set <ref> [options]
العلامةالوصفمطلوبافتراضي
--key <KEY>مفتاح السر بصيغة UPPER_SNAKE_CASE (بحد أقصى 64 حرفاً). سيتم عرضه كـ REDIACC_SECRET_<KEY> لوضع env أو /run/secrets/<key> في الحاويات لوضع file.نعم-
--value <value>قيمة السر. مرر `-` للقراءة من stdin (يتجنب التعرض في سجل الصدفة).نعم-
--mode <mode>وضع التسليم: 'env' (مرئي في بيئة الحاوية، docker inspect) أو 'file' (ملف tmpfs، ليس في البيئة أبداً). الافتراضي: file.لاfile
--current <value>القيمة الصريحة السابقة (شرط مسبق بنمط passwd). مطلوبة للكتابة فوق القيمة أو حذفها؛ حصرية بشكل متبادل مع --rotate-secret.لا-
--rotate-secretالإقرار بالتدوير؛ تخطي شرط --current المسبق (مدقق كتدوير). استخدم عند التدوير المتعمد دون التحقق من القيمة السابقة.لا-

unset

حذف سر. تحت سياق الوكيل، يتطلب تطابق ملخص --current.

rdc repo secret unset <ref> [options]
العلامةالوصفمطلوبافتراضي
--key <KEY>مفتاح السر بصيغة UPPER_SNAKE_CASE (بحد أقصى 64 حرفاً). سيتم عرضه كـ REDIACC_SECRET_<KEY> لوضع env أو /run/secrets/<key> في الحاويات لوضع file.نعم-
--current <value>القيمة الصريحة السابقة (شرط مسبق بنمط passwd). مطلوبة للكتابة فوق القيمة أو حذفها؛ حصرية بشكل متبادل مع --rotate-secret.لا-
--rotate-secretالإقرار بالتدوير؛ تخطي شرط --current المسبق (مدقق كتدوير). استخدم عند التدوير المتعمد دون التحقق من القيمة السابقة.لا-

6.31 admin

أفعال إدارة وصيانة المستودعات.

archive

إدارة سجلات المستودعات المؤرشفة.

list:

عرض بيانات اعتماد المستودعات المؤرشفة

rdc repo admin archive list

purge:

حذف جميع بيانات الاعتماد المؤرشفة نهائياً

rdc repo admin archive purge [name] [options]
العلامةالوصفمطلوبافتراضي
-y, --yesتخطي نافذة التأكيدلا-

restore:

استعادة بيانات اعتماد مستودع مؤرشف

rdc repo admin archive restore <name> [options]
العلامةالوصفمطلوبافتراضي
--new-name <name>اسم المورد الجديدلا-

validate

التحقق من سلامة المستودع

rdc repo admin validate <ref> [options]
العلامةالوصفمطلوبافتراضي
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-
--skip-router-restartتخطي إعادة تشغيل خادم التوجيه بعد تحديث الملف التنفيذيلا-

fsck

التحقق من مراجع إعداد الـ CLI (الفروع، HEAD) مقابل الكائنات الموجودة فعليًا على جهاز. يبلّغ عن المراجع المعلّقة (مرجع يشير إلى كائن مفقود) والإيداعات اليتيمة (إيداع ثابت لا يصل إليه أي مرجع). للقراءة فقط.

rdc repo admin fsck [options]
العلامةالوصفمطلوبافتراضي
-m, --machine <name>اسم الجهاز المستهدفنعم-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

ownership

تغيير ملكية مجلد المستودع

rdc repo admin ownership <ref> [options]
العلامةالوصفمطلوبافتراضي
--uid <uid>معرّف المالك UID (افتراضي: 7111)لا-
--root-ownedتسليم الملفات المملوكة لـ root الموجودة تحت أدلة يملكها root أو هذا UID إلى UID المالك، مع تسجيل كل منها في بيان تراجعلا-
--dry-runمع --root-owned: عرض الملفات التي ستتغير دون تغيير أي شيءلا-
--undoمع --root-owned: إعادة ملفات بيان التراجع التي لا يزال UID المالك يملكها إلى rootلا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-
--skip-router-restartتخطي إعادة تشغيل خادم التوجيه بعد تحديث الملف التنفيذيلا-

autostart

إدارة التشغيل التلقائي للمستودعات عند الإقلاع

enable:

تمكين التشغيل التلقائي لمستودع

rdc repo admin autostart enable [ref] [options]
العلامةالوصفمطلوبافتراضي
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-
--skip-router-restartتخطي إعادة تشغيل خادم التوجيه بعد تحديث الملف التنفيذيلا-

disable:

تعطيل التشغيل التلقائي لمستودع

rdc repo admin autostart disable [ref] [options]
العلامةالوصفمطلوبافتراضي
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-
--skip-router-restartتخطي إعادة تشغيل خادم التوجيه بعد تحديث الملف التنفيذيلا-

list:

عرض المستودعات ذات التشغيل التلقائي المفعّل

rdc repo admin autostart list [options]
العلامةالوصفمطلوبافتراضي
-m, --machine <name>اسم الجهاز المستهدفنعم-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-
--skip-router-restartتخطي إعادة تشغيل خادم التوجيه بعد تحديث الملف التنفيذيلا-

template

تطبيق قالب على مستودع

list:

عرض جميع قوالب النشر المضمنة في واجهة سطر الأوامر

rdc repo admin template list

apply:

طبّق قالبًا على مستودع. استخدم اسم قالب مدمج (مثل app-postgres) أو --file لقالب JSON مخصص. دورة حياة Rediaccfile: up() تُشغّل الحاويات (سحب الصور، توليد الإعدادات هنا)، down() توقفها. Rediaccfile الأدنى: up() { renet compose -- pull; renet compose -- up -d; } down() { renet compose -- down; }. مهم: يجب أن يستخدم Rediaccfile 'renet compose': يُرفض 'docker compose'. متغيرات البيئة: مستويان: (أ) صَدَفة Rediaccfile: ${SVCNAME_IP} (مثل APP_IP)، ${REDIACC_WORKING_DIR}، ${REDIACC_NETWORK_ID}. (ب) داخل الحاويات: يُدرج renet تلقائيًا متغيرات SERVICE_IP وREDIACC_NETWORK_ID. تتولى إعادة كتابة bind عبر eBPF عزل IP بشفافية، لذا يمكن للتطبيقات الارتباط بـ 0.0.0.0 وتعيد النواة كتابته إلى عنوان loopback الصحيح. يمكن لفحوصات الصحة استخدام localhost. يُدرج network_mode:host تلقائيًا وتُتجاهل ports:. التخزين: كل من bind mounts الخاصة بـ ${REDIACC_WORKING_DIR}/... وأحجام Docker المسمّاة آمنة: جذر بيانات Docker داخل حجم LUKS المشفر. سياسة إعادة التشغيل: سياسات إعادة التشغيل آمنة: يحذفها renet تلقائيًا لتوافق CRIU ويتولى watchdog التعافي. Compose: لا تُضف network_mode أو علامات rediacc.* (يُدرجها renet تلقائيًا). مشاريع متعددة: ضع كل مشروع فرعي في مجلده الفرعي الخاص مع Rediaccfile خاص به: يكتشفها renet تلقائيًا ويشغّلها بالترتيب. توجيه HTTPS: (أ) المسار التلقائي (متوافق مع النسخ المتفرعة، موصى به): لا تُضف traefik.enable. يولّد Renet تلقائيًا https://{serviceName}.{repoName}.{machineName}.{baseDomain}. أضف علامة rediacc.service_port=<port> للمنافذ غير 80. يحصل كل نسخة متفرعة على نطاق فريد. (ب) علامات Traefik (نطاق مخصص، غير متوافق مع النسخ المتفرعة): traefik.enable=true، traefik.http.routers.<n>.rule=Host(`domain`)، traefik.http.routers.<n>.entrypoints=websecure,websecure-v6، traefik.http.routers.<n>.tls.certresolver=letsencrypt، traefik.http.services.<n>.loadbalancer.server.port=<port>. لـ TCP/UDP: rediacc.tcp_ports=3306 / rediacc.udp_ports=53

rdc repo admin template apply <ref> [options]
العلامةالوصفمطلوبافتراضي
--template <name>القالب المُراد تطبيقهنعم-
--file <path>مسار ملف قالب JSON مخصص ({"version":"2","files":{"Rediaccfile":"...","docker-compose.yml":"..."}}): يتجاوز اسم القالب المدمجلا-
--grand <name>اسم المستودع الرئيسي (يُحلّ تلقائيًا إلى GUID)لا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-
--skip-router-restartتخطي إعادة تشغيل خادم التوجيه بعد تحديث الملف التنفيذيلا-

6.32 promote

استبدال بيانات المستودع الأصلي ببيانات النسخة المتفرعة. يحتفظ الأصلي بهويته (GUID، networkId، النطاقات، التشغيل التلقائي، سلسلة النسخ الاحتياطي) لكنه يحصل على البيانات المحدّثة من النسخة المتفرعة. يتم حفظ البيانات القديمة للإنتاج كنسخة احتياطية متفرعة. للاستخدام: اختبر الترقية على النسخة المتفرعة → تحقق → استحوذ على بيانات الإنتاج.

rdc repo promote <fork-ref> [options]
العلامةالوصفمطلوبافتراضي
-y, --yesتخطي نافذة التأكيدلا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-
--skip-router-restartتخطي إعادة تشغيل خادم التوجيه بعد تحديث الملف التنفيذيلا-

6.33 logs

عرض سجلات التطبيق من حاويات مستودع. مستودعات Docker تُقرأ من Docker daemon الخاص بالمستودع نفسه؛ مستودعات Kubernetes تقرأ سجلات الـ pod في فضاء أسماء المستودع. إذا كان المستودع يُشغّل أكثر من حاوية، حدِّد المطلوبة بـ --container.

rdc repo logs <ref> [options]
العلامةالوصفمطلوبافتراضي
-c, --container <name>الحاوية المُراد قراءتها (مطلوبة فقط عندما يُشغّل المستودع أكثر من واحدة)لا-
-f, --followالاستمرار في بث الأسطر الجديدة حتى المقاطعةلا-
--lines <n>عدد أسطر السجل التاريخية المُراد عرضها (الافتراضي: 100)لا100
--timestampsإضافة الطابع الزمني في بداية كل سطرلا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

6.34 exec

تشغيل أمر داخل حاوية مستودع. يُمرَّر رمز خروج الأمر نفسه مباشرةً، لذا يعمل هذا في البرامج النصية والشروط. مستودعات Docker تُشغِّله عبر Docker daemon الخاص بالمستودع؛ مستودعات Kubernetes تُشغِّله في فضاء أسماء المستودع.

rdc repo exec <ref> <cmd...> [options]
العلامةالوصفمطلوبافتراضي
-c, --container <name>الحاوية المُراد التشغيل بداخلها (مطلوبة فقط عندما يُشغّل المستودع أكثر من واحدة)لا-
-i, --interactiveتخصيص طرفية (لأمر يتوقع واحدة)لا-
-u, --user <user>المستخدم الذي يُشغَّل الأمر باسمهلا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

6.35 gpu

يمنح مستودعًا جهاز CDI (مثل nvidia.com/gpu=all) كي تتمكن حاوياته من طلبه، أو يسحبه مجددًا. الجهاز هو من يفرض التصريح؛ والتصريح الحصري يحجز الجهاز لمستودع واحد.

grant

يسمح لحاويات المستودع بطلب جهاز CDI. تظهر أسماء الأجهزة في 'rdc machine gpu list'.

rdc repo gpu grant <ref> [options]
العلامةالوصفمطلوبافتراضي
--device <cdi-name>اسم جهاز CDI الكامل (مثل nvidia.com/gpu=all)نعم-
--exclusiveحجز الجهاز لهذا المستودع: لا يمكن منحه لمستودع آخر في هذه الأثناءلا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

revoke

يسحب جهاز CDI من حاويات المستودع. تحتفظ به الحاويات التي تملكه بالفعل حتى تُعاد تشغيلها.

rdc repo gpu revoke <ref> [options]
العلامةالوصفمطلوبافتراضي
--device <cdi-name>اسم جهاز CDI الكامل (مثل nvidia.com/gpu=all)نعم-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

6.36 permission

يوسّع ما يمكن لـ up() و down() في ملف Rediaccfile الخاص بالمستودع الوصول إليه. يعملان بصفة المستخدم العام غير المميّز؛ ويضيف المنح مسارًا (--path) أو صلاحية root دون خفض الامتيازات (--root). تفرض الآلة المنح، ولا يستطيع ملف Rediaccfile طلبه إلا عبر سطر '# rediacc:needs'، ويبدأ الفرع (fork) دون أي منح.

grant

السماح لـ up() و down() في ملف Rediaccfile الخاص بالمستودع بالوصول إلى مسار أو بالعمل بصفة root. يُرفض --root للوكيل ما لم يعيّن المستخدم REDIACC_ALLOW_GRAND_REPO قبل بدء الوكيل.

rdc repo permission grant <ref> [options]
العلامةالوصفمطلوبافتراضي
--rootتشغيل up() و down() بصفة root دون خفض الامتيازاتلا-
--path <path>مسار مطلق يمكن لـ up() و down() الوصول إليه، بالصيغة PATH[:ro|:rw] (للقراءة فقط افتراضيًا)لا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

revoke

يسحب منح مسار دورة الحياة، أو منح root، من المستودع. ستعمل up() و down() التاليتان بما تبقى.

rdc repo permission revoke <ref> [options]
العلامةالوصفمطلوبافتراضي
--rootسحب منح rootلا-
--path <path>المسار المطلق المراد سحبهلا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

show

يعرض ما إذا كانت up() و down() في المستودع تعملان بصفة root، وما المسارات التي يمكنهما الوصول إليها.

rdc repo permission show <ref> [options]
العلامةالوصفمطلوبافتراضي
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

7. المهام المنفصلة

إدارة المهام المنفصلة (detached jobs) على جهاز: عرض قائمتها، التحقق من حالتها، إعادة تشغيل أو متابعة سجلات أحداثها، إلغاء إحداها، أو تنظيف المهام المكتملة. تعمل المهمة المنفصلة تحت systemd على الجهاز، لذا تبقى قائمة حتى عند انقطاع الاتصال ويمكن إعادة الاتصال بها لاحقًا.

7.1 list

عرض المهام المنفصلة على جهاز، الأحدث أولًا

rdc job list [options]
العلامةالوصفمطلوبافتراضي
-m, --machine <name>اسم الجهاز المستهدف (احذفه لعرض تذاكر المهام المعلّقة في هذه الإعدادات)لا-
--allتضمين التذاكر المنتهية والمتجاهلةلا-

7.2 status

عرض حالة مهمة منفصلة

rdc job status <job-id> [options]
العلامةالوصفمطلوبافتراضي
-m, --machine <name>اسم الجهاز المستهدف (اختياري عندما تحتفظ هذه الإعدادات بتذكرة للمهمة)لا-

7.3 logs

إعادة تشغيل أو متابعة سجل أحداث مهمة منفصلة

rdc job logs <job-id> [options]
العلامةالوصفمطلوبافتراضي
-m, --machine <name>اسم الجهاز المستهدف (اختياري عندما تحتفظ هذه الإعدادات بتذكرة للمهمة)لا-
-f, --followبث السجل حتى انتهاء المهمةلا-
--since-line <n>الاستئناف بعد هذا العدد من الأسطر (العدد الذي استلمته بالفعل)لا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

7.4 cancel

إلغاء مهمة منفصلة قيد التشغيل

rdc job cancel <job-id> [options]
العلامةالوصفمطلوبافتراضي
-m, --machine <name>اسم الجهاز المستهدف (اختياري عندما تحتفظ هذه الإعدادات بتذكرة للمهمة)لا-
-y, --yesتخطي نافذة التأكيدلا-

7.5 gc

إزالة المهام المكتملة وسجلاتها

rdc job gc [options]
العلامةالوصفمطلوبافتراضي
-m, --machine <name>اسم الجهاز المستهدفنعم-
--older-than <duration>تجميع المهام التي انتهت منذ أكثر من هذه المدة، بالساعات (الافتراضي: 168)لا-
-y, --yesتخطي نافذة التأكيدلا-

7.6 wait

استئناف متابعة مهمة من تذكرتها، ثم الإقرار بها والخروج برمز خروج المهمة

rdc job wait <job-id> [options]
العلامةالوصفمطلوبافتراضي
-m, --machine <name>اسم الجهاز المستهدف (اختياري عندما تحتفظ هذه الإعدادات بتذكرة للمهمة)لا-
--timeout <duration>التوقف عن الانتظار بعد هذه المدة (30s أو 5m أو 2h؛ الرقم وحده يعني ثوانيَ). تواصل المهمة العمل.لا-

7.7 dismiss

التخلي عن تذاكر المهام محليًا: تُسقط الخطوات المعلقة ولا تظهر التذكرة بعد ذلك. لا يتصل بالجهاز ولا يمس المهمة نفسها.

rdc job dismiss [job-id...] [options]
العلامةالوصفمطلوبافتراضي
--staleتجاهل كل التذاكر المعلقة الأقدم من --older-than (الافتراضي 24h)لا-
--older-than <duration>مع --stale، الحد الأدنى لعمر التذكرة، مثل 90m أو 24h (الافتراضي: 24h)لا-
-y, --yesتخطي نافذة التأكيدلا-

8. النسخ الاحتياطي والاستعادة

إدارة استراتيجيات النسخ الاحتياطي وتشغيلاتها المجدولة والعناصر التي تنتجها: عرّف استراتيجية لمستودع، شغّلها أو استعدها عند الطلب، وافحص الأرشيفات التي كتبتها إلى نقطة تخزين.

8.1 browse

عرض الملفات التي يحتويها المستودع. افتراضيًا يكون هذا مرورًا محليًا للقراءة فقط على صورة المستودع: بلا خادم حساب وبلا شبكة. يجب تحميل المستودع المشفّر أو نشر ملف مفتاحه قبل فتحه، ويخبرك browse بذلك بدل عرض قائمة فارغة. مع --at <وقت|لقطة> يعرض بدلًا من ذلك قائمة الملفات المحفوظة مع لقطة في مخزن الأجزاء، دون استعادتها.

rdc backup browse <repo-ref> [options]
العلامةالوصفمطلوبافتراضي
--path <subdir>قصر العرض على هذه الشجرة الفرعيةلا-
--depth <n>قصر عمق النزول على N مستوى (0 لعدم التحديد)لا-
--limit <n>الحد الأقصى للعناصر المُعادة (0 لعدم التحديد)لا-
`—at <timesnapshot>`عرض اللقطة المأخوذة عند هذا الوقت أو قبله، أو معرّف هذه اللقطة (يقرأ مخزن الأجزاء)لا
--from <storeId>مع --at، اقرأ اللقطة من مخزن النسخ الاحتياطية هذا بدل الأعلى ترتيبًالا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

8.2 cancel

إلغاء نسخة احتياطية قيد التشغيل على جهاز بعيد

rdc backup cancel [strategy] [options]
العلامةالوصفمطلوبافتراضي
-m, --machine <name>اسم الآلةنعم-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

8.3 list

عرض عناصر النسخ الاحتياطي على جهاز.

rdc backup list [artifact-ref] [options]
العلامةالوصفمطلوبافتراضي
-m, --machine <name>اسم الآلةلا-
--path <subdir>اقتصر السرد على دليل فرعي واحد؛ اتركه فارغًا لسرد مخزن البيانات بالكامللا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

8.4 manifests

عرض بيانات لقطات النسخ الاحتياطي المسجَّلة على الخادم

rdc backup manifests [repo-ref] [options]
العلامةالوصفمطلوبافتراضي
--limit <n>عدد الصفوف في الصفحة (الافتراضي والأقصى 500)لا-
--before <cursor>مؤشر الصفحة من قائمة سابقة (nextBefore)لا-
--include-deletedتضمين اللقطات التي ينتظر حذفها المؤجَّللا-

8.5 restore

تحويل عنصر نسخة احتياطية إلى مستودع فعلي. يُحدَّد الموضع هنا.

rdc backup restore <artifact-ref> [options]
العلامةالوصفمطلوبافتراضي
--as <name>اسم المستودع المُستعاد (افتراضيًا اسم العنصر)لا-
-m, --machine <name>اسم الآلةلا-
--datastore <name>الاستعادة إلى مخزن البيانات المسمى هذا (يستضيفه الجهاز المرفق به)لا-
--at <time>الاستعادة إلى نقطة زمنية: معرّف لقطة أو وقت بصيغة RFC3339 (استعادة من التخزين المجزّأ)لا-
--from <storeId>قراءة اللقطة من مخزن النسخ الاحتياطية هذا (الافتراضي: المخزن الذي يحوي أحدث لقطة تم التحقق منها، مع الانتقال إلى التالي عند تعطل المخزن)لا-
--any-streamمع --at، انظر أيضًا في اللقطات التي كتبتها أجهزة أخرى وفروع من هذا النسب (الافتراضي: هذا المستودع على جهازه المصدر فقط)لا-
--no-seedجلب كل جزء من المخزن بدلاً من إعادة استخدام المرساة المحلية أو صور المستودع (يثبت أن المخزن قابل للقراءة)لا-
--allow-unopenableضع الصورة حتى لو لم تفتحها عبارة مرور المستودع (لقطة تسبق تغيير عبارة المرور)لا-
--salvageتابع رغم الأجزاء المفقودة أو التالفة واترك خلاياها ثقوبًا (يتطلب --as)لا-
--path <file-or-dir>استعد هذا الملف أو المجلد فقط من اللقطة دون استعادة المستودع كاملاً (يتطلب --at)لا-
--to <dir>المجلد الذي يوضع فيه المسار المستعاد (الافتراضي: مجلد الاستعادة في الجهاز الخاص بهذه اللقطة)لا-
--upنشر المستودع المُستعاد بعد النقللا-
--health-window <seconds>نافذة بوابة الصحة الإجمالية بالثواني (الافتراضي 300)لا-
--health-timeout <seconds>مهلة فحص الصحة لكل محاولة بالثواني (الافتراضي 30)لا-
-y, --yesتخطي نافذة التأكيدلا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

8.6 retention

عرض سياسة الاحتفاظ باللقطات التي يفرضها الخادم.

clear

إزالة السياسة المعلنة، فتعود الخطة أو القيمة الافتراضية للخادم إلى السريان.

rdc backup retention clear <repo-ref> [options]
العلامةالوصفمطلوبافتراضي
--stream <id>ينطبق على مجرى النسخ الاحتياطي هذا فقط (معرّف مجرى)؛ وبدونه تسري القيمة الافتراضية للمستودع كلهلا-

set

حدِّد عدد اللقطات المطلوب الاحتفاظ بها. يُستبدل كل معيار بالكامل، ولا يُدمَج.

rdc backup retention set <repo-ref> [options]
العلامةالوصفمطلوبافتراضي
--keep-last <n>الاحتفاظ بهذا العدد من أحدث اللقطاتلا-
--keep-hourly <n>الاحتفاظ بأحدث لقطة من كل عدد من الساعاتلا-
--keep-daily <n>الاحتفاظ بأحدث لقطة من كل عدد من الأياملا-
--keep-weekly <n>الاحتفاظ بأحدث لقطة من كل عدد من الأسابيعلا-
--keep-monthly <n>الاحتفاظ بأحدث لقطة من كل عدد من الأشهرلا-
--keep-yearly <n>الاحتفاظ بأحدث لقطة من كل عدد من السنواتلا-
--keep-within <duration>الاحتفاظ بكل لقطة ضمن هذه المدة من أحدث لقطة، مثل 24hلا-
--stream <id>ينطبق على مجرى النسخ الاحتياطي هذا فقط (معرّف مجرى)؛ وبدونه تسري القيمة الافتراضية للمستودع كلهلا-

preview

يعرض اللقطات التي ستحذفها عملية التنظيف التالية والمساحة التي ستحررها.

rdc backup retention preview <repo-ref>

8.7 run

تشغيل نسخة احتياطية فورية على جهاز بعيد

rdc backup run [strategy] [options]
العلامةالوصفمطلوبافتراضي
-m, --machine <name>اسم الآلةنعم-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

8.8 schedule

نشر جدول النسخ الاحتياطي إلى جهاز بعيد (مؤقتات systemd)

rdc backup schedule [options]
العلامةالوصفمطلوبافتراضي
-m, --machine <name>اسم الآلةنعم-
--dry-runمعاينة الوحدات المُولَّدة دون نشرهالا-
--forceالمتابعة حتى إن كانت هناك نسخة احتياطية قيد التشغيل (تنطبق الوحدة الجديدة عند النبضة التالية للمؤقت؛ يحتفظ التنفيذ الجاري بوحدته القديمة)لا-
--reset-failedمسح حالة الفشل للخدمات المُعدَّلة بعد نشر ناجح (معطّل افتراضيًا، يحافظ على إشارة الفشل)لا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

8.9 snapshot

رفع لقطة إلى التخزين المجزّأ: المخزون الكامل أولاً، ثم الخلايا المتغيّرة

rdc backup snapshot <repo-ref> [options]
العلامةالوصفمطلوبافتراضي
--reseedعدم الوثوق بالمرساة المحلية وإعادة رفع المخزون كاملاً (يعيد رفع كل شيء ويُعيد احتساب الحصة)لا-
--dry-runالتخطيط فقط: بلا رفع. يُظهر ما كان سيتحركلا-
--coldأوقِف الحاويات ثم جمِّد ثم أعِد التشغيل ثم ارفع. يكلّف انقطاعًا قصيرًا فعليًا لكنه يعطي لقطة متسقة على مستوى التطبيق، ولا يمكن استخدامه مع ‎--dry-runلا-
--accept-identity-changeاعتمد هذه الصورة خط أساس جديدًا عندما تتغير هوية LUKS الخاصة بها أو تصغر؛ يرفع لقطة كاملةلا-
--bwlimit <rate>حدّ سرعة الرفع: بايت في الثانية، أو وحدات عشرية (12.5M = ‏12.5 MB/s)، أو وحدات ثنائية (12Mi)، أو بتات (100Mbps). بدونه لا يوجد حدّلا-
--parallelism <n>عدد القطع التي تُرفع في آنٍ واحد (الافتراضي 4)لا-
--read-bwlimit <rate>حدّ سرعة القراءة للتجزئة وقراءة الخلايا: بنفس وحدات --bwlimit؛ الافتراضي 50M، و0 = بلا حدّلا-
--hash-parallelism <n>عدد الخلايا التي تُجزَّأ في آنٍ واحد (الافتراضي 1؛ 0 = خلية لكل معالج، حتى 16)لا-
--cpu-limit <percent>الحد الأقصى للمعالج لهذه اللقطة: نسبة مئوية من جميع الأنوية، من 1 إلى 100 (الافتراضي 50؛ 100 = بلا حد)لا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

8.10 status

عرض حالة النسخ الاحتياطي وحالة المؤقت على جهاز بعيد

rdc backup status [strategy] [options]
العلامةالوصفمطلوبافتراضي
-m, --machine <name>اسم الآلةنعم-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

8.11 strategy

إدارة استراتيجيات النسخ الاحتياطي المسماة (أوضاع ساخنة/باردة، وجهات، جدولة)

set

إنشاء أو تحديث استراتيجية نسخ احتياطي

rdc backup strategy set <strategy> [options]
العلامةالوصفمطلوبافتراضي
--destination <name>اسم الوجهة ضمن الاستراتيجية. يُنشئ وجهة تخزين مجزأ من Rediaccلا-
--target <storeId>معرّف المخزن المسجّل الذي تكتب إليه الوجهة (الافتراضي: home). يُستخدم مع --destinationلا-
--replicate-from <storeId>اجعل الوجهة نسخة مطابقة: يقوم خادم الحساب بنسخ هذا المخزن إلى هدف الوجهة، فلا يرفع الجهاز أي شيء إليه. يُستخدم مع --destination و --targetلا-
--cron <expression>جدول cron (مثلاً "0 * * * *" للتشغيل كل ساعة)لا-
--mode <mode>وضع النسخ الاحتياطي: "hot" يلتقط اللقطة والنظام يعمل بالكامل، "cold" يوقف الحاويات للحظة التقاط اللقطةلا-
--bwlimit <limit>حد عرض النطاق الترددي للرفع بالبايت في الثانية، مع لاحقة اختيارية K/M/G (مثلاً "6M"، "500K")لا-
--read-bwlimit <limit>حدّ سرعة القراءة للقطات هذه الاستراتيجية: بنفس وحدات --bwlimit؛ none يزيلهلا-
--cpu-limit <percent>الحد الأقصى للمعالج للقطات هذه الاستراتيجية: نسبة مئوية من جميع الأنوية، من 1 إلى 100 (الافتراضي 50)؛ none يزيلهلا-
--include <repos>نسخ هذه المستودعات فقط (أسماء مفصولة بفواصل)لا-
--exclude <repos>استبعاد هذه المستودعات من النسخ الاحتياطي (أسماء مفصولة بفواصل)لا-
--retention <spec>الاحتفاظ باللقطات، مثل last=7,daily=7,weekly=4,monthly=6 (القيمة "none" تزيله)لا-
--rpo <duration>هدف الحماية المعلن، مثل 15m (5m على الأقل؛ none يزيله)لا-
--repo-rpo <ref=duration>هدف لكل مستودع بصيغة <ref>=<المدة>، قابل للتكرار (none يزيله)؛ name:* هو العائلةلا-
--repo-cell-size <ref=size>حجم خلية لكل مستودع بصيغة <ref>=<الحجم>، قابل للتكرار. التغيير يعيد تهيئة المستودعلا-
--no-estimateتخطي تقدير التغيّر والتكلفةلا-
--dry-runعرض ما سيتغير دون كتابة أي شيءلا-
--enableتفعيل الاستراتيجية أو الوجهةلا-
--disableتعطيل الاستراتيجية أو الوجهةلا-

bind

ربط استراتيجية نسخ احتياطي بجهاز بحيث يُنشر جدولها عليه

rdc backup strategy bind <strategy> [options]
العلامةالوصفمطلوبافتراضي
-m, --machine <name>اسم الجهاز المستهدفنعم-

unbind

فك ربط استراتيجية نسخ احتياطي من جهاز

rdc backup strategy unbind <strategy> [options]
العلامةالوصفمطلوبافتراضي
-m, --machine <name>اسم الجهاز المستهدفنعم-

remove

إزالة استراتيجية نسخ احتياطي أو وجهة

rdc backup strategy remove <strategy> [options]
العلامةالوصفمطلوبافتراضي
--destination <name>إزالة هذه الوجهة فقط (الاحتفاظ بالوجهات الأخرى)لا-
--unbindإسقاط الاستراتيجية أيضًا من كل جهاز يرتبط بهالا-

list

عرض قائمة جميع استراتيجيات النسخ الاحتياطي

rdc backup strategy list

show

عرض تفاصيل استراتيجية النسخ الاحتياطي

rdc backup strategy show [strategy]

8.12 reconcile

يعيد ضبط سجل البايتات المخزّنة لمستودع إلى ما يحتويه المخزن فعلاً (ولا يحذف أي مقطع أبداً)

rdc backup reconcile [repo-ref] [options]
العلامةالوصفمطلوبافتراضي
--dry-runعرض الأرقام دون تعديل السجللا-
--checkتشغيل تجريبي ينتهي بالرمز 1 عند اختلاف السجل عن المخزنلا-

8.13 usage

عرض حصة تخزين النسخ الاحتياطي والبايتات المخزَّنة والاستخدام لكل مستودع

rdc backup usage

8.14 verify

التحقق من مرساة النسخ الاحتياطي لمستودع مقابل التخزين المجزّأ

rdc backup verify <repo-ref> [options]
العلامةالوصفمطلوبافتراضي
--deepإعادة تجزئة كل خلية مسجَّلة (تحقق كامل) بدلاً من فحص عيّنيلا-
--storeاطلب من الخادم إعادة تجزئة كل جزء مخزَّن لهذا المستودع وتسمية أي جزء مفقود أو تالفلا-
--restore-testاستعادة لقطة المرساة باسم مؤقت مباشرة من المخزن، ومقارنتها بالمرساة، وتسجيل النتيجة، وحذف النسخةلا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

8.15 snapshots

إدارة اللقطات المخزّنة

delete

يحذف لقطة مخزّنة واحدة. تُحرَّر البيانات التي تستخدمها هذه اللقطة وحدها عند عملية جمع المهملات التالية.

rdc backup snapshots delete <repo-ref> <snapshot-id>

8.16 download

ينسخ صور المستودعات من جهاز إلى مجلد محلي أو إلى قرص خارجي. في كل تشغيل تُؤخذ لقطة جديدة لا تبقى إلا طوال الجلسة، وتُحدَّث النسخة المحلية في مكانها بفروقات rsync، ويُستأنف العمل بعد أي انقطاع، ويُتحقق من النتيجة عبر sha256.

rdc backup download [refs...] [options]
العلامةالوصفمطلوبافتراضي
--to <dir>مجلد موجود وقابل للكتابة يستقبل <machine>/<name>.<tag>.img (لا يُنشأ أبدًا)نعم-
--allنسخ كل مستودعات grand الموجودة على الجهاز المحدد بالخيار -mلا-
-m, --machine <name>اسم الآلةلا-
--include-forksمع --all، انسخ التفرعات (forks) أيضًالا-
--bwlimit <rate>حد لعرض النطاق الترددي للشبكة مثل 100Mbps أو 12.5M (الافتراضي: بلا حد)لا-
--checkpointأخذ نقطة تفتيش وتجميد المستودع قبل اللقطة (نسخ احتياطي ساخن)لا-
--retries <n>عدد إعادات المحاولة داخل التشغيل بعد فشل الشبكة (الافتراضي: 3)لا-
--skip-verifyتخطي مقارنة sha256 بعد rsync؛ يظل مجموع التحقق الخاص بـ rsync يعمللا-
--skip-space-checkالتحذير بدل الرفض عندما قد لا تتوفر مساحة حرة كافية في الوجهةلا-
--storeيعيد بناء الصورة المشفرة مباشرة من مخزن النسخ الاحتياطية دون أي جهاز. يتطلب رمز API بنطاق backup:read + backup:restore في REDIACC_TOKENلا-
`—at <timesnapshot>`مع --store: اللقطة المطلوب جلبها، وقت (ISO 8601) أو معرّف لقطة (الافتراضي: الأحدث)لا
--from <storeId>مع --store، اقرأ من مخزن النسخ الاحتياطية هذا بدل الأعلى ترتيبًا؛ ولا ينتقل أبدًا إلى مخزن آخرلا-

8.17 upload

يرسل صورة مستودع محلية، أنشأها 'rdc backup download'، إلى جهاز ويسجّلها كمستودع جديد. يُستأنف النقل بعد أي انقطاع، ويتحقق الجهاز من sha256 ومن ترويسة LUKS قبل وضع الصورة.

rdc backup upload <image-file> [options]
العلامةالوصفمطلوبافتراضي
--to <machine>الجهاز الذي يستقبل الصورةنعم-
--as <name>اسم المستودع الجديد (الافتراضي: اسم المستودع المسجّل في الصورة)لا-
--datastore <name>وضع الصورة في مخزن البيانات المسمّى هذا بدل المخزن الافتراضي للجهازلا-
--from-repo <name>مستودع في الإعداد يوفّر بيانات الاعتماد والنسب عند فقدان ملف الحالة أو إشارته إلى مستودع غير معروفلا-
--bwlimit <rate>حد لعرض النطاق الترددي للشبكة مثل 100Mbps أو 12.5M (الافتراضي: بلا حد)لا-
--retries <n>عدد إعادات المحاولة داخل التشغيل بعد فشل الشبكة (الافتراضي: 3)لا-
--upتشغيل المستودع بعد تسجيلهلا-
--skip-verifyتخطي مقارنة الصورة المحلية بقيمة sha256 المسجّلة عند تنزيلهالا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

8.18 purge

يحذف كل لقطات النسخ الاحتياطي المخزّنة لمستودع من مخزن الأجزاء دفعة واحدة، مع الإبقاء على المستودع نفسه.

rdc backup purge <repo-ref> [options]
العلامةالوصفمطلوبافتراضي
--dry-runعرض ما سيتم تنفيذه دون إجراء تغييراتلا-
-y, --yesتخطي نافذة التأكيدلا-
--cancelإلغاء مسح كامل مؤجَّل قبل أن يسريلا-

8.19 check

يثبت أن لقطة تُفتح بعبارة المرور عبر استعادة ملف واحد

rdc backup check <repo-ref> [options]
العلامةالوصفمطلوبافتراضي
--path <file>الملف المراد استعادته ومقارنته (الافتراضي: أصغر ملف غير فارغ)لا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

8.20 repair

إعادة رفع الأجزاء التي فقدها المخزن أو يحتفظ بها خطأً من مرساة هذا الجهاز

rdc backup repair <repo-ref> [options]
العلامةالوصفمطلوبافتراضي
--dry-runيعرض ما سيُحذف ويُعاد رفعه دون تغيير أي شيءلا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

8.21 toc-key

إدارة مفتاح قائمة التصفح الخاص بمستودع

sync

تثبيت مفتاح قائمة المستودع على جهازه، أو استبدال مفتاح مختلف

rdc backup toc-key sync <repo-ref> [options]
العلامةالوصفمطلوبافتراضي
--replaceاستبدال مفتاح مختلف موجود على الجهاز (يرسل عبارة المرور كإثبات)لا-
--dry-runيعرض ما سيُنفَّذ دون لمس أي شيءلا-

8.22 churn

يقيس مقدار تغيّر صورة المستودع بين التشغيلات، ويتنبأ بحجم الرفع لكل حجم خلية ويوصي بأحدها. تُحفظ قاعدة reflink على الجهاز أثناء التشغيل وتُزال دائمًا عند الانتهاء.

rdc backup churn <repo-ref> [options]
العلامةالوصفمطلوبافتراضي
--samples <n>عدد العينات المقاسة (الافتراضي 3)لا-
--interval <duration>الانتظار بين الفحوصات، مثل 10m (الافتراضي 10m)لا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

8.23 immutability

عرض أو ضبط نافذة الحذف المؤجَّل للنسخ الاحتياطية المخزنة

show

عرض نافذة الحذف المؤجَّل السارية

rdc backup immutability show

set

ضبط نافذة الحذف المؤجَّل بالأيام (من 0 إلى 30)

rdc backup immutability set <days>

8.24 undelete

إلغاء الحذف المؤجَّل للقطة قبل أن يسري

rdc backup undelete <snapshot-id>

9. تكامل VS Code

فتح VS Code Remote SSH للاتصال بجهاز أو مستودع

9.1 connect

فتح VS Code على جهاز أو داخل مستودع.

rdc vscode connect <target> [options]
العلامةالوصفمطلوبافتراضي
-f, --folder <path>مسار المجلد البعيد للفتحلا-
--url-onlyطباعة عنوان VS Code URI بدلاً من تشغيلهلا-
-n, --new-windowالفتح في نافذة VS Code جديدةلا-
--skip-env-setupتخطي إعداد البيئة البعيدةلا-
--insidersاستخدام إعدادات VS Code Insidersلا-
--browserتشغيل VS Code المتصفح من داخل بيئة المستودع المعزولة (لا يلزم VS Code محلياً)لا-
--no-openطباعة عنوان URL دون فتح المتصفح المحليلا-
--local <port>المنفذ المحلي (الافتراضي نفس المنفذ البعيد)لا-
--server-provider <id>تطبيق خادم VS Code المتصفح (openvscode, code-server)لا-
--server-archive <file>مسار أرشيف الخادم المُعدّ مسبقاً على الجهاز (للتثبيت بدون إنترنت)لا-

9.2 list

قائمة اتصالات VS Code SSH المكونة

rdc vscode list

9.3 cleanup

إزالة إعدادات VS Code SSH

rdc vscode cleanup [options]
العلامةالوصفمطلوبافتراضي
--allإزالة جميع إعدادات SSH الخاصة بـ rediaccلا-
-c, --connection <name>إزالة اتصال معينلا-

9.4 check

التحقق من تثبيت VS Code والإعدادات

rdc vscode check [options]
العلامةالوصفمطلوبافتراضي
--insidersاستخدام إعدادات VS Code Insidersلا-

9.5 serve

إدارة خادم VS Code المتصفح داخل بيئة المستودع

status

عرض ما إذا كان خادم VS Code المتصفح يعمل

rdc vscode serve status <target> [options]
العلامةالوصفمطلوبافتراضي
--server-provider <id>تطبيق خادم VS Code المتصفح (openvscode, code-server)لا-

stop

إيقاف خادم VS Code المتصفح

rdc vscode serve stop <target> [options]
العلامةالوصفمطلوبافتراضي
--server-provider <id>تطبيق خادم VS Code المتصفح (openvscode, code-server)لا-

10. وصول طرفية SSH

فتح طرفية SSH إلى جهاز أو مستودع. الهدف اسم جهاز أو مرجع مستودع، ويُعَدّ سياق المستودع (DOCKER_HOST، دليل العمل، البيئة) تلقائيًا. استخدم `-c` لتشغيل أمر واحد بشكل غير تفاعلي. لسجلات الحاويات أو أمر لمرة واحدة داخل حاوية، استخدم `repo logs` و`repo exec`. لـ VS Code، استخدم `vscode`.

10.1 connect

فتح صدفة على جهاز، أو داخل مستودع مع إعداد Docker الخاص به.

rdc term connect <target> [options]
العلامةالوصفمطلوبافتراضي
-c, --command <cmd>تنفيذ أمر بدلاً من الصدفة التفاعليةلا-
--externalفرض تشغيل في نافذة طرفية خارجيةلا-
--reset-homeإعادة تعيين طبقة المنزل لكل مستودع للبدء من جديدلا-

11. أوامر سريعة (اختصارات)

11.1 run

تحذير: أمر منخفض المستوى مخصص للتصحيح والتجربة فقط، وليس للاستخدام في بيئة الإنتاج. للاستخدام المعتاد توجد أوامر أعلى مستوى (repo up وrepo down وغيرها). يشغّل دالة renet خامًا على جهاز.

rdc run

11.2 trace

تتبع مهمة (اختصار لـ: queue trace)

rdc trace

11.3 cancel

إلغاء مهمة (اختصار لـ: queue cancel)

rdc cancel

11.4 retry

إعادة محاولة مهمة فاشلة (اختصار لـ: queue retry)

rdc retry

12. إدارة الاشتراكات

إدارة التراخيص ورموز الاشتراك. سجّل الدخول بـ login، وافحص الحالة بـ status، وأعد إصدار التراخيص بـ refresh.

12.1 login

المصادقة باستخدام رمز API من بوابة الويب

rdc subscription login [options]
العلامةالوصفمطلوبافتراضي
-t, --token <token>رمز API (rdt_...). مرر `-` لقراءته من stdin (يبقيه خارج قائمة العمليات).لا-
--password-stdinتسجيل الدخول بدون متصفح بكلمة مرور الحساب المقروءة من stdin (يلزم REDIACC_LOGIN_EMAIL)لا-
--server <url>عنوان خادم الحسابلا-

12.2 logout

مسح رمز الاشتراك المحفوظ

rdc subscription logout

12.3 proxy-token

إصدار رمز proxy:exec قصير الأجل من تسجيل دخول هذا الجهاز لاستخدامه مع --proxy

rdc subscription proxy-token [options]
العلامةالوصفمطلوبافتراضي
--jsonطباعة JSON يتضمن الرمز وقيمة expiresAt الخاصة بهلا-

12.4 status

عرض الاشتراك، وحالة الترخيص لجهاز.

rdc subscription status [options]
العلامةالوصفمطلوبافتراضي
-m, --machine <name>اسم الآلةلا-

12.5 refresh

تحديث التراخيص من خادم الحساب.

rdc subscription refresh [options]
العلامةالوصفمطلوبافتراضي
-m, --machine <name>اسم الآلةلا-
--repo <ref>مرجع المستودع: اسم، أو اسم:وسم، اختياريًا مع @machine (مثال shop أو shop:test)لا-

13. تحديثات سطر الأوامر

التحقق من تحديثات CLI وتطبيقها

rdc update [options]
العلامةالوصفمطلوبافتراضي
--forceفرض التحديث حتى لو كان محدثاًلا-
--check-onlyالتحقق من التحديثات فقط دون التنزيللا-
--rollbackالتراجع إلى الإصدار السابقلا-
--statusعرض حالة التحديث التلقائي والتشخيصاتلا-
--channel <channel>تعيين قناة الإصدار (stable أو edge)لا-

14. إسنادات الأطراف الثالثة

طباعة مكونات الأطراف الثالثة المرفقة مع rdc: الملفات التنفيذية التي يضمّنها renet وينقلها (CRIU وrsync)، وبيئة تشغيل Node.js المضمّنة، وتبعيات npm المرفقة. يعرض الإصدارات ومعرّفات ترخيص SPDX وعناوين URL لأرشيف المصدر بالإصدار الدقيق المطلوبة للامتثال لـ GPL. استخدم --licenses لطباعة نص THIRD_PARTY_LICENSES الكامل المرفق مع إصدارات الإطلاق.

rdc credits [options]
العلامةالوصفمطلوبافتراضي
--licensesطباعة نص THIRD_PARTY_LICENSES الكامل المرفق مع إصدارات الإطلاقلا-

15. تشخيص النظام

تشخيص بيئة CLI وتكامل renet

rdc doctor

16. الأدوات المحلية

يدير الأدوات المحلية التي يشغّلها rdc على هذا الجهاز. يقوم `rdc tools install tofu` بتنزيل إصدار OpenTofu المحدد، ويطابق قيمة SHA-256 الخاصة به مع المجموع الاختباري المضمّن في rdc قبل فك الضغط، ثم يضع الملف التنفيذي في مجلد أدوات rdc. ويعرض `rdc tools list` كل أداة مع إصدارها ومكان العثور عليها.

16.1 install

ينزّل إصدار OpenTofu المحدد في أداة CLI هذه، ويتحقق من مجموعه الاختباري SHA-256، ثم يثبّته في مجلد أدوات rdc. إذا لم يتطابق المجموع الاختباري يُحذف الملف المنزَّل ولا يُثبَّت أي شيء. لا يثبّت rdc أداة Terraform أبدًا، وإن كانت موجودة في PATH فتُستخدم كما هي.

rdc tools install <tool> [options]
العلامةالوصفمطلوبافتراضي
--forceإعادة التثبيت حتى لو كان الإصدار المحدد موجودًالا-

16.2 list

يعرض محرك التجهيز الذي سيشغّله rdc (OpenTofu أو Terraform) وكل إصدار من OpenTofu في مجلد أدوات rdc، مع الإصدار والمصدر والمسار.

rdc tools list

17. عمليات VM محلية

تجهيز وإدارة أجهزة افتراضية محلية باستخدام KVM/QEMU/Hyper-V (يُكتشف النظام الأساسي تلقائيًا). ليست للأجهزة البعيدة. استخدم `machine` لتلك. الأوامر الفرعية الرئيسية: up (تشغيل الأجهزة الافتراضية)، down (إيقافها)، status (سرد الأجهزة الافتراضية العاملة)، ssh (الاتصال بجهاز افتراضي)، setup (تثبيت المتطلبات)، check (التحقق من جاهزية المضيف).

17.1 up

إنشاء مجموعة VM محلياً

rdc ops up [options]
العلامةالوصفمطلوبافتراضي
--forceفرض إعادة تشغيل جميع الآلات الافتراضيةلا-
--parallelإنشاء الآلات الافتراضية بالتوازيلا-
--basicمجموعة بسيطة (جسر + عامل واحد)لا-
--liteتخطي توفير VM (الحالة فقط)لا-
--skip-orchestrationتخطي تنسيق المجموعةلا-
--backend <backend>واجهة المحاكاة الافتراضية (kvm|qemu، يتم الكشف عنها تلقائياً)لا-
--os <name>نظام تشغيل VM (مثلاً، ubuntu-24.04، debian-12)لا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

17.2 down

تدمير مجموعة VM

rdc ops down [options]
العلامةالوصفمطلوبافتراضي
--backend <backend>واجهة المحاكاة الافتراضية (kvm|qemu، يتم الكشف عنها تلقائياً)لا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

17.3 status

عرض حالة مجموعة VM

rdc ops status [options]
العلامةالوصفمطلوبافتراضي
--backend <backend>واجهة المحاكاة الافتراضية (kvm|qemu، يتم الكشف عنها تلقائياً)لا-

17.4 ssh

الاتصال بـ VM عبر SSH

rdc ops ssh [options]
العلامةالوصفمطلوبافتراضي
--vm-id <id>معرّف الآلة الافتراضيةنعم-
-c, --command <cmd>تنفيذ أمر بدلاً من الصدفة التفاعليةلا-
--backend <backend>واجهة المحاكاة الافتراضية (kvm|qemu، يتم الكشف عنها تلقائياً)لا-
--user <user>اسم مستخدم SSH للاتصال بالآلة الافتراضيةلا-

17.5 setup

تثبيت متطلبات المحاكاة الافتراضية

rdc ops setup [options]
العلامةالوصفمطلوبافتراضي
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

17.6 check

التحقق من متطلبات المحاكاة الافتراضية

rdc ops check

18. خدمة المُنفِّذ

شغّل هذه العملية كمنفّذ حتى يتمكن العملاء من تنفيذ الأوامر من خلاله بدلاً من الاتصال بأنفسهم عبر SSH

rdc serve [options]
العلامةالوصفمطلوبافتراضي
-p, --port <port>المنفذ الذي يتم الاستماع عليهلا8080
--host <host>العنوان الذي يتم الربط بهلا0.0.0.0
--mode <mode>الموضع: daemon (مضيف العميل) أو containerلاdaemon

رسائل الخطأ الشائعة

عندما يحدث خطأ ما، يوفر سطر الأوامر رسائل خطأ واضحة:

الخطأالمعنى
المصادقة مطلوبة. قم بتشغيل: rdc subscription loginتحتاج إلى تسجيل الدخول أولاً
لا توجد إعدادات نشطة. أنشئ واحدة باستخدام: rdc config init <name>لا توجد إعدادات نشطة. أنشئ واحدة باستخدام `rdc config init`
تم رفض الإذنحسابك لا يملك الصلاحيات المطلوبة
اسم الآلة مطلوب. استخدم --machine <name>حدد جهازاً باستخدام `--machine` أو عيّن قيمة افتراضية للسياق
اسم المنطقة مطلوب. استخدم --region أو عيّن القيمة الافتراضية بـ: rdc config set region <name>حدد منطقة باستخدام `--region` أو عيّن قيمة افتراضية للسياق

تنسيقات الإخراج

تدعم جميع أوامر القائمة/الحصول تنسيقات إخراج متعددة عبر `--output`:

rdc machine list --output json
rdc machine list --output yaml
rdc machine list --output csv
rdc machine list --output table   # default

هذا يسهّل دمج سطر أوامر Rediacc في البرامج النصية وخطوط أنابيب CI/CD وسير عمل الأتمتة.