آموزش takeone
Pay as You Take
Bash Scripting
معرفی دوره bash scripting
در این دوره در خصوص محتویات این دوره یعنی bash scripting توضیح داده می شود
ابزار SED در لینوکس به عنوان ابزار bash Scripting
یادگیری regular expression و بکارگیری آن در ابزار grep و همچنین ابزارهای text editor مثل SED و AWK از مهمترین ابزارهایی هستند که قبل از ورود به bash Scripting، ضروری هستند.
در این بخش با چند مثال ساده مهمترین کاربرد های ابزار SED را یاد می گیریم.
ابزار AWK در لینوکس – بخش اول – جداسازی فیلدها
یادگیری regular expression و بکارگیری آن در ابزار grep و همچنین ابزارهای text editor مثل SED و AWK از مهمترین ابزارهایی هستند که قبل از ورود به bash Scripting، ضروری هستند.
در این بخش با چند مثال ساده مهمترین کاربرد های ابزار AWK را یاد می گیریم. در این بخش فقط به چگونگی جدا سازی فیلدها در ابزار AWK می پردازیم
ابزار AWK در لینوکس – بخش دوم – پردازش فیلد
یادگیری regular expression و بکارگیری آن در ابزار grep و همچنین ابزارهای text editor مثل SED و AWK از مهمترین ابزارهایی هستند که قبل از ورود به bash Scripting، ضروری هستند.
در این بخش با چند مثال ساده مهمترین کاربرد های ابزار AWK را یاد می گیریم. در این بخش فقط به چگونگی پردازش فیلدها در ابزار AWK می پردازیم
کاربردهای دستور grep
وظیفه اصلی دستور grep پیدا کردن خطوطی است که pattern اصی داشته باشند و آن را از بین انبوه اطلاعات جدا می کند و به شما نشان می دهد. این دستور به همراه sed و awk تیم بسیار قدرتمندی را تشکیل می دهند.با grep خطوط خاصی را جدا می کنیم. با sed روی خط های جدا شده، کلماتی را جایگزین می کنیم و با awk، فیلدهای خاصی را از این خطوط خارج می کنیم.
در این بخش مثال های کاربردی از دستور grep را نشان خواهیم داد.
پیاده سازی انواع regular expression
در این بخش انواع regular expression، از دو نوع basic و advanced معرفی می شود که برای پیاده کردن راحت تر انواع pattern در فایل های متنی استفاده می شود. در این بخش پیاده سازی انواع regular expression با سه دستور grep، sed و awk نشان داده می شود. دو دستور grep و sed صرفا basic regular expression را پشتیبانی می کند اما دستور awk از extended regular expression نیز پشتیبانی می کند.
دستور find در bash scripting
دستور find در bash scripting بسبار کاربرد دارد. خصوصا اینکه بعد از اینکه فایل پیدا شد، روی آن پروسس ای انجام شود. مثلا پاک شود. کپی شود. جابجا شود. و غیره
جستجوی فایل بر اساس پارامترهای مختلف امکان پذیر است. از جمله نام، نوع، permission، بر اساس نام user و group، بر اساس تاریخ تغییر و دسترسی و همچنین بر اساس سایز می توانید فایل را جستجو کنید.
کاربرد دستورات xargs و exec در bash scripting
اینکه که بخواهیم خروجی دستوری را به عنوان ورودی به دستور دیگری بدهیم، در bash scripting بسیار پرکاربرد است. اما متاسفانه اکثر دستورات همچنین قابلیتی را ندارند. این قابلیت در دستور grep به خوبی دیده می شود. یعنی خروجی هر دستوری را می توانید به عنوان ورودی به دستور grep بدهید و انتظار داشته باشید که دستور grep خط های خاصی را به شما نشان دهد.
بیشتری کاریرد این مبحث در دستور find است که فایل هایی را پیدا می کند و حالا می خواهید روی فایل های پیدا شده، عملی مثل cat، remove، copy و غیره انجام دهید. بعنی می خواهید خروجی دستور find را به عنوان ورودی دستورات cat، cp و یا rm استفاده کنید. برای اینکه دو گزینه xargs و -exec وجود دارد که در این بخش به آن پرداخته میشود.
چگونگی redirect کردن ورودی، خروجی و خطا
در لینوکس وقتی نگوییم از چه ورودی بخوان، کیبورد را به عنوان ورودی انتخاب می کند که به آن STDIN گفته می شود. خروجی پیش فرض در لینوکس ، صفحه نمایش است که به آن STDOUT گفته می شود. به صروت پیش فرض، پیغام های خطا در صفحه نمایش نشان داده می شود که به آن STDERR گفته میشود.
در این بخش یاد می گیریم چکونه با علائم <، > و >> و همچنین file descriptor های 0 (STDIN)، 1(STDOUT) و 2 (STDERR) بتوانیم ورودی، خروجی و محل نمایش پیش فرض خطا را تغییر دهیم.
مثلا گاهی علاقه مند هستیم خروجی و خطا در فایل ذخیره شوند تا بعدا قابل پردازش باشند و یا اینکه اصلا نمایش داده نشوند و ذخیره نیز نشوند.
چندین دستور کاربردی در Bash Scripting
دستور head: چند خطا ابتدایی یک فایل و یا خروجی دستور دیگری را نشان می دهد
دستور tail: چند خطا انتهایی یک فایل و یا خروجی دستور دیگری را نشان می دهد. با این دستور می توان به صورت real-time خروجی فایل هایی مثل logfile را مشاهده نمود. با ترکیب دو دستور head و tail، می توانید چند خط میانی یک دستور را مشاهده کنید
دستور wc: تعداد خطوط و تعدا کلمات یک فایل نشان داده می شود
دستور sort: برای مرتب کردن محتویات فایل کاربر دارد
دستور cut: برای جدا کردن یک فیلد از خط های یک فایل استفاده می شود
دستور uniq: برای حذف خط های تکراری استفاده می شود
چگونگی استفاده از Variable در Bash Scripting
ابتدا چگونگی ایجاد Variable و خواندن آن را بررسی می کنیم.
سپس کاربرد Single Quotes و Double Quotes را در نگهداری مقادیر Variable را بررسی می کنیم و تفاوت آن دو را بررسی می کنیم.
خروجی اجرای دستورات را به عنوان مقادیر Variable مورد استفاده قرار می دهیم.
سپس به متغیرهای خاص می پردازیم که بسیار در Scripting پرکاربرد هستند
نهایتا Environment Variable ها را بررسی می کنیم.
ایجاد و پردازش آرایه در bash Scripting
در این بخش چگونگی ایجاد و پردازش آرایه را مورد بررسی قرار می دهیم.
استفاده از if statement در bash Scripting
در این بخش چگونگی بکارگیری if statement در bash scripting مورد بحث قرار می گیرد.
شرط های مرسوم مثل مقایسه string، مقایسه integer، وجود فایل و دایرکتوری، خالی نبودن فایل و استرینگ و از همه مهمتر موفق بودن و یا نبودن دستور قبلی پیاده سازی می شود
اجرای همزمان چندین دستور در Bash shell
در این بخش نشان داده می شود که چطور می توان اسکریپت های کوتاه را در یک خط و در محیط shell نوشت . حتی قادر هستیم if else statement های کوتاه با روش هایی که در این بخش توضیح داده می شود و بدون استفاده از دستور if ایجاد نماییم.
استفاده از دستور case در bash scripting
زمانی که از کاربر درخواست می کنیم ا در زمان اجرای اسکریپت ورودی را وارد نماید، با توجه به ورودی وارد شده ، ممکن است تصمیمات متفاوتی گرفته شود. در چنین مواردی استفاده از دستور case پیشنهاد می شود.
ایجاد حلقه loop با استفاده از دستور for در bash scripting
زمانی که از دستور for برای ایجاد حلقه loop ایجاد می کنیم، گزینه های بسیار متعددی پیش رو داریم.
در این بخش به سه روش بسیار پرکاربرد پرداخته می شود. شمارنده، آرایه و اجرای دستور
ایجاد حلقه loop با استفاده از دستور while در bash scripting
زمانی که از دستور while برای ایجاد حلقه loop ایجاد می کنیم، گزینه های بسیار متعددی پیش رو داریم.
در این بخش به دو روش بسیار پرکاربرد پرداخته می شود. شمارنده و خواندن خطوط یک فایل
در این بخش همچنین به دو دستور break و continue که برای کنترل loop استفاده می شود، می پردازیم. دستور break اجرای loop را متوقف می کند. دستور continue اجرای فعلی را ناتمام می گذارد و از ابتدا loop را اجرا می کند.
اسکریپتی جهت اطمینان از دسترس بودن آدرس های مهم
در این بخش اسکریپتی اجرا می کنیم که از دسترس بودن آدرس های مهم سازمان مطمئن شویم.
اسکریپت برای گرفتن بک اپ از فایل های مهم
در این بخش اسکریپتی می نویسیم که از فایل های مهم ما بک آپ می گیرد و آن را به همراه تاریخ و ساعت آرشیو می کند
اسکریپت جهت اطلاع از رخدادهای مهم سرور
در این بخش اسکریپتی می نویسیم که رخدادهای مهم سرور به ما اطلاع داده شود.
پیدا کردن پروسه های غیر مجاز از بین پروسه های در حال اجرا
در این بخش اسکریپتی می نویسیم که از بین پروسه های در حال اجرا روی سیستم ما، پروسه های غیر مجاز را که لیست آن در فایل دیگری است، پیدا می کند.
پردازش لاگ فایل مربوط به vpn server
در این بخش اسکریپتی می نویسیم که لاگ فایل های vpn server را در یک سال گذشته پردازش می کنیم و اطلاعات مفیدی از آن استخراج می کنیم.
ایجاد فایل config از روی template با کمک bash scripting
در این بخش نشان داده می شود که چگونه می توانید از یک فایل template config تعداد زیادی فایل config برای device های مختلف ایجاد کنید که در automation کاربرد دارد
چگونگی پیکربندی تجهیزات شبکه با استفاده از bash script
در bash script می توانید از زبان script نویسی دیگری به نام expect استفاده کنید که این قابلیت را دارد که همه برنامه هایی که interactive هستند، را به صورت اتوماتیک اجرا می کند. در برنامه های interactive از کاربر سوال پرسیده می شود و کاربر باید پاسخ دهد. میتوان پاسخ این سوال ها را از قبل در اختیار expect قرار داد و expect به جای شما پاسخ سوالات را می دهد.
وقتی به تجهزات شبکه با برنامه SSH، Telnet و یا ابزارهای دیگر متصل می شوید، از شما نام کاربری، رمز و سوالات دیگر پرسیده می شود. می توانید از قبل پاسخ این سوالات را در اختیار expect قرار دهید تا به جای شما پاسخ دهد.
معرفی نرم افزار RANCID و اسکریپت clogin
با نرم افزار RANCID می توانید، از پیکربندی تجهیزات شبکه با برندهای مختلف بک آپ بگیرید. خصوصیت این نرم افزار در این است که به ازاء هر بار بک آپ یک نسخه ایجاد می کند. تمام نسخه های بک آپ با هم قابل مقایسه هستند که چه کانفیگی اضافه شده است، حذف شده است و یا تغییر کرده است.
یکی از ابزارهای اصلی داخل نرم افزار RANCID، اسکریپت clogin است که به صورت اتوماتیک به تجهیزات شبکه وصل می شود و از پیکربندی تجهیزات بک آپ می گیرد. اسکریپت clogin بر اساس زبان اسکریپت نویسی Expect نوشته شده است که در بخش قبل درمورد آن صحبت کردیم. با اسکریپت clogin می توانید اتوماسیون انجام دهید و یا کانفیگی را روی چندین تجهیز وارد کنید بدون انکه بخواهید از زبان اسکریپت نویسی Expect مطلع باشید.
نصب و پیکربندی rancid
در این بخش نصب و پیکربندی نرم افزار rancid نشان داده شده است.
این نرم افزار به صورت اتوماتیک و دوره ای از پیکربندی تجهیزات شبکه بک آپ می گیرد. برندهای مختلفی از جمله سیسکو و جونیپر را پشتیبانی می کند. خصوصیت ویژه این انرم افزار در این است که قابلیت version control دارد. یعنی می توانید کانفیک بک اپ های مختلف را با هم مقایسه کنید که در زمان بروز مشکلات خیلی می تواند موثر باشد.
استفاده از ابزار clogin برای automation در محیط لینوکس
با نرم افزار clogin می توانید در محیط لینوکس automation را پیاده سازی کنید بدون آنکه مجبور باشید از زبان اسکریپت نویسی Expect استفاده کنید. این نرم افزار در حقیقت خودش از زبان Expect برای automation استفاده می کند.
0.0. raykacbt-clip.mp4
0.1. Introduction.mp4
1. SED command_.mp4
2. AWK Part1; Field Seperation_.mp4
3. AWK Part2 Text Processing_.mp4
4. grep examples_.mp4
5. regular expression_.mp4
6. find command in bash scripting_.mp4
7. xargs and exec in bash scripting_.mp4
8. input, output and error redirection_.mp4
9. head_tail_wc_sort_cut_uniq.mp4
10. Variables in Bash Scripting_.mp4
11. array in Bash Scripting_.mp4
12. if statement in bash scripting_.mp4
13. run multiple commands in one line_.mp4
14. case statement in bash scripting_.mp4
15. for loop in bash scripting_.mp4
16. while loop in bash scripting.mp4
17. script to check connectivities_.mp4
18. script to backup and archive with date_.mp4
19. script to send important log messages_.mp4
20. script to find illegal processes in my running processes_.mp4
21. scritp to analyse vpn server logs_.mp4
22. create config file from template_.mp4
23. configure cisco device through bash script.mp4
24. RANCID and clogin Introduction_.mp4
25. install and configure rancid_.mp4
26. clogin for automation in linux_.mp4