چگونه می توانم کار Cron را تنظیم کنم؟


به جواب پذیرفته شده بروید




من می خواهم یک کار را برای اجرای منظم برنامه ریزی کنم و شنیده ام که کرون روش انجام این کار است.

چگونه می توان شغل کرون را در اوبونتو اضافه کرد؟


540









7 :تعداد پاسخها


یک اسکریپت پوسته را در یکی از این پوشه ها قرار دهید: /etc/cron.daily ، /etc/cron.hourly ، /etc/cron.monthly یا /etc/cron.weekly .

اگر این موارد برای شما کافی نیست ، می توانید کارهای خاص تر را اضافه کنید مثلاً دو بار در ماه یا هر 5 دقیقه. به ترمینال بروید و تایپ کنید:

 crontab -e
 

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

 minute hour day-of-month month day-of-week command
 

برای همه اعدادی که می توانید از لیست ها استفاده کنید ، به عنوان مثال 5,34,55 در قسمت دقیقه ها به معنای اجرا در 5 گذشته ، 34 گذشته و 55 گذشته از هر ساعت تعریف شده است.

همچنین می توانید از فواصل زمانی استفاده کنید. آنها مانند این تعریف شده اند */20 :. این مثال به معنی هر 20 است ، بنابراین در ستون دقیقه آن معادل است 0,20,40 .

بنابراین برای اجرای یک فرمان هر دوشنبه ساعت 5:30 بعد از ظهر:

 30 17 * * 1 /path/to/command
 

یا هر 15 دقیقه

 */15 * * * * /path/to/command
 

توجه داشته باشید که روز هفته از 0-6 می رود جایی که 0 یکشنبه است.

می توانید اطلاعات بیشتری در اینجا بخوانید .


662



اگر شغلی را که می خواهید اجرا کنید می تواند با همان امتیازات کاربری شما اجرا شود من توصیه می کنم از crontab کاربر استفاده کنید که می توانید با اجرای EDITOR="gedit" crontab -e آن (که از gedit برای ویرایش پرونده crontab استفاده می کند) یا به سادگی crontab -e (که از ویرایشگر پیش فرض استفاده می کند) استفاده کنید. در یک ترمینال

برای مثال ، اگر می خواهید هر 10 دقیقه چیزی را اجرا کنید ، مانند این خط اضافه می کنید

 */10 * * * * /usr/bin/somedirectory/somecommand
 

و پرونده را ذخیره کنید.

می توانید مطالب مربوط به کاربر crontab را با آنها مشاهده کنید crontab -l .

برای افزودن یک کار cron که به صورت ریشه انجام می شود ، می توانید با اجرای آن crontab root را ویرایش کنید sudo crontab -e .

انعطاف پذیر ترین روش استفاده از سیستم crontab است /etc/crontab که می توانید فقط با استفاده از امتیازات root ویرایش کنید. در این پرونده ، کاربر باید هر دستور را طبق آنچه مشخص شده است اجرا کنید ، بنابراین می توانید دستورات خود را به صورت root (در صورت نیاز به آن سطح امتیاز) یا هر کاربر دیگری روی سیستم اجرا کنید.

به عنوان مثال ، اگر می خواهید هر 10 دقیقه به عنوان ریشه چیزی را اجرا کنید ، خطی مانند این اضافه می کنید

 */10 * * * * root /usr/bin/somedirectory/somecommand
 

(توجه داشته باشید که کاربر را به خط اضافه کنید)

می توانید محتویات فایل crontab را با سیستم مشاهده کنید cat /etc/crontab .

جزئیات بیشتر در: https://help.ubuntu.com/community/CronHowto


102



اگر ترجیح می دهید این کار را با استفاده از GUI انجام دهید ، می توانید به مرکز نرم افزار بروید و کارهای برنامه ریزی شده را نصب کنید (یا اجرا کنید sudo apt-get install gnome-schedule ). این یک رابط کاربری گرافیکی قدرتمند برای اضافه کردن کارهای cron فراهم می کند.

توجه داشته باشید که اگر از این روش استفاده کنید ، وظایف به صورت پیش فرض به عنوان کاربر شخصی شما انجام می شود ، نه به عنوان root. این معمولاً چیز خوبی است.


53



من KDE's Task Scheduler ( kde-config-cron ) را توصیه می کنم
kde-config-cron را نصب کنید

. از آنجا به تنظیمات سیستم در ماژول Task Scheduler دسترسی پیدا کنید .

این Crontabs شخصی و سیستم را مدیریت می کند ، و سهولت در ایجاد مرزهای زمانی مرا بسیار غافلگیر کرد (تصویر زیر را مشاهده کنید). فکر می کنم این قسمت واقعاً کم ارزش است.


توضیحات تصویر را اینجا وارد کنید


26



KDE Task Scheduler در اوبونتو به طور منظم کار نخواهد کرد. این تنها در سیستم های KDE مانند KUbuntu کار می کند. برای سیستم غیر KDE ترجیح می دهید از gnome-program استفاده کنید

 $ sudo apt-get install gnome-schedule
 

