سؤال

كثيراً ما أتعامل مع خادم ، والتبديل إلى دليل معين وتشغيل SVN-update

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

هل هذه مهمة لـ Capistrano أم هل يمكن لسيناريو باش بسيط القيام بالمهمة؟

هل كانت مفيدة؟

المحلول

يبدو وكأنه وظيفة كرون. نفذ - اعدم crontab, وأضف إدخالًا مثل ذلك:

#min hour date month day command
 0   *    *    *     *   ssh user@host '(cd path/to/working/copy; svn update)' 

قد تحتاج إلى الإعداد مصادقة SSH بدون كلمة مرور مع SSH-Agent بحيث لن يطالب.

تحرير (لكل تعليقات أدناه):

على افتراض أن لديك امتيازات كافية للقيام بذلك ، قم بالتشغيل

ssh user@host crontab -e

ثم أضف إدخالًا مثل ذلك:

#min hour date month day command
 0   *    *    *     *   (cd path/to/working/copy; svn update)

يمكنك تجاهل الجزء أعلاه التحرير ، ما لم يسمح لك الخادم الخاص بك باستخدام CRON.

نصائح أخرى

ربما يجب أن تسأل نفسك لماذا تقوم بهذا الإجراء؟

هل يمكن أن يحل خادم البناء مثل Cruisecontrol أو Hudson الحالة الأكثر عمومية (لمعرفة متى تم تنفيذ التزام SVN)؟

إذا كنت بحاجة إلى مراقبة على خادم SVN معين ، وكان لديك وصول إلى الإدارة إليه ، يمكنك تمكين خطاف ما بعد الالتزام للخادم ، على سبيل المثال لإرسال بريد إلكتروني لك على كل التزام (أو فقط في بعض أنواع الالتزامات المحددة) .

من شأنه أن يساعد ، إذا تمكنت من توضيح مصارعة مستخدميك.

سيفعل البرنامج النصي البسيط Bash ، إضافة الأمر SVN Update إلى ملف /etc /profile.

نرى هنا لتسجيل الدخول باش معالجة السيناريو.

إذا كنت ترغب في تشغيله من مربع مختلف (أي عدم تسجيل الدخول) ، فقط تذكر أن SSH لن تخرج إذا كانت هناك عملية تشغيل ، لذلك قد ترغب في تشغيل التحديث في الخلفية ، مع إعادة توجيه الجميع إلى /dev / لا شيء.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top