2015-10-26 7 views
5

क्या यह पहचानना संभव है, यदि कोई लिनक्स शैल स्क्रिप्ट किसी उपयोगकर्ता या क्रोनबॉज द्वारा निष्पादित की जाती है?कैसे जांचें कि लिनक्स शैल स्क्रिप्ट को cronjob द्वारा निष्पादित किया गया है या नहीं?

यदि हां, तो मैं एक क्रोनबॉब द्वारा शेल स्क्रिप्ट निष्पादित होने पर कैसे पहचान/जांच कर सकता हूं?

मैं अपनी स्क्रिप्ट में एक सुविधा को कार्यान्वित करना चाहता हूं, जो कुछ अन्य संदेशों को देता है जैसे कि यह किसी उपयोगकर्ता द्वारा निष्पादित किया जाता है। उदाहरण के लिए:

if [[ "$type" == "cron" ]]; then 
     echo "This was executed by a cronjob. It's an automated task."; 
    else 
     USERNAME="$(whoami)" 
     echo "This was executed by a user. Hi ${USERNAME}, how are you?"; 
    fi 
+0

पर्यावरण चर का उपयोग करें? '* * * * * CRON_FIRED = सत्य/पथ/से/माइस्क्रिप्ट' लेकिन ध्यान दें कि वाक्यविन्यास [क्रॉन कार्यान्वयन के अधीन है] (http://stackoverflow.com/a/10657111/2908724) और इसे छोटे से बेवकूफ भी बनाया जा सकता है । – bishop

उत्तर

6

एक विकल्प यह जांचना है कि स्क्रिप्ट एक tty से जुड़ा हुआ है या नहीं।

#!/bin/sh 

if [ -t 0 ]; then 
    echo "I'm on a TTY, this is interactive." 
else 
    logger "My output may get emailed, or may not. Let's log things instead." 
fi 

ध्यान दें कि at(1) द्वारा चलाई नौकरियों भी एक tty के बिना चलाए जा रहे हैं, हालांकि विशेष रूप से नहीं क्रॉन द्वारा।

ध्यान दें कि यह POSIX है, लिनक्स- (या bash-) विशिष्ट नहीं है।

+0

Thx, समाधान लगता है। मैं हमेशा भूल जाता हूं, जहां मैं उपलब्ध 'if' परीक्षण पैरामीटर की सूची पा सकता हूं जैसे -n, -x, -f साथ ही साथ आपके उपयोग किए गए -t। मुझे यह सूची कहां मिल सकती है? मैं पढ़ना चाहता हूं, वास्तव में '-t' का क्या अर्थ है। पॉज़िक्स का मतलब है कि यह हर लिनक्स वितरण पर काम करता है, है ना? – user2966991

+1

@ user2966991 जो http://pubs.opengroup.org/onlinepubs/9699919799/utilities/test.html या 'मैन 1p test' –

+1

@ user2966991 इस मामले में POSIX का अर्थ है कि इसे किसी भी POSIX-compliant shell के साथ काम करना चाहिए। ऐसे गोले विंडोज पर भी मिल सकते हैं, और तकनीकी रूप से, आपके पास एक पॉज़िक्स शैल के बिना एक लिनक्स डिस्ट्रो हो सकता है। –

संबंधित मुद्दे

 संबंधित मुद्दे