কোনও উবুন্টু মেশিনটি ইন্টারনেটের সাথে যুক্ত হওয়ার পরে আমি কোনটি নির্ভরযোগ্যভাবে পরীক্ষা করতে পারি?


24

কোনও উবুন্টু মেশিনটি ইন্টারনেটের সাথে যুক্ত হওয়ার পরে আমি কোনটি নির্ভরযোগ্যভাবে পরীক্ষা করতে পারি?

যদি এটি সম্ভব না হয় তবে কোনও উবুন্টু মেশিন কোনও নেটওয়ার্কের সাথে শেষবার সংযুক্ত হয়েছে তা যাচাই করার উপায়টি যথেষ্ট ভাল।

উত্তর:


28

পদ্ধতি 1

যদিও নেটওয়ার্কটি ম্যানেজার.কনফ লগিংয়ের অনুমতি দেয়, তবুও এটি স্পষ্টতই সিসলগে পড়ে। যাইহোক, kern.log এছাড়াও এটি আছে।

grep 'associated' /var/log/kern.log | tail -n1                               
Jun 21 17:08:25 anaconda kernel: [ 4910.819781] wlan1: associated

পদ্ধতি 2

আমি খুঁজে পেয়েছি যে নেটওয়ার্কম্যানেজার সর্বশেষ সংযোগের সময় সঞ্চয় করে এবং এটি /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) সংযোগের শেষ সময় প্রদর্শনের জন্য সম্পাদনা সংযোগগুলি গ্রাফিক্যাল মেনু দ্বারা ব্যবহৃত হয়

এখানে চিত্র বর্ণনা লিখুন

সমস্যাটি হ'ল আপনি যদি এখনও কোনও অ্যাক্সেস পয়েন্টের সাথে সংযুক্ত থাকেন তবে জিইউআই উপায় nowকখনই সংযোগটি প্রতিষ্ঠিত হওয়ার সময় তা প্রদর্শন করে না keeps


আমি ফাইলটি কোথায় খুঁজে পাব? :) এছাড়াও এটি কি শেষ বার মেশিনটি ইন্টারনেটের সাথে সংযুক্ত হয়েছে বা মেশিনটি সর্বশেষ কোনও নেটওয়ার্কের সাথে সংযুক্ত হয়েছে কিনা তা যাচাই করে? শেষ অবধি, এই কাজ কি পরে?
কোস

@ কোস স্পষ্টতই এখনও সিসলগের মধ্যে চলে যায়। আমি আরও কিছু গবেষণা করব, এবং আমি যদি কিছু খুঁজে পাই তবে আমি আমার উত্তর আপডেট করব।
সের্গেই কোলোডিয়াজনি

ঠিক আছে আমি পরীক্ষা করেছিলাম man NetworkManager.conf, ফাইলটি হয় /etc/NetworkManager/NetworkManager.conf; এটি ডিমনটিতে লগিং সক্ষম করার পরেই কাজ করবে, তবে দুর্ভাগ্যক্রমে আমার এটি পরীক্ষা করে নেওয়া দরকার যে ধরে নেওয়া যায় যে মেশিনটি এর জন্য কনফিগার করা হয়নি। যাইহোক kern.logসমাধানের জন্য এবং প্রথম সমাধানের জন্য +1 যা অন্যান্য ক্ষেত্রে সহায়ক হতে পারে
কোস

2
@ কোস তাই সেই ফাইলটিতে হেক্স-স্ট্রিং = ইপোক-টাইমস্ট্যাম্প রয়েছে। হেক্স স্ট্রিংগুলি অ্যাক্সেস পয়েন্ট। যুগের টাইমস্ট্যাম্পগুলি সংযোগের সর্বশেষ সময়। সেখানে আমার অজানা সংস্করণটি চেষ্টা করে দেখুন, আমি আমার উত্তরটি সম্পাদনা করেছি
সের্গি কলডিয়াজহনি

2
@ ডেডচেক্স আমি এক বছরের মধ্যেই বন্ধ ছিলাম :) ইতিমধ্যে সংশোধন করা হয়েছে
সের্গি কোলোডিয়াজনি

6

আপনি ফাইলটি চেক করতে পারেন /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)

লগ থেকে আপনার যা প্রয়োজন তা টানতে আপনি গ্রেপ কমান্ড চালাতে পারেন

< /var/log/syslog grep DHCPREQUEST 

1
+1, এখনও শেষবারের মতো এটি ইন্টারনেটে সংযুক্ত হওয়ার পরে চেক করার কোনও উপায়ের জন্য অপেক্ষা করছে। আজকের মধ্যে যদি কিছু না আসে তবে আমি এই উত্তরটি গ্রহণ করব। তবে আমি আপনাকে আরও কিছু ব্যবহারকারী-বান্ধব সমাধান যেমন < /var/apt/syslog grep DHCPREQUESTবৈচিত্রের প্রস্তাব দিতে চাই।
কোস

