ক্রেন্টব কখনই চলবে না


32

এখানে আমি দেবিয়ান জেসির উপর যা করেছি:

  • মাধ্যমে ক্রোন ইনস্টল করুন apt-get install cron
  • একটি backup_crontabফাইল রাখুন/etc/cron.d/

তবে টাস্কটি কখনই চলছে না।

এখানে কিছু ফলাফল রয়েছে:

/# crontab -l
no crontab for root

/# cd /etc/cron.d && ls
backup_crontab

/etc/cron.d# cat backup_crontab
0,15,30,45 * * * * /backup.sh >/dev/null 2>&1

কোনও নির্দিষ্ট ক্রন্টবকে সক্রিয় করার জন্য বা ক্রোন "পরিষেবা" নিজেই সক্রিয় করার জন্য কিছু করার আছে?


4
যদি এটি চলমান হয় এবং কোনও ত্রুটি ব্যর্থ হয় তবে আপনি দেখতে পাচ্ছেন না কারণ আপনি সমস্ত আউটপুট / dev / নালকে পুনঃনির্দেশ করছেন? :)
টিঙ্ক

@ টিঙ্ক এর পরিবর্তে কোনও ফাইলের শেষে আউটপুট যুক্ত করা সম্ভব?
জীবন

2
সত্যই; 0,15,30,45 * * * * /backup.sh >> / tmp / 'testing_cron.out 2> & 1
Tink

@ জীবন, কেবলমাত্র একটি ছোট নোট: আউটপুটের ক্ষেত্রে ls /etc/cron.dসমান cd /etc/cron.d && ls। পার্থক্য হ'ল কর্ম ডিরেক্টরি পরিবর্তন হবে না।
ড্রিউ চ্যাপিন

উত্তর:


49

ফাইলগুলি ব্যবহারকারীর/etc/cron.d তালিকাভুক্ত করা দরকার যে কাজটি চলছে।

অর্থাত

0,15,30,45 * * * * root /backup.sh >/dev/null 2>&1

আপনার অনুমতি এবং মালিককেও নিশ্চিত করতে হবে: গোষ্ঠীটি সঠিকভাবে সেট করা আছে ( -rw-r--r--এবং এর মালিকানাধীন root:root)


16
crontab -lক্রোন এন্ট্রি-তে প্রতিবেদন করা হয়েছে /var/spool/cron/crontabs/- অর্থাত্ প্রতি ব্যবহারকারী ক্রোনট্যাবগুলি। /etc/cron.dফাইলগুলি সিস্টেম ক্রন্টাবগুলি হয় এবং এর দ্বারা প্রতিবেদন করা হয় না crontab -l
স্টিফেন হ্যারিস

5
আসলে আমি উল্লেখ করেছি যে এটি কাজ করছে না তবে আমি কেবল বুঝতে পেরেছি যে এটি rootফাইলটিতে যুক্ত হওয়ার পরে - কেবল crontab -lএটি উল্লেখ করেননি, কেন আপনি ব্যাখ্যা করেছেন - আপনার সহায়তার জন্য ধন্যবাদ
জীবন

9
মনে হয় ফাইলের একটি ভূমিকাও রয়েছে। আমার ক্ষেত্রে আমি যোগ করা হয়েছিল etc/cron.dনাম মাঝখানে একটি বিন্দু দিয়ে একটি ফাইল ও চাকরির মৃত্যুদন্ড কার্যকর না হয় যতক্ষণ না আমি এটা নতুন নামকরণ
মাংসখণ্ডের

20
এখানে একই সমস্যা, ফাইলনামে "-" ড্যাশ করে এগুলি আন্ডারস্কোর এ পরিবর্তন করে "_" সমস্যার সমাধান হয়েছে, কাজগুলি তত্ক্ষণাত্ দৌড়ে গেল।
রব

1
আমারও একটা ড্যাশ ছিল ... কি .... কেন ?! যাইহোক, ধন্যবাদ @ রব
নিকোলে দিমিত্রভ

8

আরেকটি জিনিস আমি লক্ষ্য করেছি যে ফাইলটির /etc/cron.dকোনও এক্সটেনশন থাকতে পারে না। আমার বিশেষ ক্ষেত্রে আমার একটি প্রতীকী লিঙ্ক ছিল:

# my-job.crontab
* * * * * root echo "my job is running!" >> /tmp/my-job.log

$: ln -sf /home/me/my-job.crontab /etc/cron.d/
# This did not work -> job would not run

$: ln -sf /home/me/my-job.crontab /etc/cron.d/my-job
# This did work -> job ran fine

ফাইল-নেম সীমাবদ্ধতা রান-পার্ট ম্যান পৃষ্ঠাতে নথিভুক্ত করা হয়েছে: http://manpages.ubuntu.com/manpages/xenial/man8/run-parts.8.html , ফাইল ফর্ম্যাটকে ওভাররাইড করতে একটি --regex বিকল্পটি পাস করতে পারে।

ডিফল্ট ক্রোন আচরণটি এক্সটেনশন ছাড়াই থেকে গেছে, নীচে মন্তব্যগুলি দেখুন: https://bugs.launchpad.net/ubuntu/+source/debianutils/+bug/38022


