مرجع سطر أوامر 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' حتى يعكس التوزيع الأجهزة الفعلية. | لا | - |
--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]
| العلامة | الوصف | مطلوب | افتراضي |
|---|---|---|---|
--headless | استخدام تدفق رمز الجهاز (للخوادم بدون واجهة) | لا | - |
--password | التسجيل بلا واجهة رسومية باستخدام فتحة كلمة مرور مُجهَّزة مسبقًا (بلا متصفح) | لا | - |
--api-url <url> | عنوان خادم الحساب | لا | - |
--force | استبدال المحتوى المحلي المختلف بنسخة الخادم دون تأكيد | لا | - |
disable
قطع الاتصال بالتخزين عن بُعد وحفظ الإعدادات محلياً
rdc config remote disable
status
عرض حالة الاتصال عن بُعد
rdc config remote status
refresh
إعادة جلب الإعدادات من التخزين عن بُعد
rdc config remote refresh
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> | عنوان خادم الحساب | لا | - |
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> [options]
| العلامة | الوصف | مطلوب | افتراضي |
|---|---|---|---|
-t, --team <name> | اسم الفريق | لا | - |
3.3 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.4 deprovision
تدمير جهاز مُوفَّر سحابياً وإزالته من الإعدادات
rdc machine deprovision <name> [options]
| العلامة | الوصف | مطلوب | افتراضي |
|---|---|---|---|
--force | تخطي نافذة التأكيد | لا | - |
--debug | تفعيل مخرجات التصحيح (الوضع المحلي) | لا | - |
3.5 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.6 add
إضافة جهاز إلى الإعدادات الحالية
rdc machine add <name> [options]
| العلامة | الوصف | مطلوب | افتراضي |
|---|---|---|---|
--ip <address> | عنوان IP للآلة أو اسم المضيف | نعم | - |
--user <username> | اسم مستخدم SSH | نعم | - |
--port <port> | منفذ SSH | لا | 22 |
3.7 infra
إدارة تكوين البنية التحتية (الوكيل، DNS، الشهادات)
cert
إدارة شهادات TLS المخزنة مؤقتاً
إزالة ذاكرة تخزين الشهادات المؤقتة
rdc machine infra cert clear
تنزيل وتخزين شهادات TLS مؤقتاً من جهاز
rdc machine infra cert pull <machine> [options]
| العلامة | الوصف | مطلوب | افتراضي |
|---|---|---|---|
--no-prune | تخطي تنظيف شهادات معرّف الشبكة القديمة | لا | - |
--debug | تفعيل مخرجات التصحيح (الوضع المحلي) | لا | - |
رفع شهادات TLS المخزنة مؤقتاً إلى جهاز
rdc machine infra cert push <machine> [options]
| العلامة | الوصف | مطلوب | افتراضي |
|---|---|---|---|
--debug | تفعيل مخرجات التصحيح (الوضع المحلي) | لا | - |
عرض مخزون الشهادات المخزنة مؤقتاً
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.8 provider
إدارة المزودين السحابيين لتوفير الأجهزة تلقائياً
add
إضافة مزود سحابي
rdc machine provider add <name> [options]
| العلامة | الوصف | مطلوب | افتراضي |
|---|---|---|---|
--provider <source> | مصدر مزوّد معروف (مثال: linode/linode، hetznercloud/hcloud) | لا | - |
--source <source> | مصدر مزوّد OpenTofu مخصص (مثال: vultr/vultr) | لا | - |
--token <token> | رمز 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.9 remove
إزالة جهاز من التكوين الحالي
rdc machine remove <name> [options]
| العلامة | الوصف | مطلوب | افتراضي |
|---|---|---|---|
-y, --yes | تخطي نافذة التأكيد | لا | - |
--force | إزالة الجهاز حتى لو كانت مستودعات لا تزال موضوعة عليه، ما يترك تلك المواضع معلّقة. | لا | - |
3.10 scan-keys
فحص مفاتيح SSH للأجهزة في التكوين الحالي
rdc machine scan-keys [name]
3.11 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% |
--debug | تفعيل مخرجات التصحيح (الوضع المحلي) | لا | - |
3.12 status
عرض حالة الجهاز الكاملة (النظام، المستودعات، الحاويات، الخدمات)
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) إذا تجاوزت أي حاوية عتبة انحراف الصحة | لا | - |
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
سرد جميع العناقيد، أو عرض الإعداد الكامل لعنقود واحد باستخدام --name.
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 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.5 diff
مقارنة على مستوى الملف بأسلوب git بين مستودعين مفترعين بنسخ-عند-الكتابة. تُبلّغ عن الملفات المضافة والمعدَّلة والمحذوفة والمعاد تسميتها. تُقارن المستودع المُعطى عبر --name (الهدف / الجانب الجديد) بأصله المُحلَّل من الإعدادات المحلية، أو بمستودع --base صريح (الجانب القديم). تعتمد على البيانات الوصفية ومستقلة عن الحجم: تقارن صور LUKS المشفّرة على مستوى الكتل دون فكّ تشفيرها، فتُقارن مستودعًا بحجم 1 ج.ب وآخر بحجم 100 ج.ب في نفس أجزاء الثانية.
rdc repo diff <ref> [options]
| العلامة | الوصف | مطلوب | افتراضي |
|---|---|---|---|
--base <ref> | المستودع المُراد المقارنة معه (الجانب القديم/الأساس)؛ افتراضيًا أصل --name | لا | - |
--name-only | اطبع فقط مسارات الملفات المتغيّرة، واحدة في كل سطر (بدون أحرف الحالة) | لا | - |
--stat | أظهر حجم التغيير لكل ملف (فروق البايت والكتل) والإجماليات | لا | - |
--content [path] | أظهر فرقًا نصيًا موحَّدًا لملف واحد (يتطلّب مسار ملف) | لا | - |
--fast | ثِق بمرشّح الكتل؛ تجاوز تأكيد تجزئة المحتوى (قد يُبالغ في الإبلاغ عن المُعدَّل) | لا | - |
--debug | تفعيل مخرجات التصحيح (الوضع المحلي) | لا | - |
--skip-router-restart | تخطي إعادة تشغيل خادم التوجيه بعد تحديث الملف التنفيذي | لا | - |
6.6 list
عرض المستودعات على جهاز
rdc repo list [options]
| العلامة | الوصف | مطلوب | افتراضي |
|---|---|---|---|
-m, --machine <name> | اسم الجهاز المستهدف | لا | - |
--datastore <name> | عرض المستودعات في مخزن البيانات هذا (يُحلّ إلى أيًا كان الجهاز الذي يحمله حاليًا) | لا | - |
--debug | تفعيل مخرجات التصحيح (الوضع المحلي) | لا | - |
--skip-router-restart | تخطي إعادة تشغيل خادم التوجيه بعد تحديث الملف التنفيذي | لا | - |
6.7 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.8 delete
حذف مستودع وبياناته. يُحتفَظ بإدخال التكوين؛ استخدم --archive-config لنقل بيانات الاعتماد إلى deletedRepositories للاستعادة عبر 'repo admin archive restore'. يأخذ <ref> موضعيًا؛ الاسم المجرد يُحلّ إلى الخط الرئيسي (grand) ويُرفض عندما تشترك عدة مستودعات في الاسم الأساسي، لذا مرّر name:tag لاستهداف نسخة متفرعة.
rdc repo delete <ref> [options]
| العلامة | الوصف | مطلوب | افتراضي |
|---|---|---|---|
--archive-config | نقل إدخال الإعدادات إلى deletedRepositories للاستعادة لاحقاً | لا | - |
-y, --yes | تخطي نافذة التأكيد | لا | - |
--debug | تفعيل مخرجات التصحيح (الوضع المحلي) | لا | - |
--skip-router-restart | تخطي إعادة تشغيل خادم التوجيه بعد تحديث الملف التنفيذي | لا | - |
--dry-run | عرض ما سيتم تنفيذه دون إجراء تغييرات | لا | - |
6.9 commit
تجميد الحالة الحالية لفرع عمل (fork) مُركَّب في commit جديد غير قابل للتغيير (شبيه بـ git). يسجّل الـ commit رسالته ومؤلّفه وطابعه الزمني وأصله (parent) داخل المجلد المُشفَّر (بحيث ينتقل معه عند الدفع) ويُعلَّم للقراءة فقط — فيرفض التركيب. يبقى فرع العمل دون تغيير، تماماً كما يترك git شجرة العمل سليمة. استخرج الـ commit باستخدام 'rdc repo checkout' للحصول على نسخة قابلة للكتابة.
rdc repo commit <ref> [options]
| العلامة | الوصف | مطلوب | افتراضي |
|---|---|---|---|
--message <msg> | رسالة الـ commit | نعم | - |
--author <author> | مؤلّف الـ commit | لا | - |
--debug | تفعيل مخرجات التصحيح (الوضع المحلي) | لا | - |
6.10 branch
إنشاء مرجع branch مُسمّى يشير إلى الـ commit الحالي لفرع العمل (fork) (طرفه). تُخزَّن مراجع الـ branch في إعدادات الـ CLI (الجهاز = مخزن الكائنات، الإعداد = مخزن المراجع).
rdc repo branch <ref> [options]
| العلامة | الوصف | مطلوب | افتراضي |
|---|---|---|---|
--branch <branch> | اسم الفرع الجديد | نعم | - |
6.11 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.12 log
طباعة سجل الـ commit الذي يمكن الوصول إليه من الـ commit الحالي لفرع العمل (fork) (أو من مرجع commit)، بتتبّع سلسلة الأصل (parent) المسجَّلة بواسطة 'rdc repo commit'. يقرأ من النسخة المرآة خارج المجلد المُشفَّر، فلا يُفتح أي commit.
rdc repo log <ref> [options]
| العلامة | الوصف | مطلوب | افتراضي |
|---|---|---|---|
--debug | تفعيل مخرجات التصحيح (الوضع المحلي) | لا | - |
6.13 merge
دمج commit مصدري أو fork في fork عملي هدف. لا يتم تعديل الهدف الحي في مكانه أبداً: تُبنى النتيجة في نسخة reflink ويتم تبديلها بشكل ذري. يُرفض الهدف المُركَّب أو قيد التشغيل ما لم يُستخدم --force، الذي يوقفه أولاً بشكل نظيف. بدون --resolve يكون الدمج أخذًا للصورة الكاملة (take-theirs) فيصبح الهدف هو المصدر؛ ومع --resolve ours|theirs يكون دمجًا ثلاثي الاتجاهات لكل ملف مقابل السلف المشترك، يأخذ التغييرات الفريدة لكل جانب ويحل التعارضات الثنائية الجانب وفقًا للخيار.
rdc repo merge <ref> [options]
| العلامة | الوصف | مطلوب | افتراضي |
|---|---|---|---|
--from <source> | الـ commit أو fork المصدري المراد الدمج منه | نعم | - |
--force | أوقِف الهدف المُركَّب/قيد التشغيل أولاً، ثم ادمج (لا يعدّل أبداً نقطة تركيب حية) | لا | - |
| `—resolve <ours | theirs>` | حل التعارضات لكل ملف في دمج ثلاثي الاتجاهات: تُبقي 'ours' على نسخة الهدف، وتأخذ 'theirs' نسخة المصدر. احذفها للتقديم السريع للصورة كاملة (take-theirs). | لا |
--base <guid> | GUID الخاص بإيداع السلف المشترك لدمج ثلاثي الاتجاهات (يُستخدم مع --resolve). يكون افتراضيًا أصل إيداع المصدر أو الإيداع الحالي للهدف. | لا | - |
--debug | تفعيل مخرجات التصحيح (الوضع المحلي) | لا | - |
6.14 gc
حذف كائنات الإيداع الثابتة على جهاز التي لا يصل إليها أي فرع أو HEAD (جمع المهملات بحسب قابلية الوصول). الجهاز هو مخزن الكائنات؛ وإعداد الـ CLI هو مخزن المراجع. تشغيل تجريبي افتراضيًا: مرّر --apply للحذف. لا يمسّ أبدًا كائنًا مركّبًا أو نسخة عمل.
rdc repo gc [options]
| العلامة | الوصف | مطلوب | افتراضي |
|---|---|---|---|
-m, --machine <name> | اسم الجهاز المستهدف | نعم | - |
--apply | حذف الإيداعات غير القابلة للوصول فعليًا (الافتراضي معاينة تجريبية) | لا | - |
--debug | تفعيل مخرجات التصحيح (الوضع المحلي) | لا | - |
6.15 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.16 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.17 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.18 resize
تغيير حجم مستودع دون اتصال (يدعم التوسيع والتقليص)
rdc repo resize <ref> [options]
| العلامة | الوصف | مطلوب | افتراضي |
|---|---|---|---|
--size <size> | حجم المستودع الجديد (مثلاً 10G، 100G، 1T) | نعم | - |
--debug | تفعيل مخرجات التصحيح (الوضع المحلي) | لا | - |
--skip-router-restart | تخطي إعادة تشغيل خادم التوجيه بعد تحديث الملف التنفيذي | لا | - |
6.19 expand
توسيع مستودع مُركّب أثناء التشغيل (بدون توقف)
rdc repo expand <ref> [options]
| العلامة | الوصف | مطلوب | افتراضي |
|---|---|---|---|
--size <size> | حجم المستودع الجديد (مثلاً 10G، 100G، 1T) | نعم | - |
--debug | تفعيل مخرجات التصحيح (الوضع المحلي) | لا | - |
--skip-router-restart | تخطي إعادة تشغيل خادم التوجيه بعد تحديث الملف التنفيذي | لا | - |
6.20 trim
استعادة مساحة تجمّع مخزن البيانات من المستودعات المركَّبة (أثناء التشغيل، دون توقف). تُعاد الكتل المحذوفة داخل المستودعات إلى التجمّع عبر fstrim. بدون مرجع، تُعالَج كل المستودعات المركَّبة على -m ومخزن البيانات نفسه. يُتخطى fstrim للمستودعات التي يجري نسخها احتياطيًا، لكن استعادة --docker تظل تُنفَّذ
rdc repo trim [ref] [options]
| العلامة | الوصف | مطلوب | افتراضي |
|---|---|---|---|
--docker | استعادة مساحة Docker (حاويات متوقفة، صور معلّقة، ذاكرة بناء مؤقتة)؛ تُنفَّذ حتى أثناء وجود لقطة نسخ احتياطي نشطة | لا | - |
--docker-volumes | حذف وحدات تخزين Docker غير المستخدمة أيضًا | لا | - |
--report-only | عرض حالة discard وتقدير المساحة القابلة للاستعادة دون تنفيذ | لا | - |
-m, --machine <name> | اسم الجهاز المستهدف | لا | - |
--debug | تفعيل مخرجات التصحيح (الوضع المحلي) | لا | - |
6.21 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) | لا | - |
-m, --machine <name> | اسم الجهاز المستهدف | لا | - |
--debug | تفعيل مخرجات التصحيح (الوضع المحلي) | لا | - |
get
عرض افتراضي الجهاز المخزَّن، وتجاوز المستودع (مع مرجع)، والسياسة الفعلية المدمجة التي يعمل بها المشرف
rdc repo policy get [ref] [options]
| العلامة | الوصف | مطلوب | افتراضي |
|---|---|---|---|
-m, --machine <name> | اسم الجهاز المستهدف | لا | - |
--debug | تفعيل مخرجات التصحيح (الوضع المحلي) | لا | - |
6.22 push
دفع مستودع إلى جهاز بعيد (جهاز أو تخزين). يتم الكشف عن نوع الهدف تلقائياً من الإعدادات. للنقل بين الأجهزة، يتم نسخ صورة المستودع المشفرة بنفس 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 | فرض الكتابة فوق النسخة الاحتياطية الموجودة | لا | - |
-w, --watch | الانتظار للتغييرات | لا | - |
--bwlimit <limit> | حد عرض النطاق لنقل rsync (مثال: "6M"، "10M") | لا | - |
--delta-base <guid> | معرّف GUID أساسي ثابت متطابق بايتياً على كلا الجهازين؛ نقل الكتل المتغيرة فقط (هدف الجهاز). احذفه للاكتشاف التلقائي للأساس | لا | - |
--strategy <strategy> | استراتيجية دلتا الكتل عند استخدام أساس دلتا: auto أو physical أو shared | لا | - |
--debug | تفعيل مخرجات التصحيح (الوضع المحلي) | لا | - |
--skip-router-restart | تخطي إعادة تشغيل خادم التوجيه بعد تحديث الملف التنفيذي | لا | - |
6.23 pull
سحب مستودع من جهاز بعيد (جهاز أو تخزين). احذف الاسم لسحب جميع المستودعات. يتم الكشف عن نوع المصدر تلقائياً من الإعدادات. استخدم --up للنشر بعد السحب
rdc repo pull <ref> [options]
| العلامة | الوصف | مطلوب | افتراضي |
|---|---|---|---|
--from <remote> | اسم الجهاز أو التخزين المصدر (يتم الكشف تلقائياً من الإعدادات) | لا | - |
--from-machine <machine> | — | لا | - |
--force | فرض الكتابة فوق المستودع الموجود | لا | - |
--up | بعد السحب، قم بتركيب ونشر المستودع على هذا الجهاز | لا | - |
-w, --watch | الانتظار للتغييرات | لا | - |
--bwlimit <limit> | حد عرض النطاق لنقل rsync (مثال: "6M"، "10M") | لا | - |
--delta-base <guid> | معرّف GUID أساسي ثابت متطابق بايتياً على كلا الجهازين؛ استقبال الكتل المتغيرة فقط (مصدر الجهاز) | لا | - |
--strategy <strategy> | استراتيجية دلتا الكتل عند استخدام أساس دلتا: auto أو physical أو shared | لا | - |
--debug | تفعيل مخرجات التصحيح (الوضع المحلي) | لا | - |
--skip-router-restart | تخطي إعادة تشغيل خادم التوجيه بعد تحديث الملف التنفيذي | لا | - |
6.24 migrate
ترحيل مستودع حيًا من جهاز إلى آخر بأقل توقف ممكن. rsync على مرحلتين: نقل كتلي أثناء التشغيل، ثم توقف قصير لمزامنة الفروقات (delta). ينقل المستودع بالكامل (يُعاد توجيه التوجيه إلى الموطن الجديد)، وبمجرد نجاح النقل، يحذف صور المصدر (استخدم --keep-source للاحتفاظ بها). يدعم نقطة تفتيش CRIU لترحيل حالة ذاكرة العمليات والتزويد التلقائي للأجهزة الهدف
rdc repo migrate <ref> [options]
| العلامة | الوصف | مطلوب | افتراضي |
|---|---|---|---|
--to <place> | الجهاز أو العنقود الوجهة | نعم | - |
--provision <provider> | توفير تلقائي للهدف عبر مزود السحابة (مثال: hetzner، linode) | لا | - |
--bwlimit <limit> | حد عرض النطاق لنقل rsync (مثال: 10M) | لا | - |
--checkpoint | ترحيل مباشر عبر CRIU: التقاط واستعادة حالة ذاكرة العمليات | لا | - |
--delta-base <guid> | معرّف GUID أساسي ثابت لدلتا التحويل (متقدّم؛ الافتراضي هو أساس المرحلة 1) | لا | - |
--strategy <strategy> | استراتيجية دلتا الكتل للتحويل: auto أو physical أو shared | لا | - |
--skip-dns | تخطي تبديل سجلات DNS بعد الترحيل | لا | - |
--keep-source | الاحتفاظ بصور المصدر بعد نجاح النقل (تُحذف افتراضيًا؛ النسخ المتبقية غير قابلة للعنونة من أي سجل تكوين، وتُعلّمها reconcile كعناصر شاردة) | لا | - |
--debug | تفعيل مخرجات التصحيح (الوضع المحلي) | لا | - |
6.25 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.26 tunnel
إنشاء نفق SSH لتوجيه المنافذ إلى منفذ حاوية على جهاز بعيد. يكتشف تلقائيًا الحاوية والمنفذ عندما لا يكون هناك غموض. يبقى النفق مفتوحًا حتى تضغط Ctrl+C
rdc repo tunnel <ref> [options]
| العلامة | الوصف | مطلوب | افتراضي |
|---|---|---|---|
-c, --container <name> | اسم الحاوية (يُكتشف تلقائيًا إذا كانت واحدة فقط قيد التشغيل) | لا | - |
--port <port> | منفذ الحاوية البعيد للتوجيه | لا | - |
--local <port> | المنفذ المحلي (الافتراضي نفس المنفذ البعيد) | لا | - |
--url-only | طباعة عنوان URL المحلي فقط عند جهوزية النفق (قابل للقراءة آلياً) | لا | - |
6.27 secret
إدارة أسرار كل مستودع المُحقنة وقت النشر. للكتابة فقط: تُعيد get التلخيص فقط (لا القيمة الصريحة أبدًا)، وتتطلب set/unset تطابق تلخيص --current أو --rotate-secret. وضعا تسليم: env (REDIACC_SECRET_<KEY>) وfile (نظام tmpfs في /var/run/rediacc/secrets/<networkId>/<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.28 admin
أفعال إدارة وصيانة المستودعات.
archive
إدارة سجلات المستودعات المؤرشفة.
عرض بيانات اعتماد المستودعات المؤرشفة
rdc repo admin archive list
حذف جميع بيانات الاعتماد المؤرشفة نهائياً
rdc repo admin archive purge [name] [options]
| العلامة | الوصف | مطلوب | افتراضي |
|---|---|---|---|
-y, --yes | تخطي نافذة التأكيد | لا | - |
استعادة بيانات اعتماد مستودع مؤرشف
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> | اسم الجهاز المستهدف | نعم | - |
ownership
تغيير ملكية مجلد المستودع
rdc repo admin ownership <ref> [options]
| العلامة | الوصف | مطلوب | افتراضي |
|---|---|---|---|
--uid <uid> | معرّف المالك UID (افتراضي: 7111) | لا | - |
--debug | تفعيل مخرجات التصحيح (الوضع المحلي) | لا | - |
--skip-router-restart | تخطي إعادة تشغيل خادم التوجيه بعد تحديث الملف التنفيذي | لا | - |
autostart
إدارة التشغيل التلقائي للمستودعات عند الإقلاع
تمكين التشغيل التلقائي لمستودع
rdc repo admin autostart enable [ref] [options]
| العلامة | الوصف | مطلوب | افتراضي |
|---|---|---|---|
--debug | تفعيل مخرجات التصحيح (الوضع المحلي) | لا | - |
--skip-router-restart | تخطي إعادة تشغيل خادم التوجيه بعد تحديث الملف التنفيذي | لا | - |
تعطيل التشغيل التلقائي لمستودع
rdc repo admin autostart disable [ref] [options]
| العلامة | الوصف | مطلوب | افتراضي |
|---|---|---|---|
--debug | تفعيل مخرجات التصحيح (الوضع المحلي) | لا | - |
--skip-router-restart | تخطي إعادة تشغيل خادم التوجيه بعد تحديث الملف التنفيذي | لا | - |
عرض المستودعات ذات التشغيل التلقائي المفعّل
rdc repo admin autostart list [options]
| العلامة | الوصف | مطلوب | افتراضي |
|---|---|---|---|
-m, --machine <name> | اسم الجهاز المستهدف | نعم | - |
--debug | تفعيل مخرجات التصحيح (الوضع المحلي) | لا | - |
--skip-router-restart | تخطي إعادة تشغيل خادم التوجيه بعد تحديث الملف التنفيذي | لا | - |
template
تطبيق قالب على مستودع
عرض جميع قوالب النشر المضمنة في واجهة سطر الأوامر
rdc repo admin template list
طبّق قالبًا على مستودع. استخدم اسم قالب مدمج (مثل 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.29 promote
استبدال بيانات المستودع الأصلي ببيانات النسخة المتفرعة. يحتفظ الأصلي بهويته (GUID، networkId، النطاقات، التشغيل التلقائي، سلسلة النسخ الاحتياطي) لكنه يحصل على البيانات المحدّثة من النسخة المتفرعة. يتم حفظ البيانات القديمة للإنتاج كنسخة احتياطية متفرعة. للاستخدام: اختبر الترقية على النسخة المتفرعة → تحقق → استحوذ على بيانات الإنتاج.
rdc repo promote <fork-ref> [options]
| العلامة | الوصف | مطلوب | افتراضي |
|---|---|---|---|
-y, --yes | تخطي نافذة التأكيد | لا | - |
--debug | تفعيل مخرجات التصحيح (الوضع المحلي) | لا | - |
--skip-router-restart | تخطي إعادة تشغيل خادم التوجيه بعد تحديث الملف التنفيذي | لا | - |
6.30 logs
عرض سجلات التطبيق من حاويات مستودع. مستودعات Docker تُقرأ من Docker daemon الخاص بالمستودع نفسه؛ مستودعات Kubernetes تقرأ سجلات الـ pod في فضاء أسماء المستودع. إذا كان المستودع يُشغّل أكثر من حاوية، حدِّد المطلوبة بـ --container.
rdc repo logs <ref> [options]
| العلامة | الوصف | مطلوب | افتراضي |
|---|---|---|---|
-c, --container <name> | الحاوية المُراد قراءتها (مطلوبة فقط عندما يُشغّل المستودع أكثر من واحدة) | لا | - |
-f, --follow | الاستمرار في بث الأسطر الجديدة حتى المقاطعة | لا | - |
--lines <n> | عدد أسطر السجل التاريخية المُراد عرضها (الافتراضي: 100) | لا | 100 |
--timestamps | إضافة الطابع الزمني في بداية كل سطر | لا | - |
--debug | تفعيل مخرجات التصحيح (الوضع المحلي) | لا | - |
6.31 exec
تشغيل أمر داخل حاوية مستودع. يُمرَّر رمز خروج الأمر نفسه مباشرةً، لذا يعمل هذا في البرامج النصية والشروط. مستودعات Docker تُشغِّله عبر Docker daemon الخاص بالمستودع؛ مستودعات Kubernetes تُشغِّله في فضاء أسماء المستودع.
rdc repo exec <ref> <cmd...> [options]
| العلامة | الوصف | مطلوب | افتراضي |
|---|---|---|---|
-c, --container <name> | الحاوية المُراد التشغيل بداخلها (مطلوبة فقط عندما يُشغّل المستودع أكثر من واحدة) | لا | - |
-i, --interactive | تخصيص طرفية (لأمر يتوقع واحدة) | لا | - |
-u, --user <user> | المستخدم الذي يُشغَّل الأمر باسمه | لا | - |
--debug | تفعيل مخرجات التصحيح (الوضع المحلي) | لا | - |
7. المهام المنفصلة
إدارة المهام المنفصلة (detached jobs) على جهاز: عرض قائمتها، التحقق من حالتها، إعادة تشغيل أو متابعة سجلات أحداثها، إلغاء إحداها، أو تنظيف المهام المكتملة. تعمل المهمة المنفصلة تحت systemd على الجهاز، لذا تبقى قائمة حتى عند انقطاع الاتصال ويمكن إعادة الاتصال بها لاحقًا.
7.1 list
عرض المهام المنفصلة على جهاز، الأحدث أولًا
rdc job list [options]
| العلامة | الوصف | مطلوب | افتراضي |
|---|---|---|---|
-m, --machine <name> | اسم الجهاز المستهدف | نعم | - |
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 | تخطي نافذة التأكيد | لا | - |
8. النسخ الاحتياطي والاستعادة
إدارة استراتيجيات النسخ الاحتياطي وتشغيلاتها المجدولة والعناصر التي تنتجها: عرّف استراتيجية لمستودع، شغّلها أو استعدها عند الطلب، وافحص الأرشيفات التي كتبتها إلى نقطة تخزين.
8.1 schedule
نشر جدول النسخ الاحتياطي إلى جهاز بعيد (مؤقتات systemd)
rdc backup schedule [options]
| العلامة | الوصف | مطلوب | افتراضي |
|---|---|---|---|
-m, --machine <name> | اسم الآلة | نعم | - |
--dry-run | معاينة الوحدات المُولَّدة دون نشرها | لا | - |
--force | المتابعة حتى إن كانت هناك نسخة احتياطية قيد التشغيل (تنطبق الوحدة الجديدة عند النبضة التالية للمؤقت؛ يحتفظ التنفيذ الجاري بوحدته القديمة) | لا | - |
--reset-failed | مسح حالة الفشل للخدمات المُعدَّلة بعد نشر ناجح (معطّل افتراضيًا، يحافظ على إشارة الفشل) | لا | - |
--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> | اسم الآلة | لا | - |
--storage <name> | عرض العناصر على نقطة التخزين هذه | لا | - |
--path <subdir> | دليل فرعي ضمن جذر التخزين. عند حذفه، تُعرض hot/ وcold/ وتُدمَجان. | لا | - |
-w, --watch | الانتظار للتغييرات | لا | - |
--debug | تفعيل مخرجات التصحيح (الوضع المحلي) | لا | - |
8.4 restore
تحويل عنصر نسخة احتياطية إلى مستودع فعلي. يُحدَّد الموضع هنا.
rdc backup restore <artifact-ref> [options]
| العلامة | الوصف | مطلوب | افتراضي |
|---|---|---|---|
--as <name> | اسم المستودع المُستعاد (افتراضيًا اسم العنصر) | لا | - |
-m, --machine <name> | اسم الآلة | لا | - |
--datastore <name> | الاستعادة إلى مخزن البيانات المسمى هذا (يستضيفه الجهاز المرفق به) | لا | - |
--up | نشر المستودع المُستعاد بعد النقل | لا | - |
--health-window <seconds> | نافذة بوابة الصحة الإجمالية بالثواني (الافتراضي 300) | لا | - |
--health-timeout <seconds> | مهلة فحص الصحة لكل محاولة بالثواني (الافتراضي 30) | لا | - |
-y, --yes | تخطي نافذة التأكيد | لا | - |
--debug | تفعيل مخرجات التصحيح (الوضع المحلي) | لا | - |
8.5 run
تشغيل نسخة احتياطية فورية على جهاز بعيد
rdc backup run [strategy] [options]
| العلامة | الوصف | مطلوب | افتراضي |
|---|---|---|---|
-m, --machine <name> | اسم الآلة | نعم | - |
-w, --watch | الانتظار للتغييرات | لا | - |
--debug | تفعيل مخرجات التصحيح (الوضع المحلي) | لا | - |
8.6 status
عرض حالة النسخ الاحتياطي وحالة المؤقت على جهاز بعيد
rdc backup status [strategy] [options]
| العلامة | الوصف | مطلوب | افتراضي |
|---|---|---|---|
-m, --machine <name> | اسم الآلة | نعم | - |
--debug | تفعيل مخرجات التصحيح (الوضع المحلي) | لا | - |
8.7 strategy
إدارة استراتيجيات النسخ الاحتياطي المسماة (أوضاع ساخنة/باردة، وجهات، جدولة)
set
إنشاء أو تحديث استراتيجية نسخ احتياطي
rdc backup strategy set <strategy> [options]
| العلامة | الوصف | مطلوب | افتراضي |
|---|---|---|---|
--destination <name> | اسم الوجهة ضمن الاستراتيجية | لا | - |
--storage <name> | اسم تكوين التخزين (بيانات اعتماد rclone) | لا | - |
--cron <expression> | جدول cron (مثلاً "0 * * * *" للتشغيل كل ساعة) | لا | - |
--mode <mode> | وضع النسخ الاحتياطي: "hot" (بدون توقف) أو "cold" (إيقاف، لقطة، إعادة تشغيل) | لا | - |
--bwlimit <limit> | حد عرض النطاق الترددي لـ rclone (مثلاً "6M"، "10M:off"، "08:00,3M;22:00,10M") | لا | - |
--include <repos> | نسخ هذه المستودعات فقط (أسماء مفصولة بفواصل) | لا | - |
--exclude <repos> | استبعاد هذه المستودعات من النسخ الاحتياطي (أسماء مفصولة بفواصل) | لا | - |
--folder <path> | المجلد الفرعي في حاوية التخزين لهذه الوجهة (مثال: hot, cold) | لا | - |
--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> | إزالة هذه الوجهة فقط (الاحتفاظ بالوجهات الأخرى) | لا | - |
list
عرض قائمة جميع استراتيجيات النسخ الاحتياطي
rdc backup strategy list
show
عرض تفاصيل استراتيجية النسخ الاحتياطي
rdc backup strategy show [strategy]
9. إدارة التخزين
إدارة نقاط تخزين النسخ الاحتياطي الخارجية (S3 ووجهات أخرى متوافقة مع rclone): تسجيلها وإزالتها، وعرض المسجَّل منها، وتصفح العناصر التي تحتفظ بها، وتنظيف النسخ الاحتياطية اليتيمة.
9.1 list
عرض نقاط التخزين. أعطِ اسمًا للحصول على التفاصيل الكاملة.
rdc storage list [name] [options]
| العلامة | الوصف | مطلوب | افتراضي |
|---|---|---|---|
--reveal | إظهار إعدادات التخزين كنص صريح (طرفية تفاعلية فقط؛ يُسجَّل في التدقيق) | لا | - |
9.2 browse
تصفّح الملفات في نظام تخزين
rdc storage browse <storage> [options]
| العلامة | الوصف | مطلوب | افتراضي |
|---|---|---|---|
--path <subpath> | مسار الدليل الفرعي للعرض | لا | “ |
9.3 prune
حذف النسخ الاحتياطية المعزولة من التخزين غير الموجودة في أي تكوين. آمن مع التكوينات المتعددة مع حماية فترة السماح.
rdc storage prune <storage> [options]
| العلامة | الوصف | مطلوب | افتراضي |
|---|---|---|---|
-m, --machine <name> | آلة المنفذ، تشغل مكالمات قائمة/حذف rclone مقابل التخزين. مطلوبة لأن العملاء لا يُتوقع منهم تثبيت rclone محلياً؛ بيانات اعتماد التخزين لا تزال تأتي من تكوينك المحلي. | نعم | - |
--dry-run | عرض ما سيتم تنفيذه دون إجراء تغييرات | لا | - |
--force | تخطي نوافذ التأكيد | لا | - |
--force-delete-mounted | تجاوز فحص أمان التركيب وحذف النسخ الاحتياطية السحابية حتى لو كان GUID المصدر مركباً حالياً أو لديه حاوية قيد التشغيل على آلة المنفذ. مختلف عن --force (الذي يتجاوز فترة السماح للمستودعات المؤرشفة فقط). | لا | - |
--grace-days <days> | فترة السماح بالأيام للمستودعات المؤرشفة حديثًا (الافتراضي: 7) | لا | - |
--debug | تفعيل مخرجات التصحيح (الوضع المحلي) | لا | - |
--skip-router-restart | تخطي إعادة تشغيل خادم التوجيه بعد تحديث الملف التنفيذي | لا | - |
9.4 add
تسجيل نقطة نهاية تخزين.
rdc storage add <name> [options]
| العلامة | الوصف | مطلوب | افتراضي |
|---|---|---|---|
--vault <json> | محتوى الخزينة كسلسلة JSON | نعم | - |
9.5 import
استيراد التخزين من ملف تكوين rclone
rdc storage import <file> [options]
| العلامة | الوصف | مطلوب | افتراضي |
|---|---|---|---|
--name <name> | استيراد هذا القسم المسمى فقط | لا | - |
9.6 remove
إزالة نقطة تخزين من التكوين.
rdc storage remove <name> [options]
| العلامة | الوصف | مطلوب | افتراضي |
|---|---|---|---|
-y, --yes | تخطي نافذة التأكيد | لا | - |
--dry-run | عرض ما سيتم تنفيذه دون إجراء تغييرات | لا | - |
10. تكامل VS Code
فتح VS Code Remote SSH للاتصال بجهاز أو مستودع
10.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> | مسار أرشيف الخادم المُعدّ مسبقاً على الجهاز (للتثبيت بدون إنترنت) | لا | - |
10.2 list
قائمة اتصالات VS Code SSH المكونة
rdc vscode list
10.3 cleanup
إزالة إعدادات VS Code SSH
rdc vscode cleanup [options]
| العلامة | الوصف | مطلوب | افتراضي |
|---|---|---|---|
--all | إزالة جميع إعدادات SSH الخاصة بـ rediacc | لا | - |
-c, --connection <name> | إزالة اتصال معين | لا | - |
10.4 check
التحقق من تثبيت VS Code والإعدادات
rdc vscode check [options]
| العلامة | الوصف | مطلوب | افتراضي |
|---|---|---|---|
--insiders | استخدام إعدادات VS Code Insiders | لا | - |
10.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) | لا | - |
11. وصول طرفية SSH
فتح طرفية SSH إلى جهاز أو مستودع. الهدف اسم جهاز أو مرجع مستودع، ويُعَدّ سياق المستودع (DOCKER_HOST، دليل العمل، البيئة) تلقائيًا. استخدم `-c` لتشغيل أمر واحد بشكل غير تفاعلي. لسجلات الحاويات أو أمر لمرة واحدة داخل حاوية، استخدم `repo logs` و`repo exec`. لـ VS Code، استخدم `vscode`.
11.1 connect
فتح صدفة على جهاز، أو داخل مستودع مع إعداد Docker الخاص به.
rdc term connect <target> [options]
| العلامة | الوصف | مطلوب | افتراضي |
|---|---|---|---|
-c, --command <cmd> | تنفيذ أمر بدلاً من الصدفة التفاعلية | لا | - |
--external | فرض تشغيل في نافذة طرفية خارجية | لا | - |
--reset-home | إعادة تعيين طبقة المنزل لكل مستودع للبدء من جديد | لا | - |
12. أوامر سريعة (اختصارات)
12.1 run
تنفيذ دالة (اختصار لـ: queue create)
rdc run
12.2 trace
تتبع مهمة (اختصار لـ: queue trace)
rdc trace
12.3 cancel
إلغاء مهمة (اختصار لـ: queue cancel)
rdc cancel
12.4 retry
إعادة محاولة مهمة فاشلة (اختصار لـ: queue retry)
rdc retry
13. إدارة الاشتراكات
إدارة التراخيص ورموز الاشتراك. سجّل الدخول بـ login، وافحص الحالة بـ status، وأعد إصدار التراخيص بـ refresh.
13.1 login
المصادقة باستخدام رمز API من بوابة الويب
rdc subscription login [options]
| العلامة | الوصف | مطلوب | افتراضي |
|---|---|---|---|
-t, --token <token> | رمز API (rdt_...) | لا | - |
--server <url> | عنوان خادم الحساب | لا | - |
13.2 logout
مسح رمز الاشتراك المحفوظ
rdc subscription logout
13.3 status
عرض الاشتراك، وحالة الترخيص لجهاز.
rdc subscription status [options]
| العلامة | الوصف | مطلوب | افتراضي |
|---|---|---|---|
-m, --machine <name> | اسم الآلة | لا | - |
13.4 refresh
تحديث التراخيص من خادم الحساب.
rdc subscription refresh [options]
| العلامة | الوصف | مطلوب | افتراضي |
|---|---|---|---|
-m, --machine <name> | اسم الآلة | لا | - |
--repo <ref> | مرجع المستودع: اسم، أو اسم:وسم، اختياريًا مع @machine (مثال shop أو shop:test) | لا | - |
14. تحديثات سطر الأوامر
التحقق من تحديثات CLI وتطبيقها
rdc update [options]
| العلامة | الوصف | مطلوب | افتراضي |
|---|---|---|---|
--force | فرض التحديث حتى لو كان محدثاً | لا | - |
--check-only | التحقق من التحديثات فقط دون التنزيل | لا | - |
--rollback | التراجع إلى الإصدار السابق | لا | - |
--status | عرض حالة التحديث التلقائي والتشخيصات | لا | - |
--channel <channel> | تعيين قناة الإصدار (stable أو edge) | لا | - |
15. إسنادات الأطراف الثالثة
طباعة مكونات الأطراف الثالثة المرفقة مع rdc: الملفات التنفيذية التي يضمّنها renet وينقلها (CRIU وrsync وrclone)، وبيئة تشغيل Node.js المضمّنة، وتبعيات npm المرفقة. يعرض الإصدارات ومعرّفات ترخيص SPDX وعناوين URL لأرشيف المصدر بالإصدار الدقيق المطلوبة للامتثال لـ GPL. استخدم --licenses لطباعة نص THIRD_PARTY_LICENSES الكامل المرفق مع إصدارات الإطلاق.
rdc credits [options]
| العلامة | الوصف | مطلوب | افتراضي |
|---|---|---|---|
--licenses | طباعة نص THIRD_PARTY_LICENSES الكامل المرفق مع إصدارات الإطلاق | لا | - |
16. تشخيص النظام
تشخيص بيئة CLI وتكامل renet
rdc doctor
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` أو عيّن قيمة افتراضية للسياق |
| اسم الفريق مطلوب. استخدم --team أو عيّن القيمة الافتراضية بـ: rdc config set team <name> | حدد فريقاً باستخدام `--team` أو عيّن قيمة افتراضية للسياق |
| اسم المنطقة مطلوب. استخدم --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 وسير عمل الأتمتة.