আমি কিভাবে ক্রোন জব সেট আপ করব?


534

আমি নিয়মিতভাবে চালনার জন্য কোনও কাজ শিডিউল করতে চাই এবং শুনেছি ক্রোন এটি করার উপায়।

আমি কীভাবে উবুন্টুতে ক্রোন জব যুক্ত করব?

উত্তর:


655

এই ফোল্ডারগুলি এক একটি শেল স্ক্রিপ্ট রাখুন:: /etc/cron.daily, /etc/cron.hourly, /etc/cron.monthlyঅথবা /etc/cron.weekly

যদি এটি আপনার পক্ষে পর্যাপ্ত না হয় তবে আপনি আরও সুনির্দিষ্ট কাজগুলি যুক্ত করতে পারেন যেমন মাসে দুইবার বা প্রতি 5 মিনিটে minutes টার্মিনালে যান এবং টাইপ করুন:

crontab -e

এটি আপনার ব্যক্তিগত crontab (ক্রোন কনফিগারেশন ফাইল) খুলবে। এই ফাইলের প্রথম লাইন এটি সমস্ত ব্যাখ্যা করে! প্রতিটি লাইনে আপনি চালনার জন্য একটি কমান্ড এবং এর সময়সূচী নির্ধারণ করতে পারেন এবং আপনি যখন এটির হ্যাং পাবেন তখন ফর্ম্যাটটি বেশ সহজ। কাঠামোটি হ'ল:

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

সমস্ত সংখ্যার জন্য আপনি তালিকাগুলি ব্যবহার করতে পারেন, উদাহরণস্বরূপ 5,34,55মিনিটের মাঠের অর্থ পাঁচটি অতীত, 34 অতীত এবং 55 টি অতীত যে কোনও সময় নির্ধারিত হবে run

অন্তরও ব্যবহার করতে পারেন। তারা এই মত সংজ্ঞায়িত করা হয়: */20। এই উদাহরণটির অর্থ প্রতি 20 তম, সুতরাং মিনিটের কলামে এটি সমান 0,20,40

সুতরাং প্রতি সোমবার বিকেল সাড়ে ৫ টায় একটি কমান্ড চালাতে:

30 17 * * 1 /path/to/command

বা প্রতি 15 মিনিটে

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

নোট করুন যে সপ্তাহের দিনটি 0-6 থেকে চলে যায় যেখানে 0 রবিবার হয়।

আপনি এখানে আরও পড়তে পারেন ।


7
এগুলি সিস্টেম-ব্যাপী এবং উচ্চতর সুবিধা সহ চালিত। অ্যাক্সেস বা অনুমতি প্রয়োজনের দরকার না হলে আমি সেখানে কিছুই রাখব না। থাম্বের নিয়ম হিসাবে, ক্ষমতা ছাড়াই স্টাফ করার চেষ্টা করুন। অতএব, আমি এই উত্তরটি আরও ভাল পছন্দ করি: উবুন্টু.স্ট্যাকেক্সচেঞ্জ
এইচ মার্সেলো মোরালেস

5
@ মার্সেলো মোরালেস, যা প্রদত্ত আদেশগুলি মূল হিসাবে চালাবে! আপনি যদি অন্যদিকে সুডো ব্যবহার না করেন তবে আপনি একটি ব্যবহারকারী ক্রন্টব তৈরি করবেন এবং এটি এটি তৈরির ব্যবহারকারী হিসাবে চালিত হবে!
লাসেপলসন

4
* / 15 * * * * / পাথ / টু / কমান্ডটি আমার পক্ষে খুব সহজ ছিল! ধন্যবাদ!
অ্যান্ড্রু ওডেনডাল

18
এই পরিবর্তনগুলি স্বয়ংক্রিয়ভাবে প্রয়োগ করা দরকার, আপনার কোনও কিছুই পুনরায় আরম্ভ / পুনরায় লোড করার দরকার নেই।
মোলম্বি

