برمجة بروتوكول نقل الملفات (FTP) باستخدام برنامج DriveHQ CommandFTP

برمجة FTP/SFTP باستخدام DriveHQ CommandFTP


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 مباشرةً، يمكنك جدولة نقل الملفات في "مجدول المهام" في نظام ويندوز. يمكنك جدولة المهمة لتشغيلها يوميًا أو أسبوعيًا أو شهريًا. في الإعدادات المتقدمة، يمكنك أيضًا ضبط المهمة لتشغيلها كل بضع ساعات أو دقائق. كما يمكنك تحديد وقت بدء المهمة. لتشغيل "مجدول المهام"، اكتب "مجدول المهام" في مربع البحث، كما هو موضح في لقطة الشاشة أدناه:

Launch Windows Task Scheduler

انقر على "جدولة المهام"، وسيتم تشغيل "جدولة مهام ويندوز".

Click create basic task in Windows Task Scheduler

لإنشاء مهمة، انقر فوق "إنشاء مهمة أساسية".

Create basic scheduled task

أدخل اسم المهمة ووصفها، ثم انقر فوق التالي.

Select task trigger / schedule

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

Scheduled Task - Action - select a program

في صفحة الإجراءات، حدد "بدء برنامج"، ثم انقر فوق التالي.

Scheduled Task - Action - Select DriveHQ CommandFTP

استعرض الملفات لاختيار برنامج DriveHQ CommandFTP (cmdftp.exe). أضف معلمات سطر الأوامر في مربع نص "إضافة وسيطات". يُعدّ خيار "بدء التشغيل في" اختياريًا، ويمكنك تعيينه إلى نفس مجلد ملف EXE. انقر على "التالي" لإنهاء إنشاء المهمة.

للوصول إلى الإعدادات المتقدمة، انقر على "مكتبة جدولة المهام"، حيث ستظهر لك قائمة بالمهام المجدولة. انقر نقراً مزدوجاً على مهمة "تحميل الطلبات"، لتتمكن من تعديل إعدادات المهمة.

Scheduled Task - Advanced Settings - Edit Task Properties

ملاحظة: بشكل افتراضي، لن يتم تشغيل المهمة إلا عند تسجيل دخول المستخدم. يمكنك تغيير الإعداد هنا لتشغيل المهمة حتى في حال عدم تسجيل دخول المستخدم.

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]