Relayium مقابل scp: نقل ملفات أبسط عبر SSH
آخر تحديث: 2026-07-12
ظل scp لعقود الطريقة الافتراضية لنقل ملف عبر SSH: فهو موجود سلفًا على كل جهاز شبيه بـ Unix تقريبًا، والجميع يعرف صيغته، وهو ببساطة يعمل. لا داعي للتظاهر بغير ذلك — فقد استحق scp مكانته عن جدارة.
لا تحل واجهة Relayium السطرية محل SSH؛ بل تركب فوق نفس وصول SSH الذي تملكه أصلًا. يستخدم push وpull اتصالك عبر SSH بالطريقة نفسها التي يستخدمها scp، لكنهما يضيفان بضعة أمور لم يُبنَ scp أصلًا للقيام بها: استئناف نقل انقطع، والتحقق من كل ملف بمجموع تحقق، وإظهار تقدّم فعلي، والعمل حتى عندما لا يكون في الطرف البعيد أي شيء مثبَّت على الإطلاق.
حيث يكون scp أبسط فعلًا
يستحق الأمر أن يُقال بصراحة: في كثير من المهام، scp هو الأداة الصحيحة، وإضافة أي شيء آخر تُعد عبئًا زائدًا.
- إنه مثبَّت سلفًا — لا ملف تنفيذي لجلبه، ولا شيء لإعداده، على كل خادم ستسجّل الدخول إليه عبر SSH فعليًا.
- إنه مُختبَر في الميدان. عقود من الاستخدام، وسلوك مفهوم جيدًا، وكل مسؤول نظام يعرف أعلامه بالفعل.
- لمهمة عابرة حقيقية — انسخ هذا الملف الواحد، الآن — فإن كتابة scp file.txt user@host:path تتطلب حروفًا أقل من تثبيت أي شيء.
- إنه مثالي للسكربتات السريعة العابرة التي لا تريد فيها أي تبعية تتجاوز OpenSSH.
قبل أن تبدأ
كل ما يلي هو relayium CLI، فثبّته أولًا إن لم تكن قد فعلت. على macOS وLinux، يُسقط أمر واحد ملفًا ثنائيًا مُسبق البناء في PATH الخاص بك:
curl -fsSL https://relayium.com/install.sh | sh
- تفضّل اختيار الملف بنفسك، أو تعمل على Windows؟ احصل على ملف ثنائي من صفحة الإصدارات — يسرد relayium.com/cli كل خيارات التثبيت (أو go build -o relayium ./cmd/relayium إن كان لديك Go).
- يؤكّد relayium --version أنه مثبَّت. تخطَّ هذا وستطبع الأوامر أدناه ‘command not found’ لا غير.
push / pull: نفس SSH، مع الاستئناف ومجاميع التحقق والتقدّم
يتصل relayium push وrelayium pull عبر نفس وصول SSH الذي يستخدمه scp تمامًا — نفس المضيف، ونفس المفتاح، ونفس المنفذ. الفرق هو ما يحدث بمجرد أن يُفتح الاتصال.
يُتحقَّق من كل ملف من الطرف إلى الطرف عبر تجزئة SHA-256 بعد وصوله، بحيث إن النقل الذي يبدو مكتملًا يطابق فعلًا ما أُرسل، بايتًا ببايت. وإذا انقطع نقلٌ ما — اتصال سقط، أو غطاء حاسوب محمول أُغلق — فإن إعادة تشغيل الأمر نفسه تلتقط من حيث توقفت بدلًا من إعادة إرسال كل شيء، وترى تقدّمًا حقيقيًا لكل ملف طوال الطريق، لا نسخًا صامتًا.
أكبر فرق عملي هو ما يحدث عندما لا يكون في الطرف البعيد relayium مثبَّتًا. يتحقق push من ذلك تلقائيًا، وإن لم يكن موجودًا، يتراجع إلى بث أرشيف tar بسيط عبر نفس اتصال SSH ليصب في tar -x على الطرف الآخر — فيظل push يعمل مقابل خادم خالٍ تمامًا، دون تثبيت أي شيء أولًا. هذا الحل الاحتياطي خاص بـ push فقط: يحتاج pull دائمًا إلى relayium مثبَّتًا سلفًا في الطرف البعيد، لأن الجهاز البعيد في عملية pull هو الذي يعمل كمُرسِل.
relayium push ./photos user@your-server:backups/
relayium pull user@your-server:backups/ ./restore
ما وراء SSH: daemon direct والاقتران عبر الشبكات
لا يعمل scp إلا حيث يكون لديك وصول SSH. تضيف واجهة Relayium السطرية طريقتين أخريين لنقل الملفات لا يملك scp ما يعادلهما.
يحوّل relayium serve جهازًا تملكه إلى هدف daemon direct يمكن الوصول إليه عبر TLS 1.3 مثبَّت — بلا SSH، ولا منفذ 22، تُنشأ الثقة عند أول اتصال (تُوافَق عليها تفاعليًا، أو تُصرَّح مسبقًا بـ relayium authorize للاستخدام دون إشراف) وتظل مثبَّتة بعد ذلك. ادفع إليه مباشرة بعنوان relayium://.
للإرسال إلى شخص عبر الإنترنت لا تملك تجاهه أي وصول SSH على الإطلاق، يقرن relayium send / receive حاسوبين برمز قصير بدلًا من ذلك — من الند للند مباشرةً، مع رمز تحقق قصير اختياري (SAS) يمكن للطرفين مقارنته أولًا — ويتوقّف --verify من أجله. لا جواب لدى scp لهذه الحالة؛ ستحتاج إلى وصول SSH أولًا.
relayium push ./build relayium://your-server
relayium send ./report.pdf
مزامنة المجلدات: sync مقابل إعادة تشغيل scp -r
نسخ مجلد كامل مرارًا وتكرارًا بـ scp -r يعني إعادة إرسال كل شيء في كل مرة، دون أي مفهوم لما تغيّر أو لما ينبغي إزالته. يبني relayium sync مرآة تزايدية أحادية الاتجاه فوق push/pull أو daemon direct: تُنقل الملفات المتغيرة فقط، و--delete يزيل من الوجهة الملفات التي اختفت من المصدر، و--watch يواصل إعادة المزامنة في الوقت الفعلي كلما تغيّرت الملفات محليًا — دون الحاجة إلى مهمة cron.
relayium sync ./photos user@your-server:backups/photos --delete --watch
مقارنة الميزات في لمحة
أهم الفروق، جنبًا إلى جنب:
- التوفّر: scp مثبَّت مسبقًا على كل خادم تقريبًا؛ واجهة Relayium السطرية ملف تنفيذي واحد تثبّته مرة واحدة بأمر واحد.
- الاستئناف: يعيد scp نقلًا منقطعًا من الصفر؛ بينما يستأنف push/pull من حيث توقفا.
- السلامة: لا يتحقق scp من المحتوى بعد الحدث؛ بينما يُفحص كل نقل في Relayium بتجزئة SHA-256 لكل ملف.
- الخوادم الخالية: لا يحتاج scp إلى أي شيء إضافي، ويعمل push بالطريقة نفسها عبر حله الاحتياطي بـ tar عندما لا يكون relayium مثبَّتًا عن بُعد (يحتاج pull إلى relayium في الطرف البعيد، بلا حل احتياطي).
- ما وراء SSH: يعمل scp عبر SSH فقط؛ بينما يقدّم Relayium أيضًا daemon direct (TLS مثبَّت، بلا SSH) ونقلات برمز الاقتران عبر الشبكات (send/receive) لا تحتاج إلى أي وصول SSH على الإطلاق.
- مزامنة المجلدات: يعيد scp -r إرسال كل شيء؛ بينما يزامن relayium sync بشكل تزايدي مع --delete و--watch.
- التكلفة والترخيص: كلاهما مجاني؛ scp يأتي مع OpenSSH، وواجهة Relayium السطرية مرخّصة بـ AGPL-3.0 ومفتوحة المصدر.
الأسئلة الشائعة
هل تحتاج واجهة Relayium السطرية إلى حساب؟
ليس لـ push/pull — فهو يستخدم وصولك عبر SSH تمامًا كما يفعل scp، بلا حساب Relayium وبلا تسجيل دخول، وكذلك daemon direct وsync. أما send و up السحابي فهما الاستثناء: يحتاج send حسابًا كي يُصدر الخادم رمز الاقتران (ولا يحتاجه إن مرّرت له رمزًا جاهزًا)، ويحتاجه up لتخزين الملف. أما الاستقبال فلا يحتاجه أبدًا.
هل يعمل push إذا لم يكن الخادم البعيد يحتوي على Relayium مثبَّتًا؟
نعم. يتحقق push أولًا، وإن لم يكن relayium موجودًا، يتراجع إلى بث tar بسيط عبر نفس اتصال SSH فيظل يعمل مقابل خادم خالٍ. هذا الحل الاحتياطي خاص بـ push فقط — يحتاج pull دائمًا إلى relayium مثبَّتًا سلفًا في الطرف البعيد، لأن الطرف البعيد يعمل كمُرسِل في عملية pull.
هل هو حقًا بسيط في الاستخدام كـ scp؟
تبدو الأوامر متشابهة: relayium push src user@host:dest بدلًا من scp -r src user@host:dest. لا يظهر الفرق إلا عندما يسوء شيء ما — يُستأنف اتصال سقط بدلًا من إعادة البدء، ويُتحقق من كل ملف بمجموع تحقق عند الوصول.
متى ينبغي أن أستخدم scp ببساطة بدلًا منه؟
لنسخة عابرة حقيقية لا يحتاج فيها شيء إلى استئناف، ولا يحتاج شيء إلى تحقق، ولا تريد أي ملف تنفيذي إضافي — فإن scp موجود سلفًا وهو الخيار الأبسط. وهو أيضًا الخيار الافتراضي الأكثر أمانًا داخل السكربتات السريعة حيث لا تريد تبعية جديدة.
هل واجهة Relayium السطرية مجانية؟
نعم، بالكامل — لا فئة مدفوعة، مرخّصة بـ AGPL-3.0 ومفتوحة المصدر، وكل وضع يصل الطرفين مباشرةً.
ثبّت واجهة Relayium السطرية المجانية وجرّب push أو pull عبر وصول SSH الذي تملكه أصلًا.
احصل على الواجهة السطرية