اجرای یک دستور هر n تایم با بش، پایتون و crontab

درود،

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

خب با  فرض اینکه ما یه سرور مجازی داریم و با ssh بهش وصل می‌شیم و قراره مثلا یه اسکریپت دیگه که برای بکاپ گرفتن پرونده‌هامون هست را هر ۶۰ دقیقه یک بار اجرا کنیم، پیش میریم.

اول از همه میریم سراغ بش، با دستور زیر یه پرونده متنی می‌سازیم:

حالا اون پرونده متنی را با vim یا nano یا هر چیز دیگه باز می‌کنیم و خطوط زیر را داخلش می‌ذاریم و بهش دسترسی اجرایی می‌دیم:

خطوط مورد نظر:

خب حالا پرونده متنی رو ذخیره کنید و خارج شید!‌ سپس با دستور زیر بهش دسترسی اجرایی بدید:

الان می‌تونید با وارد کردن مسیر این اسکریپت کار خودتون را انجام بدید 🙂 این اسکریپت قراره هر بار بره به شاخه‌ای به اسم dmnnd و دستور dmnd رو اجرا کنه 🙂

همین اسکریپت با پایتون:

اینجا هم مثل بالا دسترسی اجرایی میدید و اجراش می‌کنید!

و در آخر بریم در مورد crontab صحبت کنیم، cron یک ابزار تحت خط فرمان هست که کمک می‌کنه یه سری کار در ساعت مشخص اجرا بشن، اصطلاحا به کار‌های یی به کرون می‌دیم تا انجام بده Task گفته میشه حالا با فرض اینکه من یه دونه اوبونتو سرور دارم دستور زیر رو وارد می‌کنیم تا cron نصب بشه (هر چند به صورت پیش‌فرض نصب هست فکر کنم!):

حالا با دستور زیر سرویس cron را اجرا کنید:

 

برای اینکه از کرون سر در بیارید و اطلاعات بیشتری ازش داشته باشید می‌تونید man pageش رو مطالعه کنید:

 

برای اینکه ببینید در حال حاضر چه تسک‌هایی داخل کرون دارید می‌تونید از سوییچ L که در واقع یعنی list استفاده کنید:

برای اینکه تمام تسک‌هایی که وارد کرون کردید رو پاک کنید از سوییچ r یا همون remove استفاده می‌کنید:

و در آخر اضافه کردن تسک به cron:

 

حالا خط زیر را کپی می‌کنیم داخل ادیتور:

برای ذخیره کردن و خارج شدن هم می‌تونید کلید Esc رو بزنید و بعد wq را بنویسید و Enter کنید تا تغییرات بر روی پرونده اعمال بشه و بعد خارج بشه!

البته کرون دنیای عجیب غریبی داره! مثلا میشه بهش گفت یه تسک را هر سه شنبه شب ساعت ۸ و نیم انجام بده که همه‌ی اینا با سینتکس خود کرون هست، در واقع شش تا ستاره هست که هر کدومش یه مفهومی داره، ولی برای کار ما همین hourly کافی بود 😀

امیدوارم مفید واقع شده بشه 🙂

درباره نویسنده: حسین حیدری

علاقه مند به انیمه، مانگا، گنو/لینوکس و برنامه نویسی :)

مطالب زیر را حتما بخوانید

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *