शीर्ष आदेश का उपयोग करते हुए क्रोन स्क्रिप्ट और TERM परिभाषा के साथ समस्याएं


11

मुझे अपने सर्वर में वर्तमान सीपीयू उपयोग की जांच करने के लिए क्रॉन प्रक्रिया को निष्पादित करने में समस्या है।

मेरी स्क्रिप्ट के साथ शुरू:

top -c -n 1 -u www-data > /tmp/kill-cpu

मैं कंसोल में समस्या के बिना निष्पादित कर सकता हूं, लेकिन क्रोन में मुझे मिलता है

शीर्ष: असफल tty मिलता है

अगर मैं टॉप के लिए -b विकल्प का उपयोग करता हूं

top -b -n 1

मुझे मिला

'गूंगा': अज्ञात टर्मिनल प्रकार।

मैं xterm का उपयोग TERM के रूप में कर रहा हूँ

आपकी मदद के लिए धन्यवाद :)
Lito

समाधान: मैं इस समस्या को हल करने में सक्षम था:

ln -s /lib/terminfo/d/dumb /usr/share/terminfo/d/dumb

जवाबों:


8

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

TERM=vt100 top -b -n 1

यह "शीर्ष" कमांड के साथ निष्पादित करने के लिए TERM चर सेट करेगा।

लेकिन आपकी अंतर्निहित समस्या यह है कि आपका समाप्त डेटाबेस अपूर्ण या टूटा हुआ है। मेरे पास देखने के लिए एक डेबियन मशीन नहीं है, लेकिन उबंटू बॉक्स पर, "डंब" टर्मकैप जानकारी फ़ाइल / usr / share / termfo / d / dumb में है। यह फ़ाइल Ubuntu 8.04 और 10.04 पर ncurses- बेस पैकेज का हिस्सा है। RHEL पर, यह ncurses पैकेज का हिस्सा है। शायद आपकी स्थापना केवल इस फ़ाइल को याद कर रही है?


हां, मैं शीर्ष स्रोत में चारों ओर खुदाई कर रहा था और यदि आप बैच मोड चुनते हैं तो यह TERM को गूंगा बनाता है।
user9517

नहीं, इस कमांड से समस्या हल नहीं होती है: root @ server: ~ # TERM = vt100 top -b -n 1 'dumb': अज्ञात टर्मिनल प्रकार। root @ server: ~ # ls / usr / share / termfo / d / dumb ls: / usr / share / termfo / d / dumb: ऐसी कोई फ़ाइल या निर्देशिका नहीं है जिसके पास / usr / share / termfo / d / folder में 286 फाइलें हों
लिटो

ठीक है, आपको यह पता लगाना होगा कि उस सिस्टम से / usr / share / termfo / d / dumb फ़ाइल क्यों गायब है। जैसा कि कहा गया है, मेरे पास खेलने के लिए एक डेबियन बॉक्स नहीं है। उबंटू पर, उस फ़ाइल को प्रदान करने वाला पैकेज "ncurses-base" है। शायद आप डेबियन पर किस पैकेज की आवश्यकता का पता लगाने के लिए "एप-कैश सर्च डंब" कर सकते हैं। मुझे लगता है कि आप अपने काम करने वाले डेबियन बॉक्स से भी फाइल कॉपी कर सकते हैं, लेकिन यह पता लगाना बेहतर होगा कि क्या पैकेज गायब है या टूट गया है।
cjc

हां, apt-cache खोज गूंगा | grep टर्म = ncurses-base लेकिन पैकेज को स्थापित / पुनः स्थापित करना मेरी समस्या का समाधान नहीं करता है। मेरे अन्य (विकास) डेबियन 6 सर्वर (उत्पादन के समान संस्करण) में मैं समस्याओं के बिना "टॉप-बी" को निष्पादित कर सकता हूं और मैंने यह डंब टर्म फाइल नहीं किया है ...
लिटो

"स्ट्रेस टॉप -b -n 1 2> & 1 | grep टर्म" जैसा कुछ चलाएं। यह आपको टर्मऑफ़ फ़ाइलों को दिखाएगा कि "शीर्ष" कमांड एक्सेस कर रहा है। बॉक्स पर ऐसा करें सब कुछ काम कर रहा है, और जिस बॉक्स पर यह काम नहीं कर रहा है। मैंने अभी इसे एक आरएचईएल बॉक्स पर चलाया, और यह ~ / .terminfo / d / dumb में सबसे पहले टर्मो के लिए दिखता है। संभवतः, दूसरे बॉक्स पर क्रोन निष्पादित करने वाले उपयोगकर्ता के पास वह फ़ाइल है। यदि नहीं, तो "स्ट्रेस" दिखाएगा कि "टॉप" कमांड वास्तव में क्या कर रहा है।
cjc
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.