মানুষ, তুমি আমার দিন বাঁচিয়েছ!
elboletaire

2
এটি উবুন্টুতে সঠিক (সম্ভবত সমস্ত ডেবিয়ান থেকে প্রাপ্ত ডিগ্রোগুলিতে)। অ্যামাজন লিনাক্সে (এবং সম্ভবত সমস্ত রেডহাট থেকে প্রাপ্ত ডিগ্রোগুলিতে), আপনার ফাইলের নামে একটি বিন্দু থাকতে পারে। আপনাকে ইউনিক্স.এসই ধন্যবাদ
Law29

আমি কেবল একটি খাঁটি দেবিয়ান পরীক্ষা করেছি, এবং সেখানে বিন্দুগুলিও কাজ করে না। ড্যাশগুলি কাজ করে (উপরে একটি মন্তব্য যা বলে তার বিপরীতে)।
Law29

4

আমি মনে করি আপনি সম্ভবত আপনার ক্রোন ফাইলের শেষে একটি প্রয়োজনীয় ফাঁকা রেখা হারিয়ে গেছেন। আমার একই সমস্যা ছিল, তবে এখানে তালিকাভুক্ত সমস্ত কিছু (ব্যবহারকারীর অনুমতি, ফাইলের নাম, ক্রোন সংস্করণ ইত্যাদি) যাচাই করার পরে, আমি বুঝতে পেরেছিলাম যে আমার শেষ প্রবেশের পরে আমার লাইন ব্রেক ছিল না /etc/cron.d/own_cronএবং এর ফলে পুরো ফাইলটিকে উপেক্ষা করা হবে।


2

আপনি যদি এই কম্পিউটারে একমাত্র ব্যবহারকারী হন তবে আপনি কেবল ব্যবহার করতে চাইতে পারেন crontab -e। কমান্ডটি প্রথমবার চালানোর সময় আপনাকে সম্পাদক নির্বাচন করার অনুরোধ জানানো হবে। তারপরে আপনি এটিতে এটি যুক্ত করতে পারেন:

0,15,30,45 * * * * /backup.sh >/dev/null 2>&1

আপনি যদি কোনও সাধারণ ব্যবহারকারীর অ্যাকাউন্টে পরিবর্তন করেন তবে আপনাকে sudo crontab -eযে স্ক্রিপ্টগুলি নির্ধারণ করতে চান তা কনফিগার করতে আপনার ব্যবহার করতে হবে root

crontab -lএকবার ব্যবহার করে আপনি একটি সেট আপ করলে কেবল বর্তমান ক্রন্টব প্রদর্শিত হবে crontab -e। আপনার যদি /etc/cron.d/ এ ক্রোন ফাইল থাকে তবে এটি প্রদর্শিত হবে না crontab -l

এছাড়াও আপনি তা যাচাই করতে আপনার স্ক্রিপ্টের সঙ্গে এক্সিকিউটেবল হয় করতে হবে: chmod +x /backup.sh


1
ধন্যবাদ - এক্ষেত্রে ক্রন্টবটি এমন একটি প্রেক্ষাপটে সেট করা হয়েছে যা Dockerfileআমি সত্যিই করতে পারি না crontab -e- তবে তা যাইহোক একটি দরকারী তথ্য
জীবন

2

ক্রিয়াকলাপের জন্য * বাইয়ান ডিস্ট্রোস (রাস্পবিয়ানের মতো) আপনার -lক্রোন ডেমনের প্যারামিটার সক্ষম করতে হবে । এটি /etc/default/cronকনফিগারেশন ফাইল ব্যবহার করে করার পরামর্শ দেওয়া হয় , এটি সক্ষম করে EXTRA_OPTS


এটি হ্রাস করা হয়েছিল, তবে কিছু ক্ষেত্রে এটি সঠিক, যদিও ব্যাখ্যা করা হয়নি। দেবিয়ান-ভিত্তিক ক্রোস -lডিমন -এর বিকল্পটি /etc/cron.dডিরেক্টরিতে ফাইলের নামের একটি বর্ধিত সেটকে অনুমোদন দেয় , সুতরাং যদি কোনও বিন্দু থাকায় ফাইলটি যদি চুপচাপ উপেক্ষা করা হয়, তবে "অ্যাড-এল" বা "ডট অপসারণ" হয় সমস্যা সংশোধন করবে।
29

1

আপনার সংস্করণ পরীক্ষা করুন cron

দেখে মনে হচ্ছে আপনি যদি ডিলনের ক্রন্ড ব্যবহার করছেন তবে আপনাকে কোনও /etc/cron.dএন্ট্রিতে ব্যবহারকারীর দরকার নেই ।

আমার প্রায় বাকি চুলগুলি টেনে আনার পরে আমি এটি বের করেছিলাম।

আমার হাতে কয়েকটা এন্ট্রি রয়েছে যা /etc/cron.dবিভিন্ন ইনস্টল দ্বারা বাদ দেওয়া হয়েছে । কিছু তদন্তের পরে, আমি খুঁজে পেয়েছি তাদের মধ্যে একজন কাজ করছে। এটির ব্যবহারকারী ছিল না। তাই আমি অন্যকে ব্যবহারকারীর বাইরে নিয়ে গেলাম। এবং তারা কাজ শুরু করে।

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