اطلاعیه

بستن
هنوز اطلاعیه ای در دست نیست.

pssh - اجرای دستورات روی چندین سرور لینوکسی توسط یک ترمینال

بستن
X
 
  • فیلتر کردن
  • زمان
  • نمایش
Clear All
پست های جدید

    pssh - اجرای دستورات روی چندین سرور لینوکسی توسط یک ترمینال

    بدون هیچ شکی OpenSSH یکی از پراستفاده ترین و قدرتمند ترین ابزارهای موجود در لینوکس میباشد که به شما این امکان را میدهد که ارتباط امنی با سیستم های لینوکسی ریموت و از طریق تنها یک ترمینال داشته باشید همچنین به شما اجازه میدهد تا فایل ها را به صورت امن به سیستم های ریموت انتقال دهید.
    نحوه اجرای دستورات در چندین سرور تنها با استفاده از یک ترمینال در لینوکس





    اما بزرگترین عیب OpenSSH این است که شما نمیتوانید چندین دستور را روی چندین هاست و در یک لحظه اجرا کنید و در حقیقت Openssh برای انجام چنین تسک هایی طراحی نشده است. اینجاست که ابزاری همچون Parallel SSH یا PSSH به کار می آیند که اپلیکیشنی براساس پایتون میباشد و به شما این امکان را میدهد که دستورات را روی چندین هاست به صورت موازی و در یک زمان یکسان اجرا کنید.


    ابزار PSSH شامل openssh و ابزارهای مرتبط مانند زیر میباشد :

    pssh : برنامه ای برای اجرا کردن ssh روی چندین هاست ریموت
    pscp : برنامه ای برای کپی کردن فایل ها به تعدادی از هاست ها
    prsync : برنامه ای برای کپی کردن فایل ها به چندین هاست به موازات هم
    pnuke : کیل (kill) کردن پروسس ها روی چندین هاست ریموت به موازات هم
    pslurp : کپی کردن فایل ها از چندین هاست ریموت به یک هاست اینترنال به موازات هم

    این ابزار برای ادمین های سیستم که با مجموعه های بزرگی از NOD ها روی شبکه کار میکنند خوب است.



    همچنین توصیه میشود مطالعه کنید :

    دستور DSH برای اجرا کرد دستورات لینوکسی در چندین ماشین

    نصب و راه اندازی Puppet در لینوکس برای اتوماتیک کردن تسک های مدیریتی IT

    نحوه نصب و راه اندازی Ansible در لینوکس - بخش اول



    نصب PSSH یا Parallel SSH روی Linux :

    در این پست ما آخرین ورژن pssh (ورژن 2.3.1) را روی توزیع های فدورا همانند centos, redhat و همچنین دبیان همانند ubuntu, mint و با استفاده از دستور pip نصب خواهیم کرد.

    دستور pip برنامه ای کوچکی (جایگزینی برای اسکریپت easy_install) برای نصب و مدیریت index پکیج های پایتون میباشد.


    روی توزیع های Fedora :

    روی توزیع های Centos/RHEL ابتدا باید پکیج pip یا phyton-pip را نصب کنیم تا بتوانیم برنامه pssh را نصب کنیم :
    کد:
    # yum install python-pip
    روی Fedora 21 به بالا شما به جای دستور yum از دستور dnf استفاده کنید همانند زیر :
    کد:
    # dnf install python-pip
    بعد از نصب ابزار pip میتوانید پکیج pssh را با کمک دستور pip نصب کنید :
    کد:
    # pip install pssh
    نمونه خروجی :
    کد:
    /usr/lib/python2.6/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
      InsecurePlatformWarning
    You are using pip version 7.1.0, however version 7.1.2 is available.
    You should consider upgrading via the 'pip install --upgrade pip' command.
    Collecting pssh
    /usr/lib/python2.6/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
      InsecurePlatformWarning
      Downloading pssh-2.3.1.tar.gz
    Installing collected packages: pssh
      Running setup.py install for pssh
    Successfully installed pssh-2.3.1


    روی توزیع های Debian :

    روی توزیع های دبیان با استفاده از دستور pip در عرض یک دقیقه پکیج pssh نصب میشود :
    کد:
    $ sudo apt-get install python-pip
    $ sudo pip install pssh

    نمونه خروجی :
    کد:
    Downloading/unpacking pssh
      Downloading pssh-2.3.1.tar.gz
      Running setup.py (path:/tmp/pip_build_root/pssh/setup.py) egg_info for package pssh
        
    Installing collected packages: pssh
      Running setup.py install for pssh
        changing mode of build/scripts-2.7/pssh from 644 to 755
        changing mode of build/scripts-2.7/pnuke from 644 to 755
        changing mode of build/scripts-2.7/prsync from 644 to 755
        changing mode of build/scripts-2.7/pslurp from 644 to 755
        changing mode of build/scripts-2.7/pscp from 644 to 755
        changing mode of build/scripts-2.7/pssh-askpass from 644 to 755
        
        changing mode of /usr/local/bin/pscp to 755
        changing mode of /usr/local/bin/pssh-askpass to 755
        changing mode of /usr/local/bin/pssh to 755
        changing mode of /usr/local/bin/prsync to 755
        changing mode of /usr/local/bin/pnuke to 755
        changing mode of /usr/local/bin/pslurp to 755
    Successfully installed pssh
    Cleaning up...
    همانطور که در خروجی بالا میبینید آخرین ورژن pssh از قبل روی سیستم نصب میباشد.



    چگونه از PSSH استفاده کنیم؟

    زمانی که از pssh استفاده میکنیم نیاز داریم که یک host file شامل ip address هاست ها به همراه شماره پورت مربوطه برای اتصال به سیستم های ریموت با استفاده از ssh بسازیم .

    خط ها در فایل host به شکل زیر هستند و میتواند شامل خط خالی و یا خط های کامنت شده باشد :
    کد:
    192.168.0.10:22
    192.168.0.11:22


    اجرا کردن تنها یک دستور روی چندین سرور با استفاده از PSSH :

    شما میتوانید هر دستور مجزایی را روی چندین هاست لینوکسی متفاوت روی یک شبکه با استفاده از اجرای دستور pssh اجرا نمایید. آپشن های زیادی برای استفاده با دستور pssh وجود دارد که در زیر آنها را توضیح میدهیم.

    در این قسمت به چندین راه متفاوت برای اجرای دستورات روی تعداد زیادی از هاست ها با استفاده از pssh و با آپشن های متفاوت میپردازیم.
    • برای خواندن فایل host از آپشن -h host_file-name یا –hosts host_file_name استفاده میکنیم.
    • برای مشخص کردن یک username پیش فرض روی تمامی هاست هایی که یوزر خاصی تعریف نشده از -l username یا –user username استفاده میکنیم.
    • شما همچنین میتوانید standard output و standard error را همانطور که هر هاستی در حال تکمیل است نمایش دهید. با استفاده از آپشن -i یا -inline میتوانید این کار را انجام دهید.
    • اگر شما بخواهید که بعد از گذشت مدت زمان داده شده به ثانیه connection شما time oute شود باید از آپشن -t number_of_seconds استفاده کنید.
    • برای ذخیره standard output در یک دایرکتوری مورد نظر شما میتوانید از آپشن -o /directory/path استفاده کنید.
    • برای درخواست یک پسورد و ارسال آن به ssh از آپشن -A استفاده میشود.


    اکنون چندین مثال از استفاده دستور pssh را بررسی میکنیم :

    1 - برای اجرای دستور echo “Hello TecMint” روی ترمینال چندین هاست لینوکسی با استفاده از یوزر root از دستور زیر استفاده کنید.

    نکته : فراموش نکنید همه هاست ها در فایل host موجود باشند.
    کد:
    # pssh -h pssh-hosts -l root -A echo "Hello TecMint"
    
    Warning: do not enter your password if anyone else has superuser
    privileges or access to your account.
    Password:
    [1] 15:54:55 [SUCCESS] 192.168.0.10:22
    [2] 15:54:56 [SUCCESS] 192.168.0.11:22

    نکته : در دستور بالا “pssh-hosts” فایلی با لیست ip addrss های سرورهای ریموت لینوکسی به همراه شماره پورت ssh میباشد.


    2 - برای پیدا کردن فضای دیسک مورد استفاده روی سرورهای لینوکسی روی شبکه تان شما میتوانید یک دستور مجزا همانند زیر اجرا کنید :
    کد:
    # pssh -h pssh-hosts -l root -A -i "df -hT"
    
    Warning: do not enter your password if anyone else has superuser
    privileges or access to your account.
    Password:
    [1] 16:04:18 [SUCCESS] 192.168.0.10:22
    Filesystem     Type   Size  Used Avail Use% Mounted on
    /dev/sda3      ext4    38G  4.3G   32G  12% /
    tmpfs          tmpfs  499M     0  499M   0% /dev/shm
    /dev/sda1      ext4   190M   25M  156M  14% /boot
    
    [2] 16:04:18 [SUCCESS] 192.168.0.11:22
    Filesystem              Type      Size  Used Avail Use% Mounted on
    /dev/mapper/centos-root xfs        30G  9.8G   20G  34% /
    devtmpfs                devtmpfs  488M     0  488M   0% /dev
    tmpfs                   tmpfs     497M  148K  497M   1% /dev/shm
    tmpfs                   tmpfs     497M  7.0M  490M   2% /run
    tmpfs                   tmpfs     497M     0  497M   0% /sys/fs/cgroup
    /dev/sda1               xfs       497M  166M  332M  34% /boot

    3 - اگر شما میخواهید uptime چندین سرور لینوکسی را در یک لحظه به دست بیاورید میتوانید دستور زیر را اجرا کنید :
    کد:
    # pssh -h pssh-hosts -l root -A -i "uptime"
    Warning: do not enter your password if anyone else has superuser
    privileges or access to your account.
    Password:
    [1] 16:09:03 [SUCCESS] 192.168.0.10:22
     16:09:01 up  1:00,  2 users,  load average: 0.07, 0.02, 0.00
    
    [2] 16:09:03 [SUCCESS] 192.168.0.11:22
     06:39:03 up  1:00,  2 users,  load average: 0.00, 0.06, 0.09
    برای بیشتر دانستن درباره دستور pssh همچنین پیدا کردن آپشن های دیگر این دستور و راه های بهتری برای استفاده از این دستور از صفحه راهنمای آن بازدید نمایید :
    کد:
    # pssh --help
    دستور pssh در لینوکس





    خلاصه : Parallel SSH یا PSSH ابزار خوبی برای استفاده ادمین سیستم میباشد که قرار است با سرورهای زیادی روی یک شبکه کار کند و دستوراتی روی آنها اجرا نماید. این دستور به ادمین اجازه میدهد تا به آسانی روی هاست های متفاوت یک شبکه دستوراتش را به صورت ریموت اجرا کند.

    امیدوارم این پست برای شما مفید باشد.

    با تشکر
    محمد هابیلی
    آخرین ویرایش توسط Habili; در تاریخ/ساعت 08-17-2021, 04:44 PM.

درباره انجمن منطقه لینوکسی ها

انجمن منطقه لینوکسی ها با هدف ارتقاء سطح علمی کاربران در سطح جهانی و همچنین کمک به بالا بردن سطح علمی عمومی در زمینه های تخصصی فوق پایه گذاری شده است. انجمن منطقه لینوکسی ها از طریق کارشناسان و متخصصان پاسخگوی سوالات گوناگون کاربران مبتدی یا پیشرفته میباشد تا حد امکان تلاش شده که محیطی متنوع و کاربر پسند و به دور از هرگونه حاشیه جهت فعالیت کاربران در این انجمن ایجاد شود. لذا ما به صورت مستمر برای پیشرفت کمی و کیفی محتوی و اطلاعات انجمنمان میکوشیم که این برای ما ارزشمند و حائز اهمیت است. کلیه حقوق،اطلاعات و مقالات در این انجمن متعلق به سایت منطقه لینوکسی ها میباشد، و هرگونه نسخه برداری بدون ذکر منبع مورد پیگرد قانونی خواهد شد.

شبکه های اجتماعی
در حال انجام ...
X