نوشتن اسکریپت برای مدیریت داده ها
نوشتن اسکریپت برای مدیریت داده ها
در این جلسه با نوشتن چند اسکریپت در شل با برنامه نویسی شل آشنا خواهیم شد
و از این امکان برای مدیریت داده ها و همچنین مدیریت سرورها استفاده خواهیم کرد.
مثال: برنامه ای بنویسید که یک IP بگیرد و کامپیوتر مربوطه را کنترل کند و اگر سیستم down بود به Admin یک ایمیل ارسال کند.
نکته: چطور می شود فهمید که یک کامپیوتر up است یا down؟
فرمان ping را اجرا می کنیم.
ping 192.168.214.145
ping با استفاده از پروتکلICMP ،۵۶ حرف که عبارت است از حروف الفبا به اضافه Special Character می فرستد
و اگر دوباره برایش پس فرستاد می فهمیم که up است.
ping بیشتر برای رفع اشکال استفاده می شود.
اگر ما در این پروژه ping کنیم مدام در حال پرسیدن و جواب گرفتن است و اگر ۶ ماه بعد هم بیاییم باز هم می بینیم که همین کار را دارد انجام می دهد.
حال صفحه راهنمای ping را بخوانید و بگویید چه کار کنیم که 1 بار بیشتر ping نکند.
پس از آپشن c1- استفاده می کنیم که یک بار بیشتر نفرستد.
به طور کلی هر نرم افزاری تعدادی ورودی می خواهد و حداقل دو تا خروجی دارد:
1) خروجی استاندارد
۲) خروجی خطا
نرم افزاری که خروجی اش همیشه یک چیز درست و مشخصی است همیشه به Standard Output می فرستد
و اعتراض و پیغام های خطایش را به خروجی خطا می فرستد.
نکته: در اجرای برخی دستورات از علامت 1&<2 استفاده می شود، یعنی ۲ جایی برود که 1 می رود.
نکته: 1>dev/null/ یعنی ما نمی خواهیم خروجی اجرای این برنامه را ببینیم، خروجی دور ریخته شود.
نکته: 2>dev/null/ یعنی خروجی خطا را نمی خواهیم ببینیم، دور ریخته شود.
نکته: در تمامی سیستم عامل ها هر فرمانی که اجرا شود احتمالا یک خروجی داشته و یک کد نیز بر می گرداند.
اگر فرمان به خوبی تمام شود کدش صفر است و هر فرمانی اجرا نشود و Error دهد و نتیجه ای که خواستیم ندهد، غیرصفر است.
فرمان دیگری که داریم و برای ادامه حل این مثال نیاز داریم بدانیم این است که باید بفهمیم وقتی ping کردیم،
چطور بفهمیم که ping با موفقیت انجام شده و سیستم up است؟
فرمانی که در اینجا مطرح می شود فرمانی است که نتیجه نهایی فرمان قبلی که اجرا شده را به ما می دهد که اگر صفر باشد،
با موفقیت انجام شده در غیر این صورت اگر هر عددی غیر از صفر باشد به معنی عدم موفقیت فرمان قبلی می باشد.
مقدار تابع date را می گیرد ‘x=’date یکبار ping می کند.
اگر ping انجام شد و یا به هر دلیلی انجام نشد،
از طریق ساختار شرطی if چک می کنیم که در زبان های برنامه نویسی برای شرط بود و شرطی را بیان می کرد:
اگر در دو طرف ip یک حرف نگذاریم با یک Enter می شود شکست یعنی اگر Enter بزنیم و بخواهیم خالی رد کنیم،
قبول می کند و Error نمی دهد چون Enter را هم به عنوان ورودی می گیرد و فکر می کند، خالی نیست.
این باز هم درست کار نمی کند.
چرا؟
if مثل کفه ترازوهای قدیمی است که اگر یک طرف یک وزنه یک کیلویی باشد
و آن طرف هم جنس، هر دو طرف مثلا یک وزنه خیلی کوچک قرار می دهند تا مساوی شوند.
ما هم در if همین کار را می کنیم و هر دو طرف if یک حرف مثلا x قرار می دهیم و حالا if ما مساوی می شود
و اگر Enter بزنیم هر دو طرف if ما مساوی می شود و مثل این می ماند که خالی رد کنیم.
اکثر شل اسکریپت ها به این صورت نوشته شده اند.
جهت مشاهده دوره های آموزشی بر روی این لینک کلیک نمایید.
جدیدترین اخبار مجموعه فراز نتورک را در این صفحه اجتماعی دنبال کنید.
نویسنده: موسی رشوند
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.