راهنما:راهنمای کار با لبز
این صفحه راهنمایی سریع برای کسانی است که میخواهند با لبز کار کنند.
اشتراک در لبز و کلید
ویرایش- این برنامهها را دانلود کنید: Putty pageant puttygen psftp
- در اینجا حساب کاربری با نام انگلیسی بسازید؛ و اگر نمیشود در اینجا درخواست دهید.
- با puttygen یک جفت کلید بسازید. کلید عمومی و کلید خصوصی. کلید خصوصی در جایی ذخیره کنید.
- لاگین کنید [۱] در بخش Token چیزی نمیخواهد بنویسید.
- به ترجیحات رفته در بخش OpenStack متن کلید عمومی (عمومی نه خصوصی! آبروریزی نکنیدها!) کپی کنید. برای باز کردن کلید عمومی تان میتوانید از notepad استفاده کنید.
- برنامه pageant را باز کنید. این برنامه عکس یک کامپیوتر با کلاه را به سیستری (Systray آن پایین ویندوز سمت راست) اضافه میکند. رویش دابل کلیک کنید یک صفحه میآید. بزنید Add Key. فایل کلید خصوصی را انتخاب کرده رمز کلید را بزنید و صفحه را ببندید.
- putty را باز کرده هاست نیم را بزنید "login.tools.wmflabs.org" پورت ۲۲. چیز دیگری را دست نزنید (حال میکنید محتوای فارسی را درست ببینید در بخش Translation، در بخش Remote character set گزینه UTF-8 را انتخاب کنید.
- لاگین کنید.
شما در اینجا میتوانید کدهایتان را اجرا کنید ولی اگر اجرا کنید دمار از روزگارتان درمیآورند. برای همین فقط چیزهایی را اجرا کنید که یک بار نیاز به اجرا دارند پس چه کار باید کرد؟
اجرای ربات در لبز
ویرایش- بروید به این صفحه (در حالت لاگین کرده در wikitech) [۲]
- در آنجا بزنید tools. ست فیلتر را کلیک بفرمایید
- یا «ابرفرز»! بر دکمه "add new service group" کلیک کنید.
- نام رباتتان را بزنید یا هر اسم باحال دیگر مثلاً برای من dexbot است
حال بر میگردیم به Putty بزنید
become kooftebot (Esme Service group shoma)
خب حالا باید پای ویکی را نصب کنید. از آنجایی که رفته روی گیت باید اینطوری نسخه را نصب کنید:
git clone https://gerrit.wikimedia.org/r/pywikibot/core.git pywikipedia
cd pywikipedia
git submodule update --init
بروید به فولدر «پایویکی» و «یوزر کانفیگ» را بسازید
cd pywikipedia
python generate_user_files.py
برای آپدیت هم باید بزنید
git pull
برای راندن کدها روشهای مختلفی وجود دارد ولی بهتر از همه این است که از jsub استفاده کنید که این خیلی بهتر است برای کدهایی که همیشه میرانید یا یک بار میخواهید برانید ولی خیلی طولانی است. راهنمای مفصلی دارد در wikitech:Nova Resource:Tools/Help میتوانید بخوانید؛ و من الان حال ندارم توضیح بدم ولی مثلاً برای اجرای کد حذف تمام صفحههای ویکیپدیای فارسی باید اینطوری بکنید:
jsub -once -N deleteALL python /data/project/kooftebot/pywikipedia/pwb.py delete.py -start:! -family:wikipedia -lang:fa
و برای استفاده از حافظه موقت (ram) بیشتر دستور زیر (افزودن پارامتر -mem 1g) را میتوانید بنویسید و تا حجم ۸ گیگابایت رم میتوانید درخواست دهید البته توجه کنید در صورتی که درخواست رم بیشتر دهید اولویت اجرای کد شما پائینتر میرود و در نتیجه اگر سیستم بخواهد کدهایی را kill کند ابتدا کدهای متقاضی رم بیشتر را kill میکند و از سوی دیگر در صورتی که رم بیشتر تنظیم نشود اگر کد شما فقط اجازهٔ استفاده از ۷۵ مگ حافظهٔ موقت است و اگر بیشتر شد kill میشود.
jsub -once -N deleteALL -mem 1g python /data/project/kooftebot/pywikipedia/pwb.py delete.py -start:! -family:wikipedia -lang:fa
توجه کنید که در کدهای پایتون دیگر حق فراخوانی با نام فایل را ندارید یعنی این غلط:
f=codecs.open("kooft.txt","r","utf-8")
و صحیح این است:
f=codecs.open("/data/project/dexbot/pywikipedia-git/kooft.txt","r","utf-8")
انتقال فایل به لبز
ویرایشاگر نیاز دارید که فایلی را به سرویس گروپتان (مثلا برای من dexbot) انتقال دهید. چند راه دارید:
- روش ۱: با استفاده از WinScp:
- برای استفاده از winscp با حسابتان وارد winscp شوید (برای من ladsgroup).
- مانند شکل روبرو بر روی دکمه شماره ۱ کلیک کنید.
- آدرس tool را در شماره ۲ (در تصویر مقابل) بنویسید مثلاً برای من /data/project/dexbot
- با زدن دکمهٔ ۳ (add) آدرس به bookmarkها اضافه میشود.
- بعد از انتخاب آدرس و زدن دکمهٔ ok پنجرهای مربوط به اب��ارتان باز میشود! (تبریک شما الان در فولدر ابزارتان هستید)
- مانند گذشته فایلها را از روی سیستم به WinSCP یا برعکس میتوانید کپی کنید. برای اینکه در زمان اجرای کدها با مشکل مواجه نشوید چون مالک کدها حساب اصلی شماست نه tool شما! در نتیجه فایلهایی را که کپی در فولدر tool کپی کردید را انتخاب کنید و با کلیک سمت راست دکمهٔ properties را بزنید و عدد جلوی Ocatl را به ۲۷۷۷ تغییر دهید. از این به بعد دیگر مشکلی برای استفاده ندارید.
- نکته مهم:
در صورتی که آخرین مورد با خطا مواجه شد به روش زیر عمل کنید:
- یک فولدر در حساب tools خود به نام myfolder بسازید
- فایلها را از کامپیوتر در آن فولدر کپی کنید
- با پوتی دستورهای زیر را بزنید:
become YourTool
cd myfolder
cp *.* /data/project/YourTool/pywikipedia/
در دستورهای بالا YourTool نام حساب tool شماست که برای من Dexbot میباشد.
به راحتی میتوانید از فایلهای کپیشده بدون هیچ مشکلی استفاده کنید.
- روش ۲: کپی از یک مخزن عمومی:
- فایلتان را در یک جای عمومی بریزید مثلاً در زیرشاخه public_html در تول لبز.
- به حسابتان بروید و مشابه این دستورها را اجرا کنید:
become dexbot
cd pywikipedia
wget https://tools.wmflabs.org/amir/kooft.py
دستور wget فایل را دانلود میکند.
- روش ۳: کپی از یک فولدر موقت:
- فایلتان را در تول لبز در یک فولدر موقت مثلاً my_folder در حساب ابزار بریزید
- به حسابتان بروید و مشابه این دستورها را اجرا کنید:
become dexbot
cd my_folder
cp *.py /data/project/YourTool/pywikipedia/
دستور بالا همه محتویات فولدر به حساب pywikipedia رباتتان کپی میکند
- روش ۴: کپی از سیستم شخصی:
- با پوتی لاگین کنید.
- یک بار دیگر با پوتی لاگین کرده و به ابزارتان تبدیل شوید با دستور become
- بر نرمافزار psftp دابل کلیک کنید. دستورهای مشابه
open tools-login.wmflabs.org
lcd c:\pywikipedia_cc #l is abbreviation of "local"
cd pywikipedia #goes to pywikipedia folder in the remote system
put kooft.py #uploads kooft.py from c:\pywikipedia_cc to /home/ladsgroup/pywikipedia in the labs
get kooft.py #downloads koof.py from labs to your computer
حال به پوتی بروید. در آن پوتی بروید که هنوز به سرویس گروپتان تبدیل نشدهاید.
cd pywikipedia
cp kooft.py /data/project/dexbot/pywikipedia-git/kooft.py #copies /home/ladsgroup/pywikipedia/kooft.py to /data/project/dexbot/pywikipedia-git/kooft.py
الان همه چی آرام به نظر میرسد ولی در واقع آغاز مشکلات است. مشکل اینجاست که اکنون دارنده فایل kooft.py حساب کاربری است که ladsgroup میباشد و سرویس گروپ dexbot حق ویرایش کردن یا در مواردی خواندن فایل را نیز ندارد بنابرین شما حتی نمیتوانید آن کد را گاهی اجرا کنید پس چه باید کرد؟ دو راه دارد: ۱- هر دفعه که قصد تغییر فایل را دارید از طریق روش بالا کپی کنید ۲- با دستور زیر مجوز فایل را متعلق به سرویس گروپ بکنید که البته این دیگر جلوی کپی کردن فایلی به همان نام را از حساب شما یعنی ladsgroup میگیرد (و شما مجبورید فایل اولیه را پاک کنید تا فایل بعدی را جایگزینش کنید) این دستور را باید در پوتی اجرا کنید که به ابزارتان تبدیل شدهاید (یعنی دستور become dexbot را قبلش زدهاید)
cd pywikipedia-git
take kooft.py
کار با jsub
ویرایشبرای کنترل کردن و مشاهدهٔ فعالیتهای ربات که توسط jsub اجرا شدهاند میتوانید از دستورهای زیر استفاده کنید:
- ابتدا qstat را تایپ کنید به شما عنوان فعالیتهایی که ربات در حال انجام است را نشان میدهد که هر یک یک عدد دارند مثلاً ۱۲۳۴۵
- با نوشتن tail folan.out و tail folan.err که folan نامی است که در دستور فوق به شما ارائه میدهد، شما میتوانید فعالیتهای ربات را مشاهده کنید.
- با نوشتن qdel 12345 میتوانید فعالیت ۱۲۳۴۵ را حذف کنید یا kill کنید.
- برای اجرای ربات در «کرونتب» میتوانید از دستور cron استفاده کنید.
crontab
ویرایشبرای اجرای ربات با برنامه زمانبندی شده با نوشتن become YourTool باید به حساب tools خودتان بروید (برای من Dexbot) و در آنجا مانند crontab که در آموزش راهنما:اجرای ربات در تولسرور موجود است عمل کنید. پس اجرای crontab به جای حساب اصلی باید در حساب tools باشد.
بهبود امنیت
ویرایشبرای اینکه دیگر کاربران به پسورد ربات شما دسترسی نداشته باشند کد زیر را وارد کنید. با این روش به جز رباتتان هیچ کاربر دیگری نمیتواند محتوی passfile شما را مشاهده یا ویرایش کند.
become YourProject
cd pywikipedia
chmod 0600 passfile
خطای وبسرویس
ویرایشگاهی ابزارها خطای وبسرویس میدهند که باید کد زیر را اجرا کرد.
become YourProject
webservice start