जवाबों:
विधि 1
भले ही NetworkManager.conf लॉगिंग की अनुमति देता है, लेकिन यह स्पष्ट रूप से अभी भी syslog में जाता है। हालाँकि, kern.log में यह भी है।
grep 'associated' /var/log/kern.log | tail -n1
Jun 21 17:08:25 anaconda kernel: [ 4910.819781] wlan1: associated
विधि 2
मैंने पाया है कि NetworkManager अंतिम कनेक्शन समय को संग्रहीत करता है, और यह /var/lib/NetworkManager/timestamps
फ़ाइल में सॉर्ट किया जाता है, यूनिक्स युग समय प्रारूप (1970 के बाद सेकंड) में। उदाहरण के लिए मेरा ऐसा दिखता है:
$ cat /var/lib/NetworkManager/timestamps
[timestamps]
c562ac2d-8911-4273-b165-ed1495b28c9a=1432777079
46cfcdd9-d095-418f-acd6-0a7ca282bb9a=0
d81fb3d0-1717-42c0-903d-4622c2381597=1434895707
b0bdefe6-df88-49bb-83d8-154dd21d77d9=1433093286
नवीनतम प्रविष्टि दिखाने के लिए
date --date=@"$( awk -F'=' 'BEGIN {var=0}{if(var<$2) var=$2;} END{print var}' /var/lib/NetworkManager/timestamps )"
अक्क सबसे बड़े युग के समय (दूसरे शब्दों में नवीनतम) की खोज करेगा, और तिथि इसे मानव पठनीय रूप में बदल देगी।
मुझे यह भी संदेह है कि /var/lib/NetworkManager/timestamps
कनेक्शन के अंतिम समय को प्रदर्शित करने के लिए इस फाइल ( ) का उपयोग एडिटिंग कनेक्शन ग्राफिकल मेनू द्वारा किया जाता है
समस्या यह है कि यदि आप अभी भी एक एक्सेस प्वाइंट से जुड़े हैं, तो GUI रास्ता दिखाई now
नहीं देता है, वह समय जब कनेक्शन अंतिम स्थापित किया गया था
man NetworkManager.conf
, फ़ाइल है /etc/NetworkManager/NetworkManager.conf
; यह केवल डेमॉन में लॉगिंग सक्षम करने के बाद काम करने जा रहा है, लेकिन दुर्भाग्य से मुझे यह जांचने की आवश्यकता है कि यह मानकर कि मशीन को इसके लिए कॉन्फ़िगर नहीं किया गया है। वैसे भी kern.log
समाधान के लिए +1 और पहले समाधान के लिए जो अन्य मामलों में सहायक हो सकता है
आप उस फ़ाइल की जांच कर सकते /var/log/syslog
हैं जो पिछली बार आपके द्वारा नेटवर्क से कनेक्ट होने पर प्रदर्शित होगी।
उदाहरण
Jun 21 08:00:00 Ubuntu dhclient: DHCPREQUEST of 192.0.0.0 on wlan0 to 192.0.0.0 port 67 (xid=0xec7c6e7)
आप केवल लॉग से जो कुछ भी चाहते हैं उसे खींचने के लिए एक grep कमांड चला सकते हैं
< /var/log/syslog grep DHCPREQUEST
< /var/apt/syslog grep DHCPREQUEST
या रूपांतर।
DHCPREQUEST
विश्वसनीय नहीं है। मैं दोपहर से ऑनलाइन हूं और चूंकि मेरे पास बहुत से डीएचसीपी अनुरोध हैं।
जांच के CONNECTED_GLOBAL
बाद हमने पाया link connected
है/var/log/syslog
/link connected/,/CONNECTED_GLOBAL/
% awk '/link connected/,/CONNECTED_GLOBAL/ {line=$0} END{print line}' /var/log/syslog
Jun 21 11:12:54 sturm NetworkManager[736]: <info> NetworkManager state is now CONNECTED_GLOBAL Jun 21 11:12:54
% awk '/link connected/,/CONNECTED_GLOBAL/ {month=$1;day=$2;time=$3} END{print month,day,time}' /var/log/syslog
Jun 21 11:12:54
sudo
पहले एक की कोई आवश्यकता नहीं है , हालांकि इनमें से कोई भी काम नहीं कर रहा है, मुझे लगता है कि यह पॉसली की वजह से है [[:space:]]
। आप कौन सा संस्करण awk
चला रहे हैं?
sudo
हटा दिया गया। GNU Awk 4.1.1, API: 1.1 (GNU MPFR 3.1.2-p11, GNU MP 6.0.0)
%
;) यदि नीचे की पंक्ति में आउटपुट है
%
। सभी लेकिन यह सही है!
यदि आपको ऐसा करने का "सही" तरीका नहीं मिलता है, तो आप हमेशा अपना निर्माण कर सकते हैं!
निम्नलिखित बैश फ़ंक्शन आपको बताएगा कि आप ऑनलाइन (इंटरनेट पर) हैं या नहीं।
आपको बस एक स्क्रिप्ट लिखनी होगी जो इसे (लूप में और फिर सोती है) बुलाती है और अंतिम तिथि और समय को एक फ़ाइल (ओवरराइटिंग) में रिकॉर्ड करती है, इसलिए इसका सिर्फ नवीनतम मूल्य है)।
आपको लूप में कोड जोड़ना होगा, इसलिए यह शुरू में ही चेक करता है और इसे लॉग करता है (इसलिए आपकी प्रारंभिक स्थिति सही तरीके से सेट है)।
उसके बाद, आप केवल तभी लॉग इन करेंगे जब राज्य पहली बार ऑफ़लाइन हो जाएगा और जब वह ऑफ़लाइन होने के बाद पहली बार ऑनलाइन आएगा। यह समझाने की तुलना में कोड करना आसान है। ;)
यह सटीकता में सीमित होगा कि आप लूप में कितनी देर (नींद) का उपयोग करते हैं (इसे बहुत तंग लूप होने से बचाने के लिए जो कई सिस्टम संसाधनों का उपभोग कर सकता है।) यह शुरू होने से पहले जो कुछ भी होता है उससे अनजान होगा। या जब यह नहीं चल रहा है।
स्क्रिप्ट को स्वयं शुरू किया जा सकता है (बैकग्राउंड जॉब के रूप में ( &
मंगलाचरण के अंत में), संभवत: nohup
इसे तब तक चालू रखने के लिए जब इसकी मूल प्रक्रिया समाप्त हो जाती है) जब आपका उपयोगकर्ता इसे आपके $ HOME / .profile फ़ाइल से चलाकर लॉग इन करता है। इसे अपने डेस्कटॉप ऑटोस्टार्ट उपयोगिता (केडीई या गनोम) के साथ शुरू करना, एक क्रॉन जॉब से जो समय-समय पर यह देखने के लिए जांचता है कि क्या यह पहले से चल रहा है, या यहां तक कि आपके पास जो भी स्टार्टअप सिस्टम (init / systemd / etc) है, अगर आप ऐसा करना जानते हैं। उस।)
जब आपको ऐसा कुछ नहीं मिल सकता है, जो आप चाहते हैं, तो ऐसा करने के लिए अक्सर अपनी खुद की स्क्रिप्ट लिखना बहुत मुश्किल नहीं है और इसे पृष्ठभूमि में एक डेमॉन की तरह चलाएं।
यदि संभव हो तो इसे नियमित उपयोगकर्ता खाते से चलाना सबसे अच्छा है - जब तक कि आप इसे सी या पाइथन जैसी मजबूत भाषा में कोड नहीं करते हैं - क्योंकि शैल विशेषाधिकार मूल विशेषाधिकारों के साथ चलने से अक्सर सुरक्षा जोखिम पैदा होते हैं।
इस दृष्टिकोण का एक और मुद्दा है। कभी-कभी एक पिंग टाइमआउट आपको एक झूठी ऑफ़लाइन स्थिति देगा।
मेरे पास एक पूरी स्क्रिप्ट है, offline_alert , जो आप चाहते हैं के विपरीत बहुत कुछ करता है - जब मैं ऑफ़लाइन होता हूं तो मुझे अलर्ट करता है - लेकिन कोड उपयोगी साबित हो सकता है। इसका एक बेहतर ऑफ़लाइन फ़ंक्शन है जो पिंग टाइमआउट से झूठी सकारात्मक को कम करने का प्रयास करता है।
function offline {
## Test if offline
## Returns 0 if online, 2 if offline
local RC
ping -c 1 google.com > /dev/null 2>&1
RC=$?
##echo "offline returning [${RC}]"
return $RC
}
किसी भी सेवा / डेमन लॉग की जांच करने का एक तरीका जो इंटरनेट पर काम करने के लिए रिले है। उदाहरण के लिए NTP (नेटवर्क टाइम प्रोटोकॉल) अपडेट।
dpkg -L ntpdate
नेटवर्क स्थिति हुक के लिए देखें
वैसे भी मैंने उबंटू डेस्कटॉप के लिए इसके लॉग की जाँच की है, इसका अपडेट जब भी नेटवर्क चलता है और अंतिम अपडेट विफल होने पर छोटी देरी के बाद प्रयास करते रहते हैं। यह जोड़ता है ntp.ubuntu.com
।
(ध्यान दें, मैंने अपनी टिप्पणियों के लिए आउटपुट में पहला कॉलम जोड़ा)
$ grep -r ntpdate /var/log/syslog*
1st_trial Jul 14 00:35:56 user-VirtualBox ntpdate[774]: Can't find host ntp.ubuntu.com: Name or service not known (-2)
Jul 14 00:35:56 user-VirtualBox ntpdate[774]: no servers can be used, exiting
2nd_trial Jul 14 03:38:57 user-VirtualBox ntpdate[2571]: Can't find host ntp.ubuntu.com: Name or service not known (-2)
Jul 14 03:38:57 user-VirtualBox ntpdate[2571]: no servers can be used, exiting
3rd_trial Jul 14 03:46:09 user-VirtualBox ntpdate[2782]: Can't find host ntp.ubuntu.com: Name or service not known (-2)
Jul 14 03:46:09 user-VirtualBox ntpdate[2782]: no servers can be used, exiting
4th_trial Jul 14 03:47:48 user-VirtualBox ntpdate[2917]: step time server 91.189.89.199 offset 3.458355 sec
1st_trial Jul 14 10:23:07 user-VirtualBox ntpdate[728]: Can't find host ntp.ubuntu.com: Name or service not known (-2)
Jul 14 10:23:07 user-VirtualBox ntpdate[728]: no servers can be used, exiting
2nd_trial Jul 14 10:37:22 user-VirtualBox ntpdate[2099]: step time server 91.189.89.199 offset 2.021103 sec
dis-/re-con Jul 14 15:27:09 user-VirtualBox ntpdate[20174]: step time server 91.189.89.199 offset 1.677465 sec
1st_trial Jul 14 23:55:00 user-VirtualBox ntpdate[807]: Can't find host ntp.ubuntu.com: Name or service not known (-2)
Jul 14 23:55:00 user-VirtualBox ntpdate[807]: no servers can be used, exiting
2nd_trial Jul 15 00:00:24 user-VirtualBox ntpdate[2041]: step time server 91.189.94.4 offset 1.619839 sec
1st_trial Jul 15 05:39:08 user-VirtualBox ntpdate[767]: Can't find host ntp.ubuntu.com: Name or service not known (-2)
Jul 15 05:39:08 user-VirtualBox ntpdate[767]: no servers can be used, exiting
2nd_trial Jul 15 05:39:21 user-VirtualBox ntpdate[1088]: step time server 91.189.94.4 offset 2.897077 sec
1st_trial Jul 15 05:49:40 user-VirtualBox ntpdate[787]: Can't find host ntp.ubuntu.com: Name or service not known (-2)
Jul 15 05:49:40 user-VirtualBox ntpdate[787]: no servers can be used, exiting
2nd_trial Jul 15 05:49:50 user-VirtualBox ntpdate[1101]: adjust time server 91.189.94.4 offset 0.090520 sec
reconnect Jul 15 05:55:50 user-VirtualBox ntpdate[2251]: adjust time server 91.189.94.4 offset 0.261432 sec
reconnect Jul 15 06:04:53 user-VirtualBox ntpdate[2702]: step time server 91.189.94.4 offset 0.525658 sec
मैं पुष्टि करता हूं कि यह Ubuntu 14.04 LTS 64Bit डेस्कटॉप और सर्वर संस्करणों के लिए डिफ़ॉल्ट रूप से स्थापित है।
मैंने इसे वीएम में एक कोशिश दी, यह केवल समय दिखाता है जो जोड़ता है या फिर से जुड़ता है (इंटरनेट उपलब्ध है)। वह नहीं जो आप चाहते हैं (पिछली बार जुड़ा था)
ध्यान दें, syslog एक रोटेट लॉग है, यदि आप सभी लॉग को पुराने कंप्रेस्ड वाले को भी खोजते हैं, उपयोग करना चाहते हैं zgrep
zgrep -ih ntpdate /var/log/syslog* | sort -bn -k2
ntpdate
डिफ़ॉल्ट रूप से स्थापित है , लेकिन नहीं ntpd
/ openntpd
डेमॉन / सेवा जो अलग पैकेज में आती है। यह जाँचने के लिए कि आप समय और दिनांक को गलत में बदल देते हैं, फिर कनेक्ट करें फिर से कनेक्ट करें।
ntpdate
साथ इस्तेमाल किया जा सकता है cron
, यह एक सेवा (ntpd / openntpd) चलाने के समान परिणाम होगा। लेकिन आप डिफ़ॉल्ट कॉन्फ़िगरेशन की तलाश कर रहे हैं और कोई अतिरिक्त ट्यूनिंग नहीं है, है ना?