6
আর একটি সহজ টিপ হ'ল পরিবর্তে */15 * * * * /path/to/command, আপনি @reboot /path/to/commandশুরুতে কিছু চালানোর জন্য করতে পারেন ।
কেনেথ ওয়ার্ডেন

102

আপনি যে কাজটি চালাতে চান তা যদি আপনার ব্যবহারকারীর মতো একই সুবিধাসমূহের সাথে চালানো যায় তবে আমি কোনও ব্যবহারকারী ক্রন্টব ব্যবহার করার পরামর্শ দিচ্ছি যা আপনি চালনা করে সম্পাদন করতে পারবেন EDITOR="gedit" crontab -e(যা ক্রন্টাব ফাইল সম্পাদনা করার জন্য জিডিট crontab -eব্যবহার করবে ) বা কেবল (যা ডিফল্ট সম্পাদক ব্যবহার করবে) একটি টার্মিনালে।

আপনি যদি প্রতি 10 মিনিটে কিছু চালাতে চান, উদাহরণস্বরূপ, আপনি এটির মতো একটি লাইন যুক্ত করুন

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

এবং ফাইলটি সংরক্ষণ করুন।

আপনি ব্যবহারকারী ক্রন্টব এর সামগ্রীগুলি দেখতে পাচ্ছেন crontab -l

রুট হিসাবে চলমান ক্রোন জব যুক্ত করতে আপনি চালিয়ে রুটের ক্রন্টব সম্পাদনা করতে পারেন sudo crontab -e

সর্বাধিক নমনীয় উপায় হ'ল সিস্টেম ক্রোনট্যাব ব্যবহার করা /etc/crontabযা আপনি কেবলমাত্র রুট সুবিধার সাথে সম্পাদনা করতে পারেন। এই ফাইলে ব্যবহারকারীকে প্রতিটি কমান্ড নির্দিষ্ট করে চলতে হবে, সুতরাং আপনি আপনার কমান্ডগুলি রুট হিসাবে চালাতে পারেন (যদি আপনার সেই স্তরের সুবিধার প্রয়োজন হয়) বা সিস্টেমের অন্য কোনও ব্যবহারকারীর জন্য।

উদাহরণস্বরূপ, আপনি যদি প্রতি 10 মিনিটে রুট হিসাবে কিছু চালাতে চান তবে আপনি এটির মতো একটি লাইন যুক্ত করুন

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

(লাইনে ব্যবহারকারীর সংযোজনটি লক্ষ্য করুন)

আপনি সিস্টেম ক্রন্টব ফাইলের সামগ্রীগুলি এর সাথে দেখতে পারেন cat /etc/crontab

আরও বিশদে এখানে: https://help.ubuntu.com/commune/CronHowto


1
এখানে একটি মিষ্টি ইন্টারেক্টিভ ক্রোন ম্যানিপুলেটর যা আপনাকে ক্রোন সময় ইংরেজিতে দেবে crontab.guru
CTS_AE

52

আপনি যদি কোনও জিইউআই ব্যবহার করে এটি করতে পছন্দ করেন তবে আপনি সফ্টওয়্যার সেন্টারে গিয়ে নির্ধারিত কাজগুলি ইনস্টল করতে পারেন (বা রান করুন sudo apt-get install gnome-schedule)। এটি ক্রোন কার্যগুলি যুক্ত করার জন্য একটি শক্তিশালী জিইউআই সরবরাহ করবে।

মনে রাখবেন যে আপনি যদি এই পদ্ধতিটি ব্যবহার করেন তবে ডিফল্টরূপে কার্যগুলি আপনার নিজস্ব ব্যবহারকারী হিসাবে কার্যকর হবে, মূল হিসাবে নয়। এটি সাধারণত একটি ভাল জিনিস।


3
জন্য পাওয়া যায় না 16,04 দৃশ্যত bugs.launchpad.net/ubuntu/+source/gnome-schedule/+bug/1576060
TankorSmash

