जवाबों:
इसका उद्देश्य watch
कमांड के परिणामों को पूर्ण-स्क्रीन दिखाना और लगातार अपडेट करना है; यदि आप आउटपुट को किसी फ़ाइल में रीडायरेक्ट कर रहे हैं और इसे बैकग्राउंड कर रहे हैं तो वास्तव में पहली जगह में घड़ी का उपयोग करने का कोई कारण नहीं है।
यदि आप देरी के साथ बार-बार कमांड चलाना चाहते हैं ( watch
डिफ़ॉल्ट रूप से दो सेकंड प्रतीक्षा करता है), तो आप कुछ इस तरह का उपयोग कर सकते हैं:
while true; do
cmd >> output.txt
sleep 2
done
यहाँ एक तरीका है:
watch -n 1 'date' &>/dev/null &
चूंकि आप प्रक्रिया को पृष्ठभूमि में रखते हैं, इसलिए हम मान सकते हैं कि आपको टर्मिनल डिस्प्ले की आवश्यकता नहीं है और आप किसी फ़ाइल पर रीडायरेक्ट कर रहे हैं। यदि आप ऐसा करते हैं, तो आप watch
बिना किसी समस्या के पृष्ठभूमि के लिए सक्षम होंगे ।
sleep
के रूप में माइकल Mrozek द्वारा सुझाव दिया, धीरे-धीरे अंतराल होगा जो अवांछनीय हो सकता है। एक जटिल शेल स्क्रिप्ट के अलावा जो सिस्टम के समय की निगरानी करता है और बीते हुए समय के आधार पर एक कमांड निष्पादित करता है, watch -p
सटीक टाइमिंग के लिए एक अच्छा विकल्प हो सकता है।
सटीक समय के लिए:
watch -n 1 -p 'date' &>/dev/null &
&
दो बार उपयोग करना क्यों संभव है ?
man bash
पहले कैसे &
काम करता है, यह देखने के लिए पाइपलाइन अनुभाग पढ़ें । ;)
मुझे आपकी प्रेरणाओं पर यकीन नहीं है, लेकिन शायद यह पर्याप्त होगा?
while true; do sleep 2; cmd >>output.txt; done &
अन्यथा, कृपया स्पष्ट करें कि आपको वास्तव में इसकी आवश्यकता क्यों है watch
।
आपकी प्रेरणाओं पर निर्भर करता है:
आप समय-समय पर कुछ चलाना चाहते हैं। तब आप सीधे क्रोन का उपयोग कर सकते थे। (यदि आपके उद्देश्यों के लिए 1 मिनट की समय ग्रैन्युलैरिटी पर्याप्त है)
आप केवल बार-बार कुछ चलाना चाहते हैं:
while sleep 2 ; do
cmd
done >& log.txt
(आप इसे उदाहरण के लिए क्रॉस्टैब से चला सकते हैं, हालांकि स्क्रिप्ट का उपयोग करना अत्यधिक अनुशंसित है)।
आप समय-समय पर एक कमांड चलाना चाहते हैं और इसके अंतिम निष्पादन के आउटपुट तक पहुंच रखते हैं।
आप एक रम्फ को आउटपुट लिख सकते हैं (पहले स्क्रिप्ट को संशोधित करते हुए):
while sleep 2 ; do
cmd >& last_execution.log
done
या इससे भी बेहतर:
while sleep 2 ; do
cmd >& last_execution.log.tmp
mv last_execution.log.tmp last_execution.log ## atomically
done
आप गठबंधन कर सकते हैं screen
और watch
, ताकि आप हमेशा नवीनतम स्थिति की जांच कर सकें, जब तक कि यह एक स्क्रीनफुल में फिट न हो जाए:
screen watch -n 3660 ./make-backup.sh
आप स्क्रीन कमांड का उपयोग कर सकते हैं।
http://www.cyberciti.biz/tips/linux-screen-command-howto.html