Crontab -e এ ভেরিয়েবল ব্যবহার করা সম্ভব?


13

আমি কি বলতে পারি:

MYPATH=/root/scripts  
MYSCRIPT=doit.sh

0 1 * * * $MYPATH/$MYSCRIPT

ভিতরে crontab -e?

এর মধ্যে ভেরিয়েবল ব্যবহার করা সম্ভব crontab -e?

উত্তর:


15

হ্যাঁ, আপনি এইভাবে ভেরিয়েবলগুলি সংজ্ঞায়িত করতে এবং ব্যবহার করতে পারেন। একটি সীমাবদ্ধতা রয়েছে (যা আপনি আপনার উদাহরণগুলিতে আঘাত করেন নি): =চিহ্নের ডানদিকে থাকা স্ট্রিংটি আক্ষরিক অর্থে ব্যাখ্যা করা হয়, নেতৃস্থানীয় স্পেসগুলি মুছে ফেলা হয়, সুতরাং আপনি কন্সট্রাক্টগুলি ব্যবহার করতে পারবেন না FOO=$BAR/qux(উদাহরণস্বরূপ PATH=$HOME/bin:$PATHদরকারী কিছু করবে না)।

এটি ডকুমেন্টেশনে বলা হয়েছে, যা আপনি চালিয়ে দেখতে পারেন

man 5 crontab

(নোট যে ম্যানুয়ালটির সেকশন 1 man crontabcrontab কমান্ডের ডকুমেন্টেশন দেখায় ; আপনি বিভাগ 5 নং crontab ফাইলের বিন্যাসের ডকুমেন্টেশন চান )


7

সবেমাত্র চেষ্টা করেছি, হ্যাঁ এটা সম্ভব। আপনি এই সাধারণ উদাহরণ দিয়ে এটি বের করতে পারেন, এটি আপনার মধ্যে রাখুন crontab:

যদি foo = কোয়ার্টি
* * * * * প্রতিধ্বনি $ এফইও> ~ / আউট

এবং ফাইলটি পরীক্ষা করুন ~/out(প্রতি মিনিটে আপডেট হওয়া), এতে থাকা উচিত "qwerty"


2
ওপি কীভাবে নিজের মতো করে একই জিনিস বের করতে পারে তা দেখানোর জন্য +1।
আর্থে

এর চেয়ে ভাল উদাহরণ লক্ষ্য স্ক্রিপ্টের ভিতরে OO FOO ব্যবহার করবে।
একিউম্যানাস

4

লিনাক্স ক্রন্টাবগুলি আক্ষরিক মান ধারণ করে এমন কিছু ভেরিয়েবল সংজ্ঞায়িত করার পক্ষে সমর্থন করলেও এটি একটি দীর্ঘ প্রতিনিধিত্বকে দীর্ঘ পাঠ্যকে ঘনীভূত করা বা ক্রোন নিজেই কিছু জিনিস নিয়ন্ত্রণ করার পাশাপাশি যেমন ইমেল আউটপুট প্রেরণ করা যায় তা ব্যবহার করে না।

নমনীয়তাটি বুঝতে পেরেছে যে ক্রোন প্রবেশের কমান্ড অংশটি ভিক্সি ক্রোন (সাধারণত লিনাক্স সিস্টেমে ইনস্টল হওয়া) ব্যবহার করে সিস্টেমে /bin/sh -cসংজ্ঞায়িত শেলটি পাঠানো হবে SHELL। কমান্ড লাইনের অবশিষ্ট অংশটি এর অর্থ একটি সাধারণ শেল স্ক্রিপ্ট। দ্রষ্টব্য: শেলটি কী ব্যবহৃত হচ্ছে তা উপলব্ধি করুন। লিনাক্স উপর /bin/shসাধারণত হয় /bin/bashতাই $( ... )এমবেডেড কমান্ড কাজ করে, কিন্তু এটা না পুরোনো সিস্টেমে যেখানে হবে /bin/shশুধুমাত্র বুঝতে পারে `পরিবর্তে।

উদাহরণস্বরূপ, আমার কাছে একটি সাধারণ ক্রন্টব লাইন রয়েছে যা একটি এমবিএক্স ফাইল সংরক্ষণ করা বার্তাগুলির মাসিক সংরক্ষণ করে এবং সংকুচিত করে। দেখে মনে হচ্ছে:

15 0 1 * *  nf=MailFeed-$( date +\%Y\%m ).mbx && cd Logs && mv MailFeed.mbx $nf && bzip2 -9 $nf

এটি প্রতি মাসের প্রথম বার 12 টা 12 মিনিটে চলবে, এতে সিসিওয়াইএমএম সহ একটি নতুন ফাইলের নাম সেট করবে, বর্তমান ফাইলটিকে নতুন নামে সরিয়ে নিয়ে সংকোচিত করবে। মনে রাখার বিষয়টি একটি অনির্বাচিত %(শতাংশের চিহ্ন) হ'ল একটি নতুন লাইন হিসাবে বিবেচিত হবে এবং এটি অনুসরণ করা তথ্যগুলি শতাংশ চিহ্নের পূর্ববর্তী কমান্ড হিসাবে স্টিডিন হিসাবে প্রেরণ করা হবে। এজন্য উপরের date +Y+mমতো স্বাভাবিক লেখা date +\%Y\%mরয়েছে।


-2

না আপনি ক্রোনজব করতে পারবেন না শুধুমাত্র ক্রোন আইটেম থাকতে পারে। এটি কি কোনও বাশ-স্ক্রিপ্ট তৈরি এবং ক্র্যাশজব মাধ্যমে বাশ স্ক্রিপ্টটি চালানোর বিকল্প নয়?


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