من همیشه مجذوب چیزهایی هستم که پشت صحنه بوت شدن یک سیستم لینوکس و log on کردن به آن اتفاق می افتد. با فشار دادن دکمه پاور کیس یا استارت کردن یک ویرچوال ماشین یک سری اتفاقات که منجر به یک سیستم کاملا کاربردی میشود در حال رخ دادن است که گاهی اوقات کمتر از یک دقیقه طول میکشد. همچنین این موارد در طول logoff کردن یا خاموش کردن سیستم نیز اتفاق می افتند.
توصیه میشود مطالعه کنید :
فرآیند 6 مرحله ای پروسه بوت در لینوکس
حقیقتی که این موضوع را جذابتر میکند این است که شما میتوانید کاری کنید که سیستم عامل عملیات خاصی را به هنگام بوت شدن و یا logon یا logoff کردن اجرا کند.
در این مقاله قصد داریم درباره روش های سنتی برای پیاده سازی این هدف در لینوکس بحث کنیم.
نکته : ما در اینجا ما فرض را بر استفاده از bash به عنوان شل اصلی برای logon و logout کردن میگذاریم. اگر شما از شل متفاوتی استفاده میکنید بعضی از این روش ها ممکن است کار کند و بعضی دیگر ممکن است کار نکند. اگر در حد مورد شک دارید به داکیومنت شل خودتان مراجعه کنید.
اجرا کردن Script های لینوکسی به هنگام Reboot یا StartUP
دو روش برای اجرا کردن یک دستور یا run کردن یک اسکریپت به هنگام startup وجود دارد.
روش اول : استفاده از یک Cron Job
علاوه بر فرمت معمول مورد استفاده در یک schedule در کرون جاب (minute / hour / day of month / month / day of week) همچنین شما امکان استفاده از آپشن @reboot را دارید. این آپشن که به دنبالش مسیر کامل اسکریپت میآید باعث میشود که زمانیکه ماشین Boot میشود اسکریپت مورد نظر اجرا شود.
به هر حال در این روش دو مورد احتیاطی وجود دارد :
1 - سرویس cron باید در حال اجرا باشد (که در شرایط نرمال در حال اجراست)
2 - اسکریپت یا فایل crontab باید شامل متغییرهای محیطی باشد که مورد نیاز هستند.
روش دوم : استفاده از /etc/rc.d/rc.local
این روش حتی برای توزیع های systemd-based نیز معتبر است. به منظور اینکه این روش کار کند شما باید پرمیژن های اجرایی به فایل /etc/rc.d/rc.local همانند زیر بدهید :
و در پایان فایل اسکریپت خود را اضافه کنید.
در تصاویر زیر شما چگونگی اجرا کردن و نتایج دو نمونه اسکریپت /home/gacanepa/script1.sh و /home/gacanepa/script2.sh را به ترتیب با استفاده از cronjob و rc.local مشاهده میکنید.
در خاطر داشته باشید که از قبل باید به هر دو اسکریپت پرمیژن های اجرایی بدهید.
اجرا کردن اسکریپت های لینوکسی در LogOn و LogOUT
برای اجرا کردن یک اسکریپت به هنگام logon یا logout کردن به ترتیب از ~.bash_profile و ~.bash_logout استفاده میکنیم. در اکثر موارد شما نیاز به ایجاد دستی فایل ~.bash_logout را خواهید داشت. تنها کافیست که اسکریپت خودتان را در پایان هر فایل همانند آنچه که در قبل گفته شد قرار دهید.
همچنین توصیه میشود مطالعه کنید:
11 مثال از زمانبندی کارها در لینوکس با استفاده از دستورات cron job و crontab
نحوه ایجاد و مدیریت cron job ها در لینوکس
6 ابزار آنلاین برای ایجاد و تست cron job ها در لینوکس (به زودی)
خلاصه
در این پست ما چگونگی اجرا کردن اسکریپت به هنگام reboot, logon, logout را مورد بحث قرار دادیم، اگر شما هر روش دیگری غیر از موارد عنوان شده میشناسید باعث خوشحالیست که با ما به اشتراک بگذارید.
توصیه میشود مطالعه کنید :
فرآیند 6 مرحله ای پروسه بوت در لینوکس
حقیقتی که این موضوع را جذابتر میکند این است که شما میتوانید کاری کنید که سیستم عامل عملیات خاصی را به هنگام بوت شدن و یا logon یا logoff کردن اجرا کند.
در این مقاله قصد داریم درباره روش های سنتی برای پیاده سازی این هدف در لینوکس بحث کنیم.
نکته : ما در اینجا ما فرض را بر استفاده از bash به عنوان شل اصلی برای logon و logout کردن میگذاریم. اگر شما از شل متفاوتی استفاده میکنید بعضی از این روش ها ممکن است کار کند و بعضی دیگر ممکن است کار نکند. اگر در حد مورد شک دارید به داکیومنت شل خودتان مراجعه کنید.
اجرا کردن Script های لینوکسی به هنگام Reboot یا StartUP
دو روش برای اجرا کردن یک دستور یا run کردن یک اسکریپت به هنگام startup وجود دارد.
روش اول : استفاده از یک Cron Job
علاوه بر فرمت معمول مورد استفاده در یک schedule در کرون جاب (minute / hour / day of month / month / day of week) همچنین شما امکان استفاده از آپشن @reboot را دارید. این آپشن که به دنبالش مسیر کامل اسکریپت میآید باعث میشود که زمانیکه ماشین Boot میشود اسکریپت مورد نظر اجرا شود.
به هر حال در این روش دو مورد احتیاطی وجود دارد :
1 - سرویس cron باید در حال اجرا باشد (که در شرایط نرمال در حال اجراست)
2 - اسکریپت یا فایل crontab باید شامل متغییرهای محیطی باشد که مورد نیاز هستند.
روش دوم : استفاده از /etc/rc.d/rc.local
این روش حتی برای توزیع های systemd-based نیز معتبر است. به منظور اینکه این روش کار کند شما باید پرمیژن های اجرایی به فایل /etc/rc.d/rc.local همانند زیر بدهید :
کد PHP:
# chmod +x /etc/rc.d/rc.local
در تصاویر زیر شما چگونگی اجرا کردن و نتایج دو نمونه اسکریپت /home/gacanepa/script1.sh و /home/gacanepa/script2.sh را به ترتیب با استفاده از cronjob و rc.local مشاهده میکنید.
کد PHP:
#!/bin/bash
DATE=$(date +'%F %H:%M:%S')
DIR=/home/gacanepa
echo "Current date and time: $DATE" > $DIR/file1.txt
کد PHP:
#!/bin/bash
SITE="Tecmint.com"
DIR=/home/gacanepa
echo "$SITE rocks... add us to your bookmarks." > $DIR/file2.txt
در خاطر داشته باشید که از قبل باید به هر دو اسکریپت پرمیژن های اجرایی بدهید.
کد PHP:
$ chmod +x /home/gacanepa/script1.sh
$ chmod +x /home/gacanepa/script2.sh
اجرا کردن اسکریپت های لینوکسی در LogOn و LogOUT
برای اجرا کردن یک اسکریپت به هنگام logon یا logout کردن به ترتیب از ~.bash_profile و ~.bash_logout استفاده میکنیم. در اکثر موارد شما نیاز به ایجاد دستی فایل ~.bash_logout را خواهید داشت. تنها کافیست که اسکریپت خودتان را در پایان هر فایل همانند آنچه که در قبل گفته شد قرار دهید.
همچنین توصیه میشود مطالعه کنید:
11 مثال از زمانبندی کارها در لینوکس با استفاده از دستورات cron job و crontab
نحوه ایجاد و مدیریت cron job ها در لینوکس
6 ابزار آنلاین برای ایجاد و تست cron job ها در لینوکس (به زودی)
خلاصه
در این پست ما چگونگی اجرا کردن اسکریپت به هنگام reboot, logon, logout را مورد بحث قرار دادیم، اگر شما هر روش دیگری غیر از موارد عنوان شده میشناسید باعث خوشحالیست که با ما به اشتراک بگذارید.