برنامه وظایف برنامه ریزی شده در داش است.


11



من می خواستم یک کار Cron تنظیم کنم تا از طریق اسکریپت bash اجرا شود ، بنابراین اجرای فیلم نامه می تواند یک کار cron اضافه کند.

فهمیدم که وقتی از این موارد استفاده می کنید:

 crontab -e 
 

سپس پرونده را ایجاد می کند:

/var/spool/cron/crontabs/root

جایی که root نام کاربری است که دستور crontab را اجرا می کند. بنابراین بر این اساس و در حداقل 14.04 ، ما می توانیم دستورات bash زیر را برای ایجاد یک کار جدید Cron اجرا کنیم:

 echo "30 17 * * 1 /path/to/command" > /var/spool/cron/crontabs/root
 

همچنین باید مالکیت صحیح را برای پرونده تنظیم کنیم:

 chown root:root /var/spool/cron/crontabs/root
 

و مجوزهای صحیح را تنظیم کنید:

 chmod 600 /var/spool/cron/crontabs/root
 

اگر هنگامی که اجرا شد crontab -e کارهای Cron در لیست وجود دارد ، می توانید با استفاده از دستور زیر به لیست اضافه شوید:

 echo "30 17 * * 1 /path/to/command" >> /var/spool/cron/crontabs/root
 

11



مثال اجرای اسکریپت در test_cron.sh هر دقیقه در اوبونتو 18.04 با استفاده از پیوند نمادین:

test_cron.sh فایل:

 #!/bin/bash
echo "System backuped" >> /media/myname/data/backup/backup_tmp.log
 

اگر می خواهید از متن متغیرهای محیطی مانند اسکریپت استفاده $USER کنید ، بهتر است مسیر دقیقی را تایپ کنید ، bash در زمان اجرا متغیرهای شما را نمی شناسد.

myname نام کاربر (بخشی از گروه اصلی است ، من مطمئن نیستم که امتیازات ریشه لازم هستند).

در صورت لزوم به کاربران اجازه دهید تا مشاغل متناوب را تنظیم کنند ، در صورت لزوم پرونده ایجاد می شود:

 sudo nano /etc/cron.allow

root
myname
 

مسیر فیلمنامه است /home/myname/shell/test_cron.sh

من مالک را تغییر دادم و آن را اجرایی کردم:

 sudo chown myname /home/myname/shell/test_cron.sh
chmod +x /home/myname/shell/test_cron.sh
 

من پیوند نمادین را اضافه کردم:

 sudo ln -s /home/myname/shell/test_cron.sh /usr/bin/test_cron
 

ورود به سیستم به عنوان myname اضافه کردن کار جدید برای اجرای test_cron هر دقیقه.

 crontab -e

*/1 * * * * test_cron
 

برای بررسی اینکه آیا دستور در لیست است:

 crontab -l

*/1 * * * * test_cron
 

برای بررسی اعدام

 grep -i cron /var/log/syslog

Nov 17 12:28:01 myname-ubuntu CRON[13947]: (myname) CMD (system-backup)
 

2



انتشارات مرتبط


نحوه اجرای یک کار cron با استفاده از دستور sudo

چگونه USB را برای Virtualbox تنظیم کنیم؟

چگونه یک محیط پایتون مجازی را در اوبونتو تنظیم و استفاده کنیم؟

چگونه می توان مخزن APT را تنظیم کرد؟

چگونه اشتراک گذاری دسک تاپ از راه دور را از طریق SSH تنظیم کنیم؟

چگونه دلفین را به عنوان مدیر پرونده پیش فرض تنظیم کنیم؟

نحوه تنظیم دسترسی SSH بدون پسورد برای کاربر root [تکثیر]

چگونه یک کار cron برای اجرای اسکریپت پوسته تنظیم کنیم؟

چگونه می توان چندین هارد دیسک را به عنوان یک حجم تنظیم کرد؟

چگونه می توانم به حساب کاربریgmail خود ایمیل بزنم

[cron] سوال برچسب


نحوه لیست تمام بسته های نصب شده

چگونه می توانم با استفاده از خط فرمان ، کاربر جدیدی را به عنوان sudoer اضافه کنم؟

چگونه یک متغیر در bash را افزایش دهیم؟

چگونه فضای بیشتری را در / boot ایجاد کنم؟

چگونه می توانم یک پرونده .tar.gz (یا .tar.bz2) نصب کنم؟

چگونه سرعت اینترنت را از طریق ترمینال بررسی کنیم؟

تفاوت بین apt-get چیست؟

چگونه می توانم استفاده از کلید Alt را HUD تغییر یا غیرفعال کنم؟

چگونه می توانم لیستی از پرونده های نصب شده را از یک بسته دریافت کنم؟

چگونه واقعاً ترمینال را پاک کنیم؟