/ ইত্যাদি / ক্রন্টবের ফর্ম্যাটটি যাচাই করার কোনও উপায় আছে?


35

আমি / etc / crontab এ তফসিলযুক্ত কাজগুলি আটকে রাখতে পছন্দ করি যাতে কোন চালকটি নির্ধারিত হয় তা নির্বিশেষে আমি কী চালানোর জন্য নির্ধারিত তা এক নজরে দেখতে পারি।

একমাত্র গোটচা হ'ল ক্রোন্টাব-এর বিপরীতে সংরক্ষণের ক্ষেত্রে ফর্ম্যাটটি বৈধতা দেওয়া হয়নি - সুতরাং কোনও বিপথগামী চরিত্রটি পুরো ক্রোনটি শান্তভাবে ভেঙে ফেলতে পারে।

সংরক্ষণ করার আগে / পরে / etc / crontab ফর্ম্যাটটি বৈধ করার কোনও উপায় আছে কি?


4
যদি, আমার মতো, আপনি যদি এখানে ক্রোন প্রবেশ সঠিকভাবে পেয়েছেন কিনা তা জানার জন্য একটি সহজ ( লিপিবিহীন) উপায়ের সন্ধান করতে এসেছিলেন , আপনি ক্রোনচেকার ডটনে আগ্রহী হতে পারেন - এটি ক্রুউন প্রবেশদ্বারগুলির জন্য হিউম্যান - বন্ধুত্বপূর্ণ আউটপুট
ম্যাট গিবসন

উত্তর:


17

আমি খুঁজে পাওয়া একমাত্র নির্ভরযোগ্য উপায় লগ চেক করা।

cron/etc/crontabপ্রতি মিনিটে যাচাই করে এবং একটি বার্তা লগ করে যা নির্দেশ করে যে এটি এটি পুনরায় লোড করেছে, বা এটি একটি ত্রুটি পেয়েছে।

সুতরাং সম্পাদনার পরে, এটি চালান:

sleep 60; grep crontab /var/log/syslog | tail

বা, পুরো মিনিট অপেক্ষা না করার জন্য, তবে কেবল পরবর্তী মিনিট + 5 সেকেন্ড পর্যন্ত:

sleep $(( 60 - $(date +%S) + 5 )) && grep cron /var/log/syslog | tail

একটি ত্রুটিযুক্ত আউটপুট উদাহরণ:

Jan  9 19:10:57 r530a cron[107258]: Error: bad minute; while reading /etc/crontab
Jan  9 19:10:57 r530a cron[107258]: (*system*) ERROR (Syntax error, this crontab file will be ignored)

ভাল আউটপুট:

Jan  9 19:19:01 r530a cron[107258]: (*system*) RELOAD (/etc/crontab)

এটি ডিবিয়ান ৮-এ রয়েছে other অন্যান্য সিস্টেমে ক্রোন কোনও আলাদা ফাইলে লগইন করতে পারে।

(আমি ভেবেছিলাম সিস্টেমড ব্যবহার করে আমি সঠিক লগ ফাইলের জন্য শিকার এড়াতে পারব journalctl -u cron, তবে এটি আমাকে এই লগ এন্ট্রিগুলি দেখায় নি, এবং সম্ভবত 2 দিন আগে কোনও কারণে ক্রোন ইভেন্টগুলি লগিং বন্ধ করে দিয়েছে বলে মনে হয়)


ফ্রিবিএসডি 10.3-তে পরীক্ষা করা হয়েছে। কবজির মতো কাজ করে, কেবলমাত্র / var / লগ / ক্রোন দিয়ে লগ পাথটি প্রতিস্থাপন করুন
জেটে


11

দুষ্ট শীতল শেল স্ক্রিপ্টগুলিতে একটি শেল স্ক্রিপ্ট রয়েছে যা ক্রন্টব ফাইলগুলি বৈধ করে।

আপনি এখানে স্ক্রিপ্টযুক্ত জিপ সংরক্ষণাগারটি পেতে পারেন

স্ক্রিপ্টটিকে ভেরিফিক্রন বলে


1
উত্সটিও বইটির জন্য সাইটে রয়েছে: স্বজ্ঞাত ওয়েবসাইট / উইকড / শোগসক্রিপটি.জি ? 053-verifycron.sh সত্যই সেই বইটির মতো।

লিঙ্কটি 11
Epskampie

3

আমি এই দুর্দান্ত সমাধানটি এখানে পেয়েছি: https://crontab.guru

এটি কেবল ক্রন্টবকে বৈধতা দেয় না, এটি আপনাকে ক্রন্টাব কী এবং কখন চলবে তা স্পষ্টভাবে বলে দেয় এবং ত্রুটিগুলি কোথায় তা হাইলাইট করে।


0

উবুন্টুতে, মনে হচ্ছে আমি কেবল চালাতে পারি:

crontab path/to/crontab/file

দ্রষ্টব্য: এই ক্রোনজব শুরু করার পার্শ্ব প্রতিক্রিয়া রয়েছে (ধন্যবাদ @ এনজেডডি)

যদি ফাইলটি অবৈধ হয় তবে আমি একটি ত্রুটি করব, যেমন:

"crontab":11: bad minute
errors in crontab file, can't install.

1
এই কমান্ডটি ক্রন্টব ফাইলটি পরীক্ষা করে তবে একই সাথে এটি ইনস্টল করে (যদি এতে কোনও ত্রুটি না থাকে)। এটি সম্ভবত ওপি-র জন্য একটি অযাচিত পার্শ্ব-প্রতিক্রিয়া।
এনজেডডি

ধন্যবাদ @ এনজেডডি, ওপি সচেতন কিনা তা নিশ্চিত করতে আমি আমার জবাবটিতে এটি যুক্ত করেছি।
conradkdotcom

@ কনডাক কমান্ডটি ক্রোনজব শুরু করে না, এটি ব্যবহারকারীর বিদ্যমান ক্রন্টব ফাইলটি সরবরাহ করা ফাইলের সাথে ওভাররাইট করে।
ম্যাডহ্যাটার মনিকা 22

এটি ক্রোনট্যাব সহ সমস্ত সম্ভাব্য সমস্যার জন্য আসলে কাজ করে না; এটি কিছু সুস্পষ্ট সমস্যা ধরবে, তবে এটি এটি ধরা দেয় না, উদাহরণস্বরূপ: * 4/0 * * /bin/myscript.sh - এটি 4/0অবৈধ। তবে এই পদ্ধতিতে ধরা পড়ে না
জেডিএস

@ জেডিএস কি এটি একটি ধাপের মূল্য নয়? 0নিষিদ্ধ একটি পদক্ষেপ মান ? unix.stackexchange.com/questions/32027/…
conradkdotcom
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.