मुझे क्रोन में $ RANDOM के साथ एक अजीब समस्या है। मैं क्रोनजोब की आग के बाद एक कमांड को एक यादृच्छिक संख्या में निष्पादित करना चाहता हूं।
यह उदाहरण टर्मिनल में सीधे काम करता है और 30 सेकंड तक कमांड को विलंबित करता है (जो भी आप चाहते हैं उसके साथ कमांड को बदलें, यह वास्तव में एक गूंज है / dev / ttyUSB0):
sleep `expr $RANDOM \% 30` ; command
यदि एक ही लाइन को क्रॉस्टैब में रखा जाता है, तो कमांड हमेशा बिना देरी के तुरंत फायर करती है:
* * * * * sleep `expr $RANDOM \% 30` ; command
अगर मैं $ RANDOM के बिना एक अभिव्यक्ति का उपयोग करता हूं, तो यह ठीक काम करता है - यह 15 सेकंड की देरी करता है:
* * * * * sleep `expr 10 + 5` ; command
दूसरे शब्दों में, ऐसा लगता है कि $ RANDOM एक क्रोन में काम नहीं करता है।
लेकिन यह केवल इसलिए नहीं है क्योंकि $ RANDOM खुद शून्य का मूल्यांकन करता है, क्योंकि तब इसमें 10 की देरी होनी चाहिए:
* * * * * sleep `expr $RANDOM \% 30 + 10` ; command
मैंने & amp; के साथ भी प्रयास किया है के बजाय ; लेकिन वह मदद नहीं करता है। वास्तव में, फिर कमांड बिल्कुल भी फायर नहीं करता है!
मैं निश्चित रूप से एक स्क्रिप्ट में देरी को जगह दे सकता हूं, जिसे तब क्रॉस्टैब से बुलाया जाता है, लेकिन यह मेरी समस्या को नहीं समझाता है और मुझे परेशान नहीं करता है :-)
यह डेबियन लेनी है अगर इससे कोई फर्क पड़ता है।
/bin/sh
एक वास्तविक शेल नहीं था, केवल डेबियन पर सिसडमिन (आमतौर पर बैश या डैश) के पसंदीदा शेल के लिए एक सिम्लिंक था।