samedi 25 février 2012

قذيفة النصي لتحميل ملف إلى الدليل الفرعي نفسه على الملقم البعيد

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

لذا ، لقد أخذت على نفسي أن لكتابة السيناريو قذيفة لأتمتة هذا بالنسبة لي ، وذلك باستخدام الدائمة لنسخ ملف آمن. (ملاحظة هامة الجانبية : FTP غير آمن فظيعة ، استخدم WinSCP instead)

كانت المشكلة الرئيسية لحل هذا ورد بلدي تثبيت على الجهاز التطوير بلدي لديه الدليل قاعدة مختلفة من التثبيت على خدمة بلدي. على الجهاز تطوري انها / فار / على شبكة الاتصالات العالمية ، وعلى خدمة بلدي هو شيء أشبه / فار / على شبكة الاتصالات العالمية / howtogeek / مستندات /. قررت أن تتحرك فقط تلك المتغيرات في بداية البرنامج النصي ، مثل هذا :

SSHSERVER=thegeek@hostname.com
RDIR=/var/www/howtogeek/docs
LDIR = ' / فار / على شبكة الاتصالات العالمية"

علما أن الدليل المحلي (LDIR) في البرنامج النصي لديه قبل كل / في المسار. هذا هو لأننا ذاهبون لتمرير هذا الأمر في وقت لاحق من الحوار الاقتصادي الاستراتيجي النصي ، لذلك علينا أن تهرب من تلك القيم. أنا متأكد من أن هناك طريقة أخرى للتغلب على هذه ، ولكن أنا على علم بذلك.

المقبل ، أنشأت تسجيلات الدخول سه الآلي. للقيام بذلك ، تحتاج إلى تشغيل أول أداة كجن سه مثل ذلك :

سه كجن - T - RSA

فأنت بحاجة إلى نسخ ملف ~ / ديك مفتاح سري / id_rsa.pub إلى ~ / ديك مفتاح سري / authorized_keys الملف على الملقم البعيد. إذا تم إنشاؤه بالفعل سه الدليل ~ / على الملقم البعيد (قد ترغب في الاختيار) ، ثم يمكنك تشغيل هذا الأمر لنسخ مفاتيح أكثر :

القط ~ / ديك مفتاح سري / id_rsa.pub | سه المستخدم @ المضيف 'القط>> ديك مفتاح سري / authorized_keys'

الآن حصلنا على تسجيلات سه الآلي ، مما سيمكن استخدام الأداة المساعدة الدائمة بدون كلمة مرور. الآن دعونا نلقي نظرة على الأمر الدائمة سنستخدم في البرنامج النصي :

اللجنة الدائمة $ 1 $ SSHSERVER : $ RDIR `PWD | الحوار الاقتصادي الاستراتيجي" ق / $ {LDIR}//"`/` صدى 1 دولار | SED 'ق /.* ///'`

مبلغ 1 هي المعلمة عليك تمرير إلى البرنامج النصي للملف الذي تحاول تحميل. $ $ RDIR SSHSERVER ومتغيرات سنقوم التي حددت في بداية البرنامج النصي لتعيين المستخدم @ المضيف والمسار السابق البعيد.

كتلة الأولى التي تبدأ مع PWD | SED يأخذ مسار الدليل الحالي وشرائط قبالة الجزء السابق من هذا المسار الذي لا يتطابق مع الملقم البعيد ، لكنه يترك بقية المسار. على سبيل المثال ، إذا كنت في / فار / على شبكة الاتصالات العالمية / الفسفور الابيض بين المحتوى / عندما قمت بتشغيل الأمر ، كتلة الحزب الاشتراكي الموحد وتجريدها من فار / / على شبكة الاتصالات العالمية على أساس متغير LDIR لدينا ، ولكن ترك جزء / الفسفور الابيض بين المحتوى / منه .

الكتلة الثانية يجعل مجرد التأكد من تجريدها من المسار بالكامل السابقة قبالة ملف تمريرها إلى البرنامج النصي فقط حتى تحصل على اسم الملف.

على سبيل المثال ، إذا كنت يدعى up.sh السيناريو وتجلى ذلك من فار الخاص المحلية / / على شبكة الاتصالات العالمية / الفسفور الابيض محتوى / الإضافات / الدليل على ملف :

up.sh myplugin.php

كان هذا التوسع من قبل قذيفة على النحو التالي :

اللجنة الدائمة myplugin.php thegeek@hostname.com : / فار / على شبكة الاتصالات العالمية / howtogeek / مستندات / الفسفور الابيض محتوى / الإضافات / myplugin.php

بدلا من محاولة إنشاء ملف نصي الخاصة وعلى أساس هذه المادة ، لقد قدمت لي لانها لكم بتحميل. بهذه الطريقة لن يكون هناك أي مشاكل مع أحرف خاصة لا تعمل... ونعم ، لقد استخدمت النصي لتحميل نفسها =)

تحميل المهوس - uploader.sh

وضعت للتو في مكان ما في المسار الخاص بك ، وتسميته ما شئت. أنا سميت الألغام إلى "حتى" فقط ، لذلك استطيع ان اكتب فقط "filename.txt" الى تحميلها. نتذكر أيضا لفتحها وتغيير المتغيرات في بداية البرنامج النصي لمطابقة البيئة الخاصة بك.

ينبغي لهذا البرنامج سيعمل على أي شيء مع قذيفة لا شىء * والمنفعة الدائمة. أنا باستخدام أوبونتو ، ولكن ينبغي العمل على سولاريس ، OS X ، أو حتى ويندوز مع Cygwin مثبتة.

Aucun commentaire:

Enregistrer un commentaire