1. مقدمة
2. صيغة ومعاملات أوامر DriveHQ FTP
3. إنشاء ملفات نصية لبروتوكول نقل الملفات (FTP)
3.1 مثال على ملف نصي لبروتوكول نقل الملفات (FTP)
3.2 ملف نصي FTP مع المعلمات
4. أتمتة نقل الملفات باستخدام جدولة مهام ويندوز
5. مزامنة المجلدات تلقائيًا باستخدام DriveHQ CommandFTP
6. مراجع أوامر بروتوكول نقل الملفات (FTP)
6.1 أوامر FTP القياسية
6.2 أوامر FTP المتقدمة في DriveHQ
1. مقدمة
DriveHQ CommandFTP هو برنامج عميل FTP وSFTP قوي يعمل عبر سطر الأوامر، مصمم ليحل محل برنامج عميل FTP الخاص بنظام ويندوز. يدعم البرنامج برمجة FTP، وهو متوافق مع جميع خوادم FTP/SFTP القياسية.
يُعدّ بروتوكول نقل الملفات (FTP/SFTP) شائعًا جدًا لنقل الملفات والمجلدات الكبيرة عبر الإنترنت. ويُستخدم عميل FTP عبر سطر الأوامر على نطاق واسع في نقل الملفات تلقائيًا باستخدام برمجة FTP. يستخدم الكثيرون عميل FTP المدمج في نظام ويندوز. مع ذلك، يعاني هذا العميل من بعض العيوب الرئيسية:
- 1. وهو يدعم فقط وضع FTP النشط، والذي غالباً ما يتم حظره بواسطة أجهزة التوجيه أو جدران الحماية أو برامج الأمان.
- 2. يدعم فقط بروتوكول نقل الملفات (FTP) العادي بدون تشفير البيانات.
- 3. لا يدعم البرنامج الاستئناف/إعادة المحاولة التلقائي.
تم تصميم برنامج DriveHQ CommandFTP ليحل محل عميل FTP الافتراضي لنظام التشغيل Windows. ويتميز بالمزايا التالية:
- 1. يدعم بروتوكول نقل الملفات (FTP) في الوضع النشط والوضع السلبي.
- 2. يدعم بروتوكول نقل الملفات عبر SSL (FTPS و FTPES) و SFTP.
- 3. يدعم استئناف/إعادة المحاولة تلقائيًا.
- 4. يدعم ضغط البيانات وتشفيرها.
- 5. يدعم تنزيل/تحميل المجلدات.
- 6. يدعم البرنامج نسخ/مزامنة المجلدات.
- 7. يدعم تسجيل الأحداث لأغراض التدقيق واستكشاف الأخطاء وإصلاحها.
- 8. يمكنه إرسال تقارير عبر البريد الإلكتروني بعد العملية.
- 9. يدعم هذا البرنامج نصوص FTP أكثر قوة.
في كثير من الحالات، يُمكن لبرنامج DriveHQ CommandFTP أن يحل محل عميل FTP الخاص بنظام Windows مباشرةً. يتشابه البرنامجان في الصيغة ومعاملات سطر الأوامر. مع ذلك، يُقدم DriveHQ CommandFTP مزايا أكثر بكثير، إذ يُمكنه التعامل مع مهام نقل الملفات المعقدة بأمر واحد فقط. وبفضل دعمه لبروتوكول SFTP، يُمكنك كتابة ملف نصي لبروتوكول FTP وتشغيله باستخدام خادم SFTP.
2. صيغة ومعاملات أوامر DriveHQ FTP
بناء الجملة
cmdftp FTP_SERVER [-u:USERNAME] [-p:PASSWORD] [-i] [-A] [-k:"PRIVATE_KEY_FILE"] [-s:"FTP_SCRIPT_FILE"] [-d:"LOG_FILE"] [-m:"SOURCE_FTP_SERVER", "DESTINATION_FTP_SERVER"] [CMDOPTIONS]
cmdftp [-s:"FTP_SCRIPT_FILE"] [-d:"logfile"]
حدود
| المعلمة |
وصف |
| FTP_SERVER |
اسم خادم FTP/SFTP أو عنوان IP الخاص به، مثل ftp.drivehq.com أو ftp://ftp.drivehq.com أو ftps://ftp.drivehq.com. هذا مطلوب ما لم تتضمن المعلمات -s:FTP_SCRIPT_FILE
|
|
| -u:USERNAME |
يحدد اسم مستخدم حساب FTP/SFTP. |
|
| -p:PASSWORD |
يحدد كلمة مرور حساب FTP/SFTP. |
|
| -k:"PRIVATE_KEY_FILE" |
اختياري. يحدد مسار ملف المفتاح الخاص ببروتوكول نقل الملفات الآمن (SFTP). |
|
| -s:"FTP_SCRIPT_FILE" |
اختياري. يحدد مسار ملف برنامج FTP النصي. في حال توفير هذه المعلمة، يتم تجاهل المعلمات الأخرى، باستثناء الخيار "-d:LOG_FILE". |
خيارات الأوامر
| /xo[:time] |
استبعاد الملفات القديمة |
|
| /xn[:time] |
استبعاد الملفات الأحدث |
|
| /xf:filenames |
استبعد الملفات، يتم فصل الملفات بفواصل |
|
| /xd:foldernames |
استبعد المجلدات، حيث يتم فصل المجلدات بفواصل |
خيارات التسجيل
| -d:"LogFileName" |
يُحدد مسار ملف السجل. في حال استخدام "-d" بدون تحديد اسم ملف السجل، فسيتم عرض السجل في نافذة وحدة التحكم. |
3. إنشاء ملفات نصية لبروتوكول نقل الملفات (FTP)
تُعدّ برامج FTP النصية شائعة الاستخدام بين مسؤولي تقنية المعلومات ومُكاملِي الأنظمة، حيث تُستخدم على نطاق واسع في النسخ الاحتياطي التلقائي للبيانات ونقل الملفات. تُمكّنك هذه البرامج من إنشاء ملف نصي يحتوي على قائمة بأوامر FTP ومدخلاتها، ثم تشغيل هذه الأوامر بالتتابع في عملية واحدة. ونظرًا لاحتواء ملف البرنامج النصي على العديد من أوامر FTP، فإنه يُمكنه إنجاز مهام نقل ملفات بالغة التعقيد.
يُعدّ استخدام سكربتات FTP مع عميل FTP الافتراضي لنظام Windows محدودًا للغاية: فهو يدعم فقط بروتوكول FTP العادي، وهو غير آمن؛ كما يدعم فقط نموذج FTP النشط، والذي غالبًا ما يتم حظره بواسطة أجهزة التوجيه/جدران الحماية. يدعم برنامج DriveHQ CommandFTP معظم ميزات عميل FTP لنظام Windows؛ بالإضافة إلى العديد من الميزات غير المتوفرة فيه. يتوافق برنامج DriveHQ CommandFTP مع جميع خوادم FTP القياسية.
لكتابة ملف نصي لبروتوكول نقل الملفات (FTP)، يمكنك تشغيل أوامر FTP في الوضع التفاعلي أولاً. افتح نافذة الأوامر، واكتب الأوامر التالية كما هو موضح في لقطة الشاشة أدناه:
تتضمن هذه الأوامر عادةً: الاتصال بخادم FTP، وتسجيل الدخول إليه، وعرض محتويات الملفات والمجلدات في دليل، وتغيير الدليل الحالي، وتحميل/تنزيل/حذف الملفات، وما إلى ذلك. إذا كنت تستخدم FTP بشكل متقطع، فإن الطريقة المذكورة أعلاه كافية. أما إذا كنت بحاجة إلى نقل/نسخ/حذف الملفات بشكل متكرر، مثلاً كجزء من مهمة نسخ احتياطي مجدولة، أو تبادل البيانات الإلكتروني (EDI) مع شركة أخرى، فيمكنك بسهولة كتابة ملف برمجي قابل لإعادة الاستخدام. وبالاستعانة بميزة جدولة المهام التي يدعمها نظام التشغيل، يمكنك أتمتة هذه العملية.
مثال على ملف نصي لبروتوكول نقل الملفات (FTP)
يحتوي ملف نص FTP على نفس الأوامر/المدخلات المستخدمة في جلسة FTP تفاعلية. ببساطة، ما عليك سوى إنشاء ملف نصي في محرر نصوص (مثل المفكرة)، وكتابة الأوامر والمدخلات كما تفعل في الوضع التفاعلي. يتميز برنامج CommandFTP من DriveHQ بواجهة مشابهة جدًا لعميل FTP الخاص بنظام Windows. يمكن تشغيل الأوامر التالية في كل من عميل FTP الخاص بنظام Windows وعملاء CommandFTP من DriveHQ. لاستخدام CommandFTP، يرجى كتابة cmdftp بدلاً من ftp. على سبيل المثال:
C:\>ftp
ftp> open ftp.drivehq.com
Connected to ftp.drivehq.com.
220 Welcome to the most popular FTP hosting service! Save on hardware, software,
hosting and admin. Share files/folders with read-write permission. Visit http:/
/www.drivehq.com/ftp/;
User (ftp.drivehq.com:(none)): dhqdemo
331 User name ok, need password.
Password: xxxxxxxxx
230 User dhqdemo logged on.
ftp> cd test
250 CWD command successful. "/test" is current directory.
ftp> delete orders.xml.bak
550 File not found.
ftp> rename orders.xml orders.xml.bak
350 File exists, ready for destination name.
250 File "/test/orders.xml" renamed successfully.
ftp> put c:\test\orders.xml
200 Port command successful.
150 Opening BINARY mode data connection for file transfer.
226 Transfer complete
ftp: 41 bytes sent in 0.06Seconds 0.65Kbytes/sec.
ftp> quit
221 Bye
C:\>
كما ترون، ستؤدي هذه الأوامر إلى:
- قم بتسجيل الدخول إلى خادم FTP: ftp.drivehq.com؛
- أدخل اسم المستخدم وكلمة المرور؛
- انتقل إلى الدليل المحلي "c:\test"؛
- قم بالتغيير إلى دليل FTP "/test"؛
- احذف الملف "Orders.xml.bak" (إن وجد) على خادم FTP؛
- قم بإعادة تسمية الملف "Orders.xml" (إن وجد) إلى "Orders.xml.bak" على خادم FTP؛
- قم بتحميل الملف المحلي "Orders.xml" إلى خادم FTP؛
- خروج
يمكنك تشغيلها في نافذة الأوامر لتصحيح الأخطاء في الكود قبل حفظها في ملف نصي. سيكون محتوى النص البرمجي كما يلي:
open ftp.drivehq.com
USERNAME
xxxxxxxxx
cd test
delete orders.xml.bak
rename orders.xml orders.xml.bak
put c:\test\orders.xml
quit
يمكن تشغيل سكربت FTP المذكور أعلاه يوميًا لنقل معلومات الطلبات الجديدة تلقائيًا إلى خادم FTP. سيقوم السكربت بتحميل أحدث نسخة من ملف "Orders.xml" إلى خادم FTP؛ وقبل تحميل الملف، سيقوم بإعادة تسمية (نسخ احتياطي) الملف السابق.
لتشغيل سكربت FTP، ما عليك سوى تنفيذ أمر FTP مع الخيار -s. باستخدام عميل FTP الخاص بنظام Windows، يمكنك استخدام:
ftp -s:ftpscript.txt
باستخدام برنامج DriveHQ CommandFTP، يمكنك استخدام
cmdftp -s:ftpscript.txt
نصوص FTP مع المعلمات
نص FTP المذكور أعلاه ثابت. يمكن تشغيله بشكل متكرر، ولكنه ليس مرنًا للغاية. على سبيل المثال، إذا كنت بحاجة إلى نقل البيانات لعدة عملاء، فمن المحتمل أنك ترغب في استخدام مجلدات مختلفة. لإعادة استخدام نص FTP نفسه، يجب أن يدعم معلمات إضافية. هناك حلان:
(1) استخدم ملفًا برمجيًا دفعيًا لإنشاء ملف نصي لبروتوكول نقل الملفات (FTP) ديناميكيًا. يمكن للملفات البرمجية الدفعية في نظام ويندوز استقبال معلمات سطر الأوامر. إذا كنت تستخدم عميل FTP لنظام ويندوز، فهذا هو الحل الوحيد.
(2) يدعم برنامج DriveHQ CommandFTP معلمات إضافية.
باستخدام الطريقة الأولى، ستحتاج إلى إنشاء ملف دفعي، على سبيل المثال test.bat. احفظ الملف في المجلد C:\test. يمكنك تشغيل الملف الدفعي بكتابة الأمر التالي:
c:\test\test.bat PARAM1 PARAM2 ...
سيكون ملف test.bat على النحو التالي:
@echo off
echo open ftp.drivehq.com> ftpscript.txt
echo USERNAME>> ftpscript.txt
echo PASSWORD>> ftpscript.txt
echo cd %1>> ftpscript.txt
echo delete %2.bak>> ftpscript.txt
echo rename %2 %2.bak>> ftpscript.txt
echo put c:\%1\%2>> ftpscript.txt
echo quit>> ftpscript.txt
بهذه الطريقة، يمكنك تمرير الوسائط من ملف الدُفعة إلى ملف نص FTP. ويمكن إعادة استخدام نص الدُفعة نفسه لشركات مختلفة، على سبيل المثال:
c:\test\test.bat c:\OrdersOfCompanyA ordersOfCompanyA.xml
c:\test\test.bat c:\OrdersOfCompanyB ordersOfCompanyB.xml
باستخدام DriveHQ CommandFTP، يمكنك تشغيل سكربت FTP مع وسائط إضافية. بهذه الطريقة، لن تحتاج إلى إنشاء ملف دفعي. يمكنك ببساطة تشغيل سكربت FTP باستخدام الأمر التالي:
cmdftp -s:ftpscript.txt argument1 argument2 argument3 ...
يجب تعديل ملف نص FTP قليلاً على النحو التالي:
# %1 is like "test", %2 is like "orders.xml"
# This file is saved as c:\temp\ftpscript2.txt
# to run it, use:
# cmdftp -s:c:\temp\ftpscript2.txt -%1:test -%2:orders.xml
open ftp.drivehq.com
USERNAME
PASSWORD
cd /%1
delete /%1/%2.bak
rename /%1/%2 /%1/%2.bak
put c:\%1\%2
quit
في ملف البرنامج النصي أعلاه، تم استبدال اسم المجلد بـ %1، واسم الملف بـ %2. لتشغيل برنامج FTP النصي، يجب عليك توفير هذه المعلمات كوسيطات سطر الأوامر.
cmdftp -s:c:\temp\ftpscript2.txt -%1:test -%2:orders.xml
عندما يقوم برنامج DriveHQ CommandFTP بتنفيذ ملف البرنامج النصي، فإنه سيستبدل %1 بـ "test" و %2 بـ "orders.xml".
4. أتمتة نقل الملفات باستخدام جدولة مهام ويندوز
سواءً استخدمت ملف دفعي أو برنامج DriveHQ CommandFTP مباشرةً، يمكنك جدولة نقل الملفات في "مجدول المهام" في نظام ويندوز. يمكنك جدولة المهمة لتشغيلها يوميًا أو أسبوعيًا أو شهريًا. في الإعدادات المتقدمة، يمكنك أيضًا ضبط المهمة لتشغيلها كل بضع ساعات أو دقائق. كما يمكنك تحديد وقت بدء المهمة. لتشغيل "مجدول المهام"، اكتب "مجدول المهام" في مربع البحث، كما هو موضح في لقطة الشاشة أدناه:
انقر على "جدولة المهام"، وسيتم تشغيل "جدولة مهام ويندوز".
لإنشاء مهمة، انقر فوق "إنشاء مهمة أساسية".
أدخل اسم المهمة ووصفها، ثم انقر فوق التالي.
حدد جدول مهامك. يمكنك الاختيار بين يومي، أسبوعي، أو شهري. إذا كنت ترغب بتشغيل المهمة كل ساعة، يمكنك القيام بذلك لاحقًا في الإعدادات المتقدمة. انقر على "التالي" لتعيين الإجراء.
في صفحة الإجراءات، حدد "بدء برنامج"، ثم انقر فوق التالي.
استعرض الملفات لاختيار برنامج DriveHQ CommandFTP (cmdftp.exe). أضف معلمات سطر الأوامر في مربع نص "إضافة وسيطات". يُعدّ خيار "بدء التشغيل في" اختياريًا، ويمكنك تعيينه إلى نفس مجلد ملف EXE. انقر على "التالي" لإنهاء إنشاء المهمة.
للوصول إلى الإعدادات المتقدمة، انقر على "مكتبة جدولة المهام"، حيث ستظهر لك قائمة بالمهام المجدولة. انقر نقراً مزدوجاً على مهمة "تحميل الطلبات"، لتتمكن من تعديل إعدادات المهمة.
ملاحظة: بشكل افتراضي، لن يتم تشغيل المهمة إلا عند تسجيل دخول المستخدم. يمكنك تغيير الإعداد هنا لتشغيل المهمة حتى في حال عدم تسجيل دخول المستخدم.
5. مزامنة المجلدات تلقائيًا باستخدام DriveHQ CommandFTP
يدعم برنامج DriveHQ CommandFTP خاصية النسخ المتطابق للمجلدات. مزامنة مجلد محلي مع مجلد FTP أمر في غاية السهولة. ما عليك سوى استخدام الأمر التالي:
cmdftp FTP_SERVER -u:username -p:password -m:"LOCAL_FOLDER|FTP_FOLDER"
باستخدام جدولة مهام ويندوز، يمكنك تشغيل هذا الأمر لمزامنة المجلدين بشكل دوري.
6. مراجع أوامر بروتوكول نقل الملفات (FTP)
بعد تسجيل الدخول إلى خادم FTP، يمكنك إرسال أوامر FTP إليه. يدعم عميل FTP الخاص بنظام ويندوز الأوامر التالية.
يرجى ملاحظة أن هذه الأوامر ليست هي نفسها أوامر بروتوكول نقل الملفات (FTP) المحددة في بروتوكول نقل الملفات (FTP).
عادةً ما يعالج كل أمر من أوامر بروتوكول نقل الملفات (FTP) مشكلة واحدة بسيطة فقط. قد يستخدم أمر FTP واحد في عميل FTP الخاص بنظام ويندوز عدة أوامر من بروتوكول نقل الملفات.
يُشبه برنامج DriveHQ CommandFTP برنامج عميل FTP الخاص بنظام ويندوز، حيث يدعم أوامر وصيغة مماثلة. بالإضافة إلى ذلك، يدعم البرنامج بعض أوامر FTP المتقدمة الخاصة بـ DriveHQ، مثل أوامر نسخ المجلدات ونقلها وتحميلها وتنزيلها وحذفها.
6.1 أوامر عميل FTP لنظام ويندوز
يدعم برنامج عميل FTP الخاص بنظام التشغيل Windows (ftp.exe) أوامر FTP التالية:
| أوامر بروتوكول نقل الملفات (FTP) |
وصف |
| ! |
يُبدّل هذا الأمر بين نظام التشغيل المحلي وخادم FTP. عند تسجيل الدخول إلى خادم FTP، يتم استخدام خادم FTP افتراضيًا. إذا كنت ترغب في تشغيل أمر محليًا، يمكنك عادةً استخدام !CMD_NAME, e.g. !dir, !mkdir، إلخ. |
| ? |
يعرض معلومات المساعدة. |
| append |
أضف إلى ملف. |
| ascii |
اضبط وضع نقل ASCII. |
| bell |
قم بتشغيل "إصدار صوت تنبيه عند اكتمال الأمر". |
| binary |
اضبط وضع النقل الثنائي. |
| bye |
قم بفصل جلسة FTP واخرج. |
| cd |
تغيير الدليل. |
| close |
قم بإنهاء جلسة بروتوكول نقل الملفات (FTP). |
| delete |
يحذف ملفاً. |
| debug |
قم بتشغيل أو إيقاف وضع تصحيح الأخطاء. |
| dir |
يعرض الملفات والمجلدات الفرعية في دليل.
|
| disconnect |
قم بفصل جلسة FTP. |
| get |
احصل على الملف من خادم FTP البعيد. |
| glob |
قم بتفعيل أو تعطيل خاصية مطابقة الملفات. عند تعطيلها، يتم استخدام الأحرف البديلة في أسماء الملفات (في يضع و يحصل تُؤخذ الأوامر حرفياً. |
| hash |
قم بتبديل طباعة "#" لكل مخزن مؤقت يتم نقله. |
| help |
اعرض معلومات المساعدة؛ عادةً ما يتم استخدام الأمر help COMMAND_NAME. |
| lcd |
اعرض دليل العمل المحلي الحالي إذا تم كتابته بمفرده؛ وإلا، فقم بتغيير دليل العمل المحلي. |
| literal |
إرسال أمر عشوائي إلى خادم FTP المتصل مع توقع استجابة من سطر واحد. |
| ls |
قم بعرض قائمة الملفات الموجودة في مجلد FTP. |
| mdelete |
حذف ملفات متعددة على خادم FTP. |
| mdir |
يعرض الملفات/المجلدات الفرعية لعدة أدلة FTP. |
| mget |
قم بتنزيل ملفات متعددة من خادم FTP إلى مجلد العمل المحلي الخاص بك. |
| mkdir |
أنشئ مجلدًا جديدًا. |
| mls |
اعرض محتويات عدة مجلدات FTP. |
| mput |
قم بتحميل عدة ملفات محلية إلى خادم FTP. |
| open |
الاتصال بخادم FTP. |
| prompt |
يُمكّن أو يُعطّل التوجيه التفاعلي في أوامر متعددة. |
| put |
قم بتحميل ملف واحد إلى خادم FTP. |
| pwd |
اطبع دليل العمل على خادم FTP. |
| quit |
قم بفصل الاتصال بخادم FTP واخرج. |
| quote |
نفس الأمر الحرفي (إرسال أمر ftp عشوائي). |
| recv |
تنزيل / استلام ملف من خادم FTP. |
| remotehelp |
احصل على المساعدة من الخادم البعيد. |
| rename |
إعادة تسمية ملف على خادم FTP. |
| rmdir |
قم بإزالة مجلد على خادم FTP. |
| send |
أرسل ملفًا واحدًا. |
| status |
يعرض حالة الخيارات الحالية. |
| trace |
قم بتفعيل/إيقاف تتبع الحزم. |
| Type |
حدد نوع نقل الملف. |
| user |
إرسال معلومات المستخدم الجديد (اسم المستخدم). |
| verbose |
قم بتفعيل أو تعطيل وضع الإسهاب. |
6.2 أوامر FTP المتقدمة في DriveHQ
يدعم برنامج DriveHQ CommandFTP بعض أوامر FTP الأكثر تقدماً:
| أوامر بروتوكول نقل الملفات (FTP) |
وصف |
| download |
قم بتنزيل مجلد أو ملف.
بناء الجملة: Download [FTP-FILEorFOLDER-PATH] [LOCAL-FILEorFOLDER-PATH]
|
| upload |
قم بتحميل مجلد أو ملف.
بناء الجملة: Upload [LOCAL-FILEorFOLDER-PATH] [FTP-FILEorFOLDER-PATH]
|
| mirror |
قم بنسخ مجلد محلي ومجلد FTP.
بناء الجملة: MIRROR [LOCAL-FOLDER-PATH] [FTP-FOLDER-PATH]
|
| deleteoldfiles |
في المجلد المحدد، احذف الملفات التي يزيد عمرها عن x يومًا.
بناء الجملة: deleteoldfiles [FTP-PATH] /xo:[time]
|