@ ট্যানকোরস্যামস আপনি এটি এখানে
এম।

প্যাকেজ প্রয়োজনীয়তা 16.04
ওডিসিয়াস ইথাকা

26

আমি কেডিএর টাস্ক শিডিয়ুলার ( kde-config-cron) প্রস্তাব দিই Kde-config-cron ইনস্টল করুন। তা থেকে অ্যাক্সেস করুন সিস্টেম সেটিংস মধ্যে কার্য পরিকল্পনাকারী সেখানে মডিউল।

এটি ব্যক্তিগত এবং সিস্টেম ক্রোনট্যাব উভয়ই পরিচালনা করে এবং সময়সীমা তৈরির স্বাচ্ছন্দ্য আমাকে বিস্মিত করে তোলে (নীচের স্ক্রিনশটটি দেখুন)। আমি মনে করি এই অংশটি সত্যই আন্ডাররেটেড।

এখানে চিত্র বর্ণনা লিখুন


11

কেডিএ টাস্ক শিডিয়ুলার নিয়মিত উবুন্টুতে কাজ করবে না। এটি কেবল বুਬੰ্টুর মতো কে-ডি-ই সিস্টেমগুলিতে কাজ করে। নন-কেডি সিস্টেমের জন্য আপনি জিনোম-শিডিউল ব্যবহার করতে পছন্দ করবেন

$ sudo apt-get install gnome-schedule

অ্যাপ্লিকেশনটি ড্যাশের মধ্যে নির্ধারিত কাজ।


এটি উবুন্টু 16.04 এর জন্য খুঁজে পাওয়া যায় নি
সৈয়দবাকআর

দয়া করে I can't install gnome schedule on Ubuntu 16.04@ জিজ্ঞাসুবন্টু / প্রশ্নগুলি / 85৮৫6565//২ দেখুন । @ Bugs.launchpad.net/ubuntu/+source/gnome-schedule/+bug/1576060/… ডাউনলোড করার জন্য একটি প্যাকেজ রয়েছে । কেবল সম্পাদন করুন$ sudo dpkg -i gnome-schedule_2.3.0-0ubuntu16.04_amd64.deb
আন্তোনিও

10

আমি ব্যাশ স্ক্রিপ্টের মাধ্যমে চলার জন্য ক্রোন জব সেট করতে চেয়েছিলাম, সুতরাং স্ক্রিপ্টটি কার্যকর করা ক্রোন জব যুক্ত করবে।

আমি বুঝতে পারি যে আপনি যখন এটি ব্যবহার করেন:

crontab -e 

তারপরে এটি ফাইলটি তৈরি করে:

/var/spool/cron/crontabs/root

যেখানে রুট হল ক্রন্টব কমান্ড চলমান ব্যবহারকারীর নাম। সুতরাং এর ভিত্তিতে এবং কমপক্ষে 14.04 এ, আমরা একটি নতুন ক্রোন জব তৈরি করতে নিম্নলিখিত বাশ কমান্ডগুলি কার্যকর করতে পারি:

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তালিকায় ইতিমধ্যে ক্রোন কাজ থাকে তবে আপনি নিম্নলিখিত কমান্ডটি ব্যবহার করে তালিকায় যুক্ত হতে পারবেন:

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

2

test_cron.shপ্রতীকী লিঙ্কটি ব্যবহার করে উবুন্টু 18.04 এ প্রতি মিনিটে ক্রোন দ্বারা স্ক্রিপ্ট চালনার উদাহরণ :

test_cron.sh ফাইল:

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

আপনি যদি আপনার স্ক্রিপ্টে $USERপথের মতো পরিবেশের পরিবর্তনগুলি ব্যবহার করতে চান তবে সুনির্দিষ্ট পাথটি টাইপ করা ভাল, বাশ কার্যকর করার সময় আপনার ভেরিয়েবলগুলি জানতে পারবে না।

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)
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.