rsyslog आउटपुट नहीं पकड़ रहा है?


0

मैं धक्का कर सकते हैं / से तो जैसे rsyslog के आदेश:

ping www.superuser.com 2>&1 | logger -p user.info

मेरे सिस्टम पर, "लाइव" आउटपुट को एक सरल के साथ देखा जा सकता है tail -f /var/log/messages। यह मेरे में इसी लाइन की वजह से वहाँ जाता है /etc/rsyslog.config:

# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none                -/var/log/messages

हालाँकि, मेरे कस्टम प्रोग्राम के लिए वही काम नहीं करता है:

myprogram 2>&1 | logger -p user.info

मायप्रोग्राम बाइनरी कॉल के तुरंत बाद वापस नहीं आती / बाहर निकल जाती है - यह कुछ समय के लिए चलेगी - और अब हर बार और फिर संदेश (प्रिंटफ़ का उपयोग करके) कंसोल पर प्रिंट करेंगी। यह इस तरह से व्यवहार करता है अगर मैं लकड़हारा में इसके उत्पादन को पाइप नहीं करता हूं। अगर मैं गलत हूं तो मुझे सुधारें, लेकिन यह व्यवहार कमांड के समान है (कम से कम जब गंतव्य पर पहुंच जाता है)।

फिर मैं मायप्रोग्राम का आउटपुट क्यों नहीं देख रहा हूँ /var/log/messages? क्या आउटपुट किसी तरह बफ़र किया जा सकता है और यह अभी तक लकड़हारे को नहीं मिल रहा है? क्या यह rsyslog.confविन्यास रेखा के बारे में कुछ और हो सकता है ?

जवाबों:


0

यह myprogramबफ़र्ड होने से आउटपुट था । इस प्रश्न में वर्णित ट्रिक्स का उपयोग करके मैं एक त्वरित समाधान के साथ आया:

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