"पर" कमांड काम नहीं कर रहा है


2

मैं एक नौकरी शेड्यूल करना चाहता था at कमांड और यह त्रुटि देखें:

    [root@labeir1 exm]# date
    Sun Dec  9 01:54:45 IST 2012
    [root@labeir1 exm]# at 01:47 "df -kh"
    syntax error. Last token seen: d
    Garbled time

यहां तक ​​कि बिना उद्धरण के भी काम नहीं करता है।

जबकि जब मैं एक ही कमांड को इस तरह निष्पादित करता हूं:

    [root@labeir1 exm]# echo df -kh | at 01:47
    job 4 at 2012-12-10 01:47

यह दर्शाता है कि नौकरी निर्धारित है, लेकिन उस विशेष समय में मुझे आउटपुट नहीं दिखता क्या यह नहीं है कि आउटपुट कंसोल पर देखा जाएगा?

जवाबों:


3

नहीं, आउटपुट कंसोल पर दिखाई नहीं देगा। मुझे उम्मीद है कि आउटपुट आपको ई-मेल किया जाएगा। प्रयत्न

echo df –kh | at –m 01:47

स्पष्ट रूप से ई-मेल के लिए पूछें, या

echo "df –kh > df_output.txt" | at 01:47

एक फ़ाइल को लिखने के लिए।


1

कुछ इस तरह की कोशिश करें:

mesg y # this is just to make sure you may write to your user
at now + 1 min
at>df -kh | write $USER
at>^D

अगर वह काम नहीं करता है, तो आप या तो नहीं मिला है util-linux के साथ स्थापित pty-helper ध्वज सक्षम या आपको वह डिस्प्ले निर्दिष्ट करने की आवश्यकता है जिसमें आप आउटपुट चाहते हैं (यह संभवतः है $DISPLAY )

ध्यान दें कि यदि आप कुछ ऐसा करते हैं:

at now + 1 min
at>xterm
at>^D 

यह संभवत: तब काम करेगा जब आपको xterm इंस्टॉल हो गया है (जो भी टर्मिनल आप उपयोग करते हैं, उसका परीक्षण करें)। इसलिए, मैं अनुमान लगा रहा हूं कि वास्तविक समस्या यह है कि कमांड को पृष्ठभूमि में निष्पादित किया जा रहा है और आपको उस स्ट्रिंग को खींचने की जरूरत है जिसे आप चाहते हैं और इसके साथ आपको जो कुछ भी करना है वह कर सकते हैं (शायद इसे किसी भी उपयोगकर्ता को भेजें write या wall आदेशों)।


0

को हटाने का प्रयास करें :, इसलिए :

echo 'df -kh' | at 0147

यदि आपको लगता है कि उत्तर उपयोगी है, तो आप इसे 'अपवोट' कर सकते हैं। आप उत्तर को 'आउट' भी स्वीकार कर सकते हैं checkmark (हरा हो जाएगा), इस तरह, वेबसाइट पर खोज करने वाले लोगों को पता चल जाएगा कि प्रश्न का उत्तर अच्छी तरह से है। कि स्टैकचेंज वेबसाइट कैसे काम करती है, धन्यवाद;)
Gilles Quenot

6
पुष्टि संदेश job 4 at 2012-12-10 01:47 बताता है कि at पार्स कर रहा है 01:47 सही ढंग से।
Scott

0

थोड़ा-सा साइड-नोट, लेकिन जैसा कि मैं हमेशा "गरबेदार समय" के आउटपुट से जूझता रहा हूं at, मुझे लगा कि मैं इसके लिए अपना फिक्स शेयर करूंगा। मेरा समाधान एक समारोह में लपेटना और अधिक क्षमा करना, date तय समय संदेशों को ठीक करने के लिए।

function at {
  unset IFS
  MOMENT=$*
  AT=$(which at)

  # First try at to see if I finally figured out to produce non-garbled time
  if ${AT} ${MOMENT} 2>/dev/null
  then
    # worked allright, we can exit
    exit
  else
    # We produced garbled time (duh), so let's fix this with date
    MOMENT=$(date --date "${MOMENT}" +'%Y%m%d%H%M')
  fi

  # and try again
  ${AT} -t ${MOMENT}
}

यह उन प्रणालियों पर सबसे अच्छा काम करता है जिनमें जीएनयू तिथि स्थापित है (अधिकांश लिनक्स सिस्टम)।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.