1
DHCPREQUESTনির্ভরযোগ্য নয়। আমি বিকেল থেকেই অনলাইনে আছি এবং যেহেতু আমার কাছে প্রচুর ডিএইচসিপি অনুরোধ ছিল।
এবি

আপনি যে মন্তব্য করেছেন মনে হয় আপনার মন্তব্যে লগের জায়গায় ভুল করে যথাযথভাবে রেখেছেন।
শ্রী

@ শ্রী সত্যই, এটি একটি স্লিপ ছিল। ভাগ্যক্রমে ওপি এর জন্য পড়ে না!
কোস

5

পরীক্ষা করে দেখুন 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সরানো হয়েছে। জিএনইউ আওক 4.1.1, এপিআই: 1.1 (জিএনইউ এমপিএফআর 3.1.2-পি 11, জিএনইউ এমপি 6.0.0)
এবি

ঠিক আছে এখন এটি কাজ করছে :)। +1
কোস

@ কোস আমার দরকার %;) নীচের লাইনে যদি আউটপুট থাকে
বি

1
আমি পছন্দ করি না %। এই সব কিন্তু নিখুঁত!
হেলিও

2

যদি আপনি এটি করতে "সঠিক" উপায়টি না খুঁজে পান তবে আপনি সর্বদা নিজের তৈরি করতে পারেন!

আপনি যদি অনলাইনে (ইন্টারনেটে) থাকেন বা না থাকেন তবে নীচের ব্যাশ ফাংশনটি আপনাকে জানাবে।

আপনাকে কেবল একটি স্ক্রিপ্ট লিখতে হবে যা এটিকে ডাকবে (একটি লুপে এবং তারপরে ঘুমায়) এবং একটি ফাইলের কাছে শেষ তারিখ এবং সময় রেকর্ড করবে (ওভাররাইটিং, সুতরাং এটির ঠিক সর্বশেষতম মান রয়েছে)।

আপনাকে লুপটিতে কোড যুক্ত করতে হবে যাতে এটি প্রাথমিকভাবে ডাকা হয় এবং লগ হয় তার সাথে সাথে এটি পরীক্ষা করে (যাতে আপনার প্রাথমিক অবস্থাটি সঠিকভাবে সেট করা থাকে)।

এর পরে, আপনি কেবল তখনই আবার লগইন করতে পারবেন যখন রাজ্যটি প্রথম অফলাইন হয় এবং যখন অফলাইনে থাকার পরে এটি প্রথম অনলাইনে আসে। কোড দেওয়ার থেকে ব্যাখ্যা করা সহজ। ;)

আপনি লুপটিতে কতক্ষণ বিলম্ব (ঘুম) ব্যবহার করেন এটি দ্বারা নির্ভুলতার মধ্যে এটি সীমাবদ্ধ থাকবে (এটি খুব টান লুপ হতে পারে যাতে এটি সিস্টেমের অনেক বেশি রিসোর্স গ্রাস করতে পারে)) এটি শুরু হওয়ার আগে যা ঘটেছিল তা সম্পর্কেও অজানা would বা যখন এটি চলছে না।

স্ক্রিপ্টটি নিজেই শুরু করা যেতে পারে (ব্যাকগ্রাউন্ড কাজ হিসাবে ( &অনুরোধের শেষে), সম্ভবত nohupএটির চালিয়ে যেতে পারে যদি এর প্যারেন্ট প্রসেসটি শেষ হয়ে যায়) যখন আপনার ব্যবহারকারী আপনার $ HOME /। প্রোফাইল ফাইল থেকে এটি চালিয়ে লগ ইন করে, এটি আপনার ডেস্কটপ অটোস্টার্ট ইউটিলিটি (কেডিএ বা জিনোম) দিয়ে শুরু করুন, ক্রোন জব থেকে পর্যায়ক্রমে পরীক্ষা করে দেখুন যে এটি ইতিমধ্যে চলছে না কিনা, অথবা আপনার যে কোনও স্টার্টআপ সিস্টেম রয়েছে তা থেকেও (init / systemd / ইত্যাদি।) যদি আপনি যথেষ্ট জানেন তবে যে।)

যখন আপনি এর মতো কিছু খুঁজে না পান যা আপনি যা চান ঠিক তেমন করে, আপনার নিজের স্ক্রিপ্টটি লিখতে এবং ব্যাকগ্রাউন্ডে ডেমনের মতো চালানো প্রায়শই খুব কঠিন নয়।

যদি সম্ভব হয় তবে এটি নিয়মিত ব্যবহারকারীর অ্যাকাউন্ট থেকে চালানো ভাল - আপনি যদি এটি সি বা পাইথনের মতো শক্ত ভাষায় কোড না করেন - কারণ মূল সুবিধার সাথে চালিত শেল স্ক্রিপ্টগুলি প্রায়শই সুরক্ষা ঝুঁকি তৈরি করে।

এই পদ্ধতির আরও একটি সমস্যা আছে। কখনও কখনও পিং আপনাকে মিথ্যা অফলাইন স্থিতি দেয় time

