जवाबों:
मैं bashचर पर एक नज़र डालने का सुझाव देता हूं SECONDS:
SECONDS : हर बार जब इस पैरामीटर को संदर्भित किया जाता है, शेल इनवोकेशन के बाद से सेकंड की संख्या वापस आ जाती है। यदि कोई मान SECONDS को सौंपा गया है, तो बाद के संदर्भों पर लौटाया गया मान असाइन किए गए प्लस और असाइन किए गए मान के बाद से सेकंड की संख्या है।
इस प्रकार आप इस चर को स्क्रिप्ट के अंत में प्रिंट कर सकते हैं। वैकल्पिक रूप से, यदि आपका इरादा कार्यक्रम के केवल भाग के समय को मापने का है, तो बस SECONDS=0कमांड के मापा ब्लॉक की शुरुआत में सेट करें, और अंत में इस चर में संग्रहीत मान का उपयोग करें।
SECONDS=0एक स्क्रिप्ट और दूसरी स्क्रिप्ट पर एक ही चीज़ सेट करता हूं , तो क्या वे एक दूसरे के साथ हस्तक्षेप करेंगे?
START_TIME=$SECONDS; dosomething; ELAPSED_TIME=$(($SECONDS - $START_TIME))। यह एक साथ उपयोग के लिए थोड़ा अधिक लचीला लगता है।
अपनी कमांड को प्रीफ़ाइंड करें /usr/bin/timeऔर समय कमांड स्क्रिप्ट को चलाने के लिए लगने वाले समय को आउटपुट करेगा। यह कुछ bashविशिष्ट उपयोग करने की तुलना में अधिक पोर्टेबल है ।
उपयोग करते समय SECONDSऔर timeआपको सापेक्ष मूल्य देंगे। यदि आप ऑडिटिंग और रिपोर्टिंग प्रयोजनों के लिए पूर्ण मान रखना चाहते हैं, जब स्क्रिप्ट चलती थी और जब यह पूरी हो जाती है, तो आप अपने आदेशों से पहले और बाद में कुछ इस तरह की कोशिश करना चाह सकते हैं
date '+%Y%m%d%H%M%S.%N'। यह आपको एक बेहतर ग्रैन्युलैरिटी भी दे सकता है क्योंकि यह उप-सेकंड के अंतरों को पकड़ सकता है क्योंकि आपके पास ऐसी आज्ञाएं हैं pingजो सामान्य रूप से एक सेकंड के भीतर निष्पादित होती हैं।
अपनी स्क्रिप्ट को नेस्ट करें। ईमेल भेजने के लिए कई विकल्प हैं। मैं व्यक्तिगत रूप से इसके लिए msmtp का पक्ष लेता हूं, आप हेडर को "यहां" शैली (इनलाइन) को परिभाषित कर सकते हैं या एक अलग फाइल का उपयोग कर सकते हैं और उन्हें एक साथ जोड़ सकते हैं। इस से जुड़े सभी प्रकार के विकल्प हैं जिनमें पर्ल, पायथन आदि शामिल हैं।
Reply-To: someone@somehost
Sender: someone <someone@somehost>
To: somebody@somewhere.else
Subject: some subject
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Type: text/html; charset="iso-8859-1"
पीछे की खाली लाइन महत्वपूर्ण है। अपने इकट्ठे संदेश को msmtp में काटें:
cat assembled.eml | msmtp somebody@somewhere.else
एक निराशावादी समय की उचित संख्या तक सफलता पा लेता है।
पेलोड html भी हो सकता है, और php जेनरेट किया जा सकता है।
रात भर "बैची" ऑपरेशन के लिए एक बहुत ही बदसूरत विकल्प कहते हैं कि क्रोनजॉब बनाना है और आउटपुट को stdout / stderr के बदले में ईमेल किया जाता है।
$SECONDS; यह बहुत अच्छा है! इसे जोड़ने के लिए, आप सेकंड को घंटों: मिनटों में बदल सकते हैं: कुछ के साथ सेकंड जैसेdate -d "1970-01-01 ${SECONDS} sec" +'%k:%M:%S'(man dateअधिक स्वरूपण विकल्पों के लिए देखें )।