লিনাক্সের কমান্ড লাইন থেকে কীভাবে ইন্টারনেট থেকে বর্তমান সময়টি জানবেন?


26

লিনাক্সের কমান্ড লাইন থেকে কীভাবে ইন্টারনেট থেকে বর্তমান সময়টি জানবেন?

উদাহরণস্বরূপ, ntpqপ্রোগ্রাম সহ?

দ্রষ্টব্য: কম্পিউটার বা অপারেটিং সিস্টেমের ঘড়ি থেকে নয়, ইন্টারনেট থেকে?

দ্রষ্টব্য: আমি পরিবর্তন করতে চাই না SYNC সময়। শুধু এটি জানুন।


সম্পর্কিত: unix.stackexchange.com/questions/79112/…
Ciro

উত্তর:


30

আপনি যদি ব্যাশ ব্যবহার করেন তবে নিম্নলিখিত লাইনটি কাজটি করবে

$ cat </dev/tcp/time.nist.gov/13

56525 13-08-21 23:07:09 50 0 0  55.6 UTC(NIST) *

এটি ব্যাশ শেলের অন্তর্নির্মিত নেটওয়ার্ক ক্যাপিবিলিটগুলি উপকৃত করে। আপনি যদি পসিক্স শেল বা অন্য কোনও শেল ব্যবহার করেন তবে যেমন নেটক্যাট ব্যবহার করতে পারেন

$ nc time.nist.gov 13

56525 13-08-21 23:07:09 50 0 0  55.6 UTC(NIST) *

উভয় কমান্ড জাতীয় স্ট্যান্ডার্ডস এবং টেকনোলজির জাতীয় ইনস্টিটিউটের টিসিপি পোর্ট 13 এ টাইমার সার্ভারটি জিজ্ঞাসা করে এবং স্টাডআউটে প্রাপ্ত ডেটা আউটপুট দেয়।

¹ সম্পাদনা করুন: থেকে ব্যাশ মানুষ পৃষ্ঠা: ব্যাশ বিভিন্ন ফাইলের নামের বিশেষভাবে পরিচালনা যখন তারা নিম্নলিখিত টেবিলে বর্ণনা অনুযায়ী পুনঃনির্দেশগুলি ব্যবহৃত হয়:

/dev/tcp/host/port
হোস্ট যদি একটি বৈধ হোস্টনাম বা ইন্টারনেট ঠিকানা হয় এবং পোর্টটি একটি পূর্ণসংখ্যার পোর্ট নম্বর বা পরিষেবার নাম হয় তবে ব্যাশ সংশ্লিষ্ট সকেটে টিসিপি সংযোগ খোলার চেষ্টা করে।

/dev/udp/host/port
হোস্ট যদি একটি বৈধ হোস্টনাম বা ইন্টারনেট ঠিকানা হয় এবং পোর্টটি একটি পূর্ণসংখ্যার পোর্ট নম্বর বা পরিষেবার নাম হয় তবে ব্যাশ সংশ্লিষ্ট সকেটে একটি ইউডিপি সংযোগ খোলার চেষ্টা করে।


ভাল, +1। এটি কীভাবে কাজ করে আপনি কিছুটা প্রসারিত করতে পারেন? বা, যেহেতু আমি এখানে বাশ জ্ঞানের একটি বিশাল অংশ অনুপস্থিত মনে হচ্ছে, এই আচরণটি সন্ধান করার জন্য আমাকে একটি নাম দিন? </dev/tcp/বিন্যাসটি কী ?
টেরডন

এই পদ্ধতির সাথে আমি যে দুটি ছোট ছোট ত্রুটি দেখতে পাচ্ছি তা হ'ল বিভিন্ন সময় অঞ্চলগুলি সহজেই সমর্থিত হয় না এবং কোনও ফর্ম্যাট সরল-অগ্রগামী উপায়ে নির্দিষ্ট করা যায় না। এই পরিস্থিতিতে প্রতিকারের জন্য, কেউ সময় এপিআই ব্যবহার করতে পারে । উদাহরণস্বরূপ, মধ্য ইউরোপের আসল curl -G --data-urlencode "format=%D-%T\n" http://www.timeapi.org/cet/now?
সময়টিকে

টাইম.নিস্ট.gov এর কোনও হার সীমাবদ্ধ বা অতিরিক্ত লোড হয়েছে কিনা তা নিশ্চিত নয় তবে আমি এই হোস্টের সাথে বিভিন্ন ফলাফল পেয়েছি।
স্নো ক্র্যাশ

22

ডিস্ট্রোতে বেশ কয়েকটি এনটিপি পরিষেবা উপলব্ধ।

আপনি যদি ওয়ান টাইম ক্লকসিঙ্ক করতে চান :

date -s "$(curl -s --head http://google.com | grep ^Date: | sed 's/Date: //g')"

হার্ডওয়্যার রিয়েল-টাইম-ক্লকটিতে সিস্টেমের সময় সেট করুন

hwclock -r --utc
hwclock -w --utc
hwclock -r --utc

(দ্রষ্টব্য: গুগলের সাথে এটি ভালভাবে কাজ করতে পারে কারণ তাদের সর্বত্র বিভাজন রয়েছে)


আপনি যদি দেখতে চান যে গুগলের নিকটতম সার্ভারটি কী সময় প্রেরণ করে:

date -d "$(curl -s --head http://google.com | grep ^Date: | sed 's/Date: //g')"

17

ntpdateআদেশের সঙ্গে এটা করতে পারেন -qপতাকা:

$ ntpdate -q 1.debian.pool.ntp.org
server 88.191.120.99, stratum 3, offset -0.015076, delay 0.06604
server 88.191.235.218, stratum 2, offset -0.000676, delay 0.06592
server 188.165.240.21, stratum 3, offset 0.001191, delay 0.07005
server 91.121.34.166, stratum 2, offset 0.000565, delay 0.06998
22 Aug 00:56:21 ntpdate[31373]: adjust time server 88.191.235.218 offset -0.000676 sec

থেকে man ntpdate:

   -q     Query only - don't set the clock.

0

আপনি এইচটিটিপি ব্যবহার করে এইচটিপি ব্যবহার করে ইন্টারনেটে সময় পেতে পারেন যা অনেক সিস্টেমে উপলব্ধ htpdateযা সাধারণত নিকটতম দ্বিতীয়টির যথার্থতা থাকে বা আপনি এটি টিএলএস ব্যবহার করে এটি tlsdateআরও ভাল নির্ভুলতা সরবরাহ করতে পারেন তা ব্যবহার করতে পারেন:

tlsdate -nV google.com

এছাড়াও যেহেতু এনটিপিডেটটি অবমূল্যায়ন করা হচ্ছে আপনি sntpতারিখটি আরও সঠিকভাবে পেতে ব্যবহার করতে পারেন (এটি ম্যাকোজে ডিফল্টরূপে ইনস্টল করা হয়েছে এবং এনটিপি বিতরণের অংশ হিসাবে আসে):

sntp pool.ntp.org 
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.