আমার কাছে একটি সম্পূর্ণ স্ক্রিপ্ট, অফলাইন_আরার্ট রয়েছে যা আপনি যা চান তার বিপরীতভাবে কাজ করে - আমি অফলাইনে যাওয়ার সময় আমাকে সতর্ক করে - তবে কোডটি কার্যকর প্রমাণিত হতে পারে। এটির একটি আরও ভাল অফলাইন ফাংশন রয়েছে যা পিংয়ের সময়সীমা থেকে মিথ্যা ধনাত্মকতা হ্রাস করার চেষ্টা করে।

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
}

2

যে কোনও পরিষেবা / ডেমন লগ চেক করার একটি উপায় যা ইন্টারনেটে কাজ করে। উদাহরণস্বরূপ এনটিপি (নেটওয়ার্ক টাইম প্রোটোকল) আপডেট।

দেখুন 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

আমি নিশ্চিত করছি যে এটি উবুন্টু 14.04 এলটিএস 64 বিট ডেস্কটপ এবং সার্ভার সংস্করণগুলির জন্য ডিফল্টরূপে ইনস্টল করা আছে।

আমি এটি ভিএম এ চেষ্টা করেছিলাম, এটি সংযোগ স্থাপন বা পুনরায় সংযোগ করার সময় (ইন্টারনেট উপলব্ধ সাথে) কেবলমাত্র সময় দেখায়। আপনি যা চান তা নয় (শেষ বার সংযুক্ত ছিল)

দ্রষ্টব্য, সিসলগ হল একটি ঘোরানো লগ, আপনি যদি সমস্ত লগ এমনকি পুরানো সংকোচিত অনুসন্ধান করতে চান তবে ব্যবহার করুন zgrep

zgrep -ih ntpdate /var/log/syslog* | sort -bn -k2

এটি দেখতে দুর্দান্ত দেখাচ্ছে, তবে আপনি কি নিশ্চিত যে এটি কমপক্ষে উবুন্টু ডেস্কটপে ডিফল্টরূপে সক্ষম হয়েছে? আমি এখনই ব্যক্তিগতভাবে এটি পরীক্ষা করতে পারি না, তবে আমি প্রকৃতপক্ষে আগামীকাল তা করবো
kos

1
এটি মুছে ফেলবেন না, এটি দরকারী এবং এটি আমার সুযোগের পক্ষে ভাল, যদি আমি বুঝতে পারি যে এটি শেষ বারের মতো (কমবেশি) অবিচ্ছিন্ন সংযোগ তৈরির প্রতিবেদন করবে, তাই আমি যদি 2 দিনের জন্য মেশিনটি সংযুক্ত রেখে ছেড়ে যাই তবে এটি প্রতিবেদন করবে শেষ সংযোগটি তৈরি করার তারিখ এবং সময়, (উদাহরণস্বরূপ 2 দিন আগে) ঠিক? কেবল শেষ কথা, যখন কেউ নেটওয়ার্ক থেকে সংযোগ বিচ্ছিন্ন করে এবং পুনরায় সংযোগ স্থাপন করে, তখন বলে, 5 মিনিট পরে? এনটিপি চেক আবার চলে? অথবা নতুন এনটিপি চেক চালানোর আগে শেষ এনটিপি চেকের পরে কি কোনও ধরণের প্রান্তিকতা রয়েছে?
কোস

1
@ কোস, বিভ্রান্ত হবেন না, ntpdateডিফল্টরূপে ইনস্টল করা হয়েছে তবে ntpd/ openntpdডিমন / পরিষেবা নয় যা পৃথক প্যাকেজগুলিতে আসে। আপনার সময় ও তারিখটিকে ভুল হিসাবে পরিবর্তন করতে এটি পরীক্ষা করতে, সংযোগ বিচ্ছিন্ন করে আবার সংযোগ করুন।
user.dz

1
@ কোস, পর্যায়ক্রমে সময় আপডেট ntpdateকরার cronজন্য ব্যবহার করা যেতে পারে , এটি কোনও পরিষেবা চালানোর মতো ফলাফল (এনটিপিডি / ওপেনটিপিডি) করবে। তবে আপনি ডিফল্ট কনফিগারেশন এবং কোনও অতিরিক্ত সুরের সন্ধান করছেন, তাই না?
user.dz

1
দুঃখিত, আমি ভুল পড়েছি হ্যাঁ আমি একটি কনফিগার করা মেশিনে ব্যবহার করার জন্য কিছু সন্ধান করছিলাম। ঠিক আছে, এটি আমার পক্ষে কাজ করে, আমি যেভাবেই হোক প্রশ্নটি খোলা রেখে দেব, সম্ভবত কেউ খুনি উত্তর নিয়ে আসে। ধন্যবাদ! এটি একটি দুর্দান্ত পদক্ষেপ। যাইহোক মনে রাখবেন যে লগগুলি শক্তভাবে আবর্তিত হয়, সম্ভবত আপনি এটি আপনার উত্তরে যুক্ত করতে চান।
কোস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.