PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : اجرای دستورات تکراری در چندین سرور



Sajad
October 5th, 2015, 13:06
سلام
حدود ۵۰۰ دستگاه هست که ما میتونیم بهشون ssh بزنیم و دستوراتی رو روش اجرا کنیم. (پورت و یوزر و پسورد فرض کنید همشون ثابت هستند)
الان میخوایم روی تموم دستگاه‌ها حدود ۲۰ دستور تکراری اجرا کنیم که برای همشون یکسان هست و نتیجه دستور هم برامون خیلی مهم نیست (البته اگر output داشته باشیم بهتره)
نرم‌افزاری موجود هست که اینکار را بتونه برامون انجام بده؟ سطح اینترنت چند راه‌حل پیدا کردم و با برنامه‌نویسی هم خودم میتونم انجام بدم. اما گفتم سوال کنم اگر از قبل موجود هست و دوستان کار کردند باهاش دیگه ما معطلش نشیم.
ممنون.

nginxweb
October 5th, 2015, 15:51
توضیحاتتون ناقص هستش و در مورد نوع دستورات و کد ها و هدفتون جزییاتی کافی نفرمودید

Sajad
October 5th, 2015, 15:56
هدف: ۵۰۰ دستگاه داریم که از طریق ssh/telnet میخواهیم بهشون وصل بشیم و توی هر کدوم ۲۰ دستور اجرا کنیم !

مثال به آیپی اول وصل بشه و این دستورات اجرا بشه:
cd /home
mv 1.txt 2.txt
.
.
.
تا دستور بیستم !

دستورات هیچ فیدبکی نخواهند داشت و ما فقط میخواهیم اجرا بشن. و این روال برای هر ۵۰۰ دستگاه تکرار بشه. دستورات برای همه دستگاه‌ها ثابت هست و مشخص شده از قبل.

yourhosting
October 5th, 2015, 15:58
سلام
شما دستوراتتون رو به صورت script bash تبدیل کنید به مثلا یک فایل s.sh بسازید و دستورات و ابتدا فایل #!/bin/sh قرار بدید و سپس دستورات رو وارد کنید . با اجرا اسکریپت در سرور دستورات اتوماتیک اجرا میشود.

- - - Updated - - -

اگر هم تعداد دستگاه ها زیاد هست میتونید به کمک php اسکریپتی بنویسید که اتوماتیک به سرور ها وصل بشه و کامند هاتون رو وارد کنه...

Sajad
October 5th, 2015, 15:59
درسته . این روش رو میتونم انجام بدم. سوال من این هست که برنامه آماده‌ای نیست که دیگه معطل نشیم؟ (هرچند برنامه php مورد نظر هم کمتر از نیم ساعت میشه نوشت)

nginxweb
October 5th, 2015, 16:06
درسته . این روش رو میتونم انجام بدم. سوال من این هست که برنامه آماده‌ای نیست که دیگه معطل نشیم؟ (هرچند برنامه php مورد نظر هم کمتر از نیم ساعت میشه نوشت)

درود

دوست گرامی در همان php نیز با کمک shell_exec میتوانید دستورات را اجرا کنید به شرطی که از سمت توابع سرور محدود نشده باشند و سپس بصورت cronjob در سرور اجرا نمایید

اگر هم php نخواستید کار کنید باید linux bash script بنویسید که مجموعه ای از دستورات را در حلقه قرار دهید که به ترتیب اجرا شوند و خروجی result برای شما ارسال شود

ghomeishi
October 5th, 2015, 16:21
https://saravananthirumuruganathan.wordpress.com/2010/04/14/autokey-linux-utility-for-text-substitution-hotkeys-and-desktop-automation/

allbert
October 6th, 2015, 10:49
سلام

توسط bash script هیم میتونید همچین برنامه ای بنویسید

موفق باشید

- - - Updated - - -

با عرض پوزش برای تاپ کردن موضوع

با توجه به درخواست این دوست عزیز باید عرض کنم کمی امروز به یادم اومد که همچین برنامه ای هست که با یک کلیک یک دستور رو در تمامی سرور های ادد شده اجرا کنه.
MobaXterm Personal Edition
موفق باشید

Sajad
October 6th, 2015, 19:31
برنامه خوبیه مخصوصا قسمت multiexec . اما اینکه من بخوام ۵۰۰ دیوایس رو ادد کنم و پسوردشو ذخیره کنم خودش چندین ساعت وقت لازم داره. مگر اینکه جایی از برنامه یوز و پسورد بشه تعریف کرد که دیفالت برای همش استفاده کنه. فکر کنم بهترین حالت همون باشه که برنامه بنویسم.

nimafire
October 6th, 2015, 20:07
سلام
حدود ۵۰۰ دستگاه هست که ما میتونیم بهشون ssh بزنیم و دستوراتی رو روش اجرا کنیم. (پورت و یوزر و پسورد فرض کنید همشون ثابت هستند)
الان میخوایم روی تموم دستگاه‌ها حدود ۲۰ دستور تکراری اجرا کنیم که برای همشون یکسان هست و نتیجه دستور هم برامون خیلی مهم نیست (البته اگر output داشته باشیم بهتره)
نرم‌افزاری موجود هست که اینکار را بتونه برامون انجام بده؟ سطح اینترنت چند راه‌حل پیدا کردم و با برنامه‌نویسی هم خودم میتونم انجام بدم. اما گفتم سوال کنم اگر از قبل موجود هست و دوستان کار کردند باهاش دیگه ما معطلش نشیم.
ممنون.
سلام
باید اسکریپت بنویسید و آن را در سرو رها اجرا کنید البته کار خطر ناکی است. بستگی به کامند ها دارد

Sajad
October 6th, 2015, 20:13
اهمیت دستورات اجرا شده زیاد نیست ! حتی اگر کامل انجام نشوند خیلی اتفاق بدی نمیفته و بعدا موردی انجام میشه.

nimafire
October 6th, 2015, 20:23
اهمیت دستورات اجرا شده زیاد نیست ! حتی اگر کامل انجام نشوند خیلی اتفاق بدی نمیفته و بعدا موردی انجام میشه.

اگر میتوانید موارد را برای من ارسال کنید تا بررسی کنم

Sajad
October 10th, 2015, 19:05
با توجه به اینکه به نظر میرسید برنامه‌ای واسه اینکار وجود نداره مجبور شدم از همون برنامه php واسه اینکار استفاده کنم.
دستورات ساده رو میذارم شاید یکی دیگه هم کارش بیاد. من خودم با php و اتصال به دیتابیس قضیه رو حل و فصل کردم و اطلاعات آیپی و یوزر و پسورد داخل دیتابیس وارد برنامه میشد.



<?php
ini_set('display_errors', 1);
set_time_limit(0);


$ip = "10.10.10.10";
$user = "user";
$pass = "pass";

$fp = fsockopen($ip, 23, $errno, $errstr, 30);
if (!$fp)
{
echo "$errstr ($errno)<br />\n";
die();
}
else
{
fwrite($fp, $user."\n"); usleep(555555);
fwrite($fp, $pass."\n"); usleep(555555);
fwrite($fp,"comands\n"); usleep(222222);
fwrite($fp,"comands\n"); usleep(222222);
fwrite($fp,"comands\n"); usleep(222222);
fwrite($fp,"comands\n"); usleep(222222);
fwrite($fp,"comands\n"); usleep(222222);
fclose($fp);
}
?>