ক্রোন জব কমান্ডের জন্য সরাসরি ইন্টারেক্টিভ শেলটিতে টাইপ করা কমান্ডের সাথে তুলনামূলকভাবে সাধারণ আচরণের জন্য আলাদাভাবে আচরণ করার জন্য তিনটি সাধারণ কারণ রয়েছে:
- ক্রোন সীমিত পরিবেশ সরবরাহ করে, যেমন, একটি সর্বনিম্ন
$PATHএবং অন্যান্য প্রত্যাশিত ভেরিয়েবলগুলি অনুপস্থিত।
- ক্রোন
/bin/shডিফল্টরূপে প্রার্থনা করে, আপনি হয়ত অন্য কিছু শেল ইন্টারেক্টিভভাবে ব্যবহার করতে পারেন।
- ক্রোন
%চরিত্রটি বিশেষভাবে আচরণ করে (এটি কমান্ডের একটি নতুন লাইনে রূপান্তরিত হয়)।
- ক্রোন কোনও টার্মিনাল বা গ্রাফিকাল পরিবেশ সরবরাহ করে না।
আপনার অবশ্যই সমস্ত %অক্ষর \একটি ক্রন্টব ফাইলের সাথে অবশ্যই আগে রয়েছে , যা ক্রোনকে কমান্ডটিতে মাত্র একটি শতাংশ রাখতে বলেছে। মনে রাখবেন আপনি যখন dateক্রোন কাজের ক্ষেত্রে কমান্ডটি ব্যবহার করবেন ।
55 8 * * 3 /usr/bin/php /home/mark/dev/processes/customClient/events.php > "/home/mark/dev/processes/customClient/events-$(date +\%Y-\%m-\%d --date='last Wednesday')-$(date +\%Y-\%m-\%d).csv"
0 9 * * 3 /usr/bin/echo 'The csv for last week, trying my hand at automatiging this' | /usr/bin/mutt <emailaddress> -s "Events from $(date +\%Y-\%m-\%d --date='last Wednesday')-$(date +\%Y-\%m-\%d)" -a "/home/mark/dev/processes/customClient/events-$(date +\%Y-\%m-\%d --date='last Wednesday')-$(date +\%Y-\%m-\%d).csv"
আমি কিছু উদ্ধৃতি সমস্যাগুলিও ঠিক করেছি:
- এটি আপনাকে সুশৃঙ্খলতা ব্যতীত অন্য কোনও সমস্যা সৃষ্টি করে না, তবে আপনার কমান্ড প্রতিস্থাপনের জন্য ব্যাকটিক্স ব্যবহার করা উচিত নয়।
$(…)পরিবর্তে ব্যবহার করুন: এর পার্সিং বিধিগুলি সহজ।
- ভেরিয়েবল এবং কমান্ড বিকল্পের চারপাশে সর্বদা ডাবল উদ্ধৃতি ব্যবহার করুন:
"$somevariable", "$(somecommand)"। এখানে উদ্ধৃতিগুলির অভাব নিরীহ ছিল কারণ dateকমান্ডটি আপনি যে ফর্ম্যাটগুলি ব্যবহার করেছিলেন তার জন্য কোনও বিশেষ চরিত্র ফেরত দেয়নি, তবে আপনাকে অবশ্যই সাবধানে মনে রাখতে হবে কোন অক্ষরগুলি বিশেষ and এটিকে সহজ রাখুন, যদি না আপনি ফলাফলটি ক্ষেত্রের বিভাজন এবং ফাইলের নাম তৈরি করতে চান তবে ডাবল উদ্ধৃতি ব্যবহার করুন।
- কিছু কমান্ড বিকল্পের চারপাশে সম্প্রসারণ রোধ করার জন্য আপনার কয়েকটি সিঙ্গল কোট ছিল। পরিবর্তে ডাবল উদ্ধৃতি ব্যবহার করুন।
/bin/sh: 1: Syntax error: EOF in backquote substitutionপ্রথম ক্রোন কাজের জন্য।/bin/sh: 1: Syntax error: Unterminated quoted stringদ্বিতীয় ক্রোন কাজের জন্য।