शेल स्क्रिप्ट कॉपी स्थिति जांचें


0

मेरे पास एक क्रोन स्क्रिप्ट है और मुझे इसे समायोजित करने की आवश्यकता है; वास्तव में कुछ क्लाइंट्स कुछ फाइलों को डायरेक्टरी में जनरेट कर रहे हैं, मेरा काम उस फाइल को एक टेप पर बैकअप देना है, और मुझे एक और बनाने की जरूरत है

cp $files $tape
if exit 0 
     then 
        send successfully mail 
        delete files
     else 
         send a fail mail 
         but don't delete that files
fi

क्या कोई मेरी मदद कर सकता है?

शायद ऐसा कुछ के साथ? वास्तव में कोड ऐसा है

    find $STR_FILES -print | backup -ivq -f $TAPE >> /tmp/logfile

आप कहते हैं कि मुझे ऐसा कुछ करना चाहिए?

    BKP='find $STR_FILES -print | backup -ivq -f $TAPE'
    $BKP >> /tmp/logfile
    if [$BKP -eq 0 ]
       then
       ...
       else
       ...
    fi

?

वास्तव में मैंने एक परीक्षा के रूप में किया था

वास्तव में मैंने cd / find / u01 -name ora_856562.aud किया

    if ["$?" = "0" ]; then
    rm /u01/app/oracle/product/10.2.0/db_1/rdbms/audit/ora_856562.aud
    (echo "Se depuraron  *.aud Ok") | mail -r oracle_alfa@notification.imcl-peoplesoft.com -s "Prueba if"  egrc77@hotmail.com
    else
    (echo "NO Se depuraron  *.aud Ok") | mail -r oracle_alfa@notification.imcl-peoplesoft.com -s "Prueba if"  egrc77@hotmail.com
    fi
    exit

लेकिन साथ विफल रहता है

    ./prueba.sh[3]: 0:  not found.
    ./prueba.sh[5]: [127:  not found.

जवाबों:


0

मैं गंभीरता से आपको इस कार्य के लिए उपयोगकर्ता rsync की सलाह दूंगा।

लेकिन विषय पर वापस, आपकी स्क्रिप्ट लगभग पूरी हो चुकी है, लेकिन आपको कुछ चीजों को ठीक करना होगा:

  • सशर्त को ठीक करने की आवश्यकता है। आपको कुछ इस तरह की आवश्यकता होगी:

    अगर [$? -एक ०]

सशर्त और इस तरह के बारे में यहां पढ़ें ।

  • आप कई कार्यक्रमों में से एक के साथ आसानी से सीएलआई से मेल भेज सकते हैं। मैं इसे उपयोग में आसानी के लिए भेजने की सलाह देता हूं। अधिक यहाँ

मेल स्क्रिप्ट कोड मेरे पास है और ठीक काम कर रहा है, वास्तव में यह कोड $ STR_FILES -print है backup -ivq -f $ TAPE >> $ TMP_LOG_DLS BKP = '$ STR_FILES -प्रणाली खोजे | बैकअप -ivq -f $ TAPE 'अगर [$ BKP -eq 0]?
user324868

$? चर अंतिम निष्पादित कमांड का निकास स्थिति रखता है। आपको $ BKP के मूल्य की जांच करने की आवश्यकता नहीं है, बस उस ऑपरेशन की निकास स्थिति जिसमें आप बैकअप करते हैं
ब्रूनो 9779

वास्तव में मैंने एक परीक्षण के रूप में किया
user324868

वास्तव में मैंने cd / find / u01 -name ora_856562.aud अगर ["$?" = "0"]; उसके बाद rm /u01/app/oracle/product/10.2.0/db_1/rdbms/audit/ora_856562.aud (echo "Se depuraron * .aud Ok") | mail -r oracle_alfa@notification.imcl-peoplesoft.com -s "Prueba अगर" egrc77@hotmail.com और (echo "NO Se depuraron * .aud Ok") | mail -r oracle_alfa@notification.imcl-peoplesoft.com -s "Prueba अगर" egrc77@hotmail.com Fi से बाहर निकलें
user324868
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.