آموزش تصویری:

 

اتومات سازی اسکریپت ها و سرویس ها می تواند به شما خیلی در امور مدیریت سرور یا اتومات سازی تست نفوذ یا بک اپ گیری ساده انتقال به یک سرور دیگر کمک کند در درس های گذشته اشاره کوچکی به cronjob شد این جلسه اختصاص به cronjob داده شده و سعی شده چندین مثال متداول برای فهم راحت تر cronjob و run level شود.

Man crontab

برنامه ریزی یک رویداد یا کار برای اجرای خودکار

FieldTime unit Representation

1 Minute 0–59

2 Hour 0–23

3 Day of the month 1–31

4 Month 1–12

5 Day of the week 0–7

chkconfig crond on

service crond restart

service crond start

service crond status

update-rc.d cron defaults

sudo systemctl enable cron.service

sudo systemctl start cron.service

sudo systemctl status cron.service

 

 

M     H DOM MON DOW USER COMMAND

به عنوان یوزر معمولی هر 5 دقیقه یکبار اسکریپت را اجرا کن

*/5  *    *        *        *                /root/script.sh

 

توجه داشته باشید که علامت * برای نشان دادن “any” استفاده می شود و استفاده از آن به جای یک رقم برای روز ماه، ماه یا روز هفته به عنوان “همه” روزها یا ماه ها خوانده می شود. اگر سراسر این خط را بخوانید، می گوید

 

با یوزر root هر 5 دقیقه یکبار اسکریپت را اجرا کن

*/5  *    *        *        *       root         /root/script.sh

crontab -e

0 = Sunday1 = Monday2 = Tuesday3 = Wednesday4 = Thursday5 = Friday6 = Saturday

@yearly

@annually

@monthly

@weekly

@daily

@midnight

@noon

@reboot

 

 

 

ران کردن یک اسکریپت بک اپ هر شب ساعت 12

0 0 * * *  /root/myscript.sh

اگر می‌خواهید اسکریپت فقط در پانزدهم و سی ام هر ماه اجرا شود، صرف نظر از اینکه این تاریخ‌ها در چه روزهایی از هفته قرار دارند، می‌توانید ورودی crontab را به شکل زیر تغییر دهید.

0 0 15,30 * /root/script.sh

 

 

ران کردن یک اسکریپت زمان استارت شدن لینوکس

crontab -e -u UserName
crontab -e -u soheil@reboot /home/soheil/script.sh

ران کردن اسکریپت ریکان هر 12 ساعت یکبار

0    */12   *    *    *      bash /root/myscript.sh

 

ران کردن اسکریپت اسکن شنبه ها و جمعه ها ساعت 12 ظهر

0 = Sunday1 = Monday2 = Tuesday3 = Wednesday4 = Thursday5 = Friday6 = Saturday

 

0 12 * * 5,6  /root/script.sh

 

 

استفاده از rc اسکریپت برای اجرای کارها در راه اندازی

هر زمان که سیستم لینوکس خود را راه اندازی می کنید، تعدادی اسکریپت برای تنظیم محیط برای شما اجرا می شود. اینها به اسکریپت های rc معروف هستند. پس از اینکه کرنل تمام ماژول های خود را مقداردهی اولیه کرد و بارگذاری کرد، کرنل دیمونی به نام init یا init.d را راه اندازی می کند. سپس این دیمون شروع به اجرای تعدادی از اسکریپت های موجود در /etc/init.d/rc می کند. این اسکریپت ها شامل دستوراتی برای راه اندازی بسیاری از سرویس های لازم برای اجرای سیستم لینوکس شما همانطور که انتظار دارید می باشد

 

Linux Runlevels

0 Halt the system

1 Single-user/minimal mode

2–5 Multiuser modes

6 Reboot the system

 

  • 0 (Halt) Shuts down the system.
  • 1 (Single-User Mode) Mode for administrative tasks.
  • 2 (Multi-User Mode) Does not configure network interfaces and does not export networks services.[4]
  • 3 (Multi-User Mode with Networking) Starts the system normally.
  • 4 (Not used/User-definable) For special purposes.
  • 5 (Start the system normally with appropriate display manager.) As runlevel 3 + display manager.
  • 6 (Reboot) Reboots the system.

اضافه کردن  سرویس ها به rc.d

با استفاده از دستور updaterc.d می توانید سرویس هایی را برای اسکریپت rc.d اضافه کنید تا در هنگام راه اندازی اجرا شود. این دستور شما را قادر می سازد تا خدماتی را از اسکریپت rc.d حذف یا اضافه کنید. نحو برای update-rc.d ساده است. شما به سادگی دستوری را که با نام اسکریپت و سپس اقدامی که باید انجام شود فهرست می کنید، مانند این:

ps aux | grep postgresql

update-rc.d postgresql defaults

ls /etc/rc*.d/S*postgresql

/etc/rc2.d/S02postgresql

/etc/rc3.d/S02postgresql

/etc/rc4.d/S02postgresql

/etc/rc5.d/S02postgresql

/etc/rc2.d/S02postgresql

0 lrwxrwxrwx 1 root root 20 Jul 14 14:01 /etc/rc2.d/S02postgresql -> ../init.d/postgresql

 

در ران لول ها مختلف k  که اولش گذاشته به معنی stop و s  به معنی start کردن سرویس هست.

اضافه کردن  سرویس ها به بوت آپ به صورت گرافیکی

apt-get install rcconf

rcconf