بَش و عشق

Bash & Love

همیشه وقتی با کامپیوتر کار می کردم انجام دادن بعضی کارهای تکراری واقعا عذابم میداد.

این که بخوام هر روز برم سایت BlacklistAlert.org و آی پی سرورهای مشتری ها رو تک تک وارد کنم و ببینم آیا توی لیست سیاه هستند یا نه و بعد اگر در لیست سیاه بودند بخوام توی سرور بگردم دنبال اینکه چه کسی ایمیل اسپم ارسال کرده و باعث شده آی پی سرور اسپم شناخته بشود.

یا اینکه بخوام هر هفته یک گزارش از مقدار ترافیک سرور و وضعیت اتک هایی که سرور داشته برای مالک ارسال کنم.

بخوام روزانه و هفتگی از سرورهایی که مسئولیتشون به عهدم هست یک بک آپ بگیرم و توی سیستم لوکالم و توی یک کلاد بریزم.(واقعا سخته مخصوصا با اینترنتی که سرعت دانلود و آپلودش یکم از سرعت لاکپشت بیشتره)

تا به لطف استاد گرانقدر و بزرگوارم مهندس حاجی غلامعلی ، با شل اسکریپت نویسی و Bash آشنا شدم.

قبل از آشنایی اسم اسکریپت نویسی زیاد به گوشم خورده بود و حقیقتا از کسایی شنیده بودم که زیاد رابطه خوبی باهاشون نداشتم، درنتیجه باوجود اینکه آشنایی نداشتم خوشم نمیومد. 🙂

مسخرست!! اینکه با چیزی آشنایی نداری و ازش بدت میاد( در مورد این مشکل کمی اینجا توضیح دادم: چرا بدت میاد؟)

از زمانی که دوره Bash رو هم پیش مهندس حاجی غلامعلی گذروندم، از شر خیلی از کارهای تکراری راحت شدم.

اولین کاری که بعد از یادگرفتن کردم یه اسکریپت نوشتم که یک لیست IP بهش میدادم و یک آدرس ایمیل

کافیه این اسکریپت رو بذارم توی فایل Cron سرورم که راس ساعتی که میخواستم اجرا بشه و برام یک لیست از سرورهایی که اسپم شده اند رو ایمیل کنه

بعدا این اسکریپت رو Open source کردم و قابلیت ارسال گزارش علاوه بر ایمیل به تلگرام رو هم اضافه کردم.

سورس کد این اسکریپیت اینجاست: Bash DNSL

دومین کاری که کردم نوشتن یک اسکریپت برای گرفتن بک آپ از فایل ها و دیتابیس های توی وب سرورها بود.

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

این اسکریپت یک بک آپ از دیتابیس ها بصورت روزانه تهیه می کنه و یک بک آپ از فایلها بصورت هفتگی(بخاطر حجم بالای فایل ها) و بعد از تهیه بک آپ یک نسخه رو هم توی سیستم کلاد از طریق FTP آپلود می کنه.

عشق من به شل اسکریپت نویسی و بیشتر به Bash بخاطر این هست که از انجام کارهای تکراری به شدت بیذارم و Shell scriptiong کمکم کرده که از شر کارهایی تکراری و روزمره راحت بشم.

حالا چرا Bash چرا شل های دیگه رو انتخاب نکردم.

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

در کل عاشق اسکریپت نویسی هستم و پیشنهاد می کنم اگر میخواید کارهای تکراری توی کامپیوتر رو انجام ندید اسکریپت نویسی رو یاد بگیرید.

کسایی که ویندوز دارند هم میتونن Powershell رو یاد بگیرند.

اگر شما هم تجربه ای از استفاده از شل لینوکس دارید توی کامنت ها بنویسید تا بقیه هم بتونن از تجربه شما استفاده کنند.

چرا بدت میاد؟

شاید برای شما هم اتفاق افتاده باشه که از یه کاری، هنری، ورزشی و حتی علمی خوشتون نیاد و

حتی وقتی توی مهمونی یا جلسه ای صحبت ازش می شد خوشتون نمیومد راجع بهش حرف بزنید.

این مشکل رو من هم داشتم و هنوز هم احساس می کنم دارم.

اکثر دوستانی که دارم با برنامه نویسی این مشکل رو دارند.

وقتی باهاشون صحبت میکنم میگن توی دانشگاه ما C++ داشتیم یا تو دبیرستان پاسکال داشتیم.

خیلی درس مزخرفیه برنامه نویسی

من اصلا متوجه نمیشم و بدم میاد از برنامه نویسی.

نگران نباشید، چیزی نیست

من و شما وقتی فکر کنیم انجام کاری برای ما سخت هست، بصورت ناخودآگاه از اون کار بدمون میاد.

چرا بدت میاد؟

من توی دبیرستان و حتی دوره راهنمایی از ریاضی بدم میومد ولی برعکس توی دوران ابتدایی خیلی خوشم میومد.

دوره راهنمایی معلم ریاضی بیشتر سرکلاس حرفهای سیاسی میزد و بعد که شروع به درس دادن می کرد من هنوز ذهنم توی ریاضیات غرق بود.

درنتیجه اصلا خوب یاد نمیگرفتم، به حدی حرفهاش روی من تاثیر داشت که حتی روزهایی که مدرسه نمی رفتم و شب ها هم به حرفهای اون فکر می کردم.

توی دانشگاه استادی ریاضی به قدری انسان با شخصیت و خوش برخوردی بود که از صمیم قلب دوستش داشتم و دارم و انقدر خوب درس میداد که فهمیدم چقدر ریاضی رو دوست داشتم.

این مشکل رو توی موارد دیگه هم داشتم

یه زمانی از PHP ، پایتون ، جاوا ،‌جاوا اسکریپت ، CSS ، Bootstrap و حتی از عزیز دلم JQuery هم بدم میومد.

ولی همش بخاطر ترس از این هست که ممکنه نتونیم یاد بگیریم

یا حتی بد بهمون یاد داده باشند.

از وقتی این موضوع رو فهمیدم دیدم نسبت به چیزهایی که ازشون بدم میاد بهتر شده

وقتی احساس میکنم از یه موضوع بدم میاد توی اولین زمان شروع میکنم مقاله های آموزشی اون موضوع رو خوندن.

این موضوع رو صرفا جهت این نوشتم که شاید شما هم جزو کسانی باشید که از بعضی چیزها مخصوصا برنامه نویسی بدتون میاد و ممکنه این مطلب براتون مفید باشه.