কীভাবে এনটিপি ব্যবহার করে একটি ক্লক আপডেট জোর করবেন?

আমি আরটিসি ব্যাক একটি ব্যাটারি অভাব আছে যে একটি এআরএম ভিত্তিক এমবেডেড সিস্টেমে উবুন্টু চালাচ্ছি. ওয়েক-আপ সময় সময় কোথাও 1970. সুতরাং, আমি বর্তমান সময়ে সময় আপডেট করতে এনটিপি পরিষেবাটি ব্যবহার করি

আমি নিম্নলিখিত লাইন যোগ /etc/rc.local ফাইল:

sudo ntpdate -s time.nist.gov

তবে, প্রারম্ভের পরে, সময়টি আপডেট না হওয়া পর্যন্ত এটি কয়েক মিনিট সময় নেয়, সেই সময়কালে আমি কার্যকরভাবে কাজ করতে পারি না tar এবং make.

আমি কীভাবে কোনও নির্দিষ্ট সময়ে একটি ঘড়ি আপডেট জোর করতে পারি?


আপডেট 1: নিম্নলিখিত (এরিক এবং স্টিফানকে ধন্যবাদ) কমান্ড লাইন থেকে ভাল কাজ করে, তবে রাখার সময় ঘড়িটি আপডেট করতে ব্যর্থ হয় /etc/rc.local:

$ date ; sudo service ntp stop ; sudo ntpdate -s time.nist.gov ; sudo service ntp start ; dateThu Jan  1 00:00:58 UTC 1970 * Stopping NTP server ntpd     [ OK ]  * Starting NTP server          [ OK ] Thu Feb 14 18:52:21 UTC 2013

আমি কি ভুল করছি?


আপডেট 2: আমি 1 ম আপডেট প্রতিক্রিয়ায় এসেছিলেন যে কয়েকটি পরামর্শ অনুসরণ করার চেষ্টা, কিন্তু কিছুই প্রয়োজন হিসাবে আসলে কাজ বলে মনে হয়. আমি যা চেষ্টা করেছি তা এখানে:

  1. সার্ভার প্রতিস্থাপন করুন us.pool.ntp.org
  2. প্রোগ্রামগুলিতে স্পষ্ট পাথ ব্যবহার করুন
  3. অপসারণ ntp সেবা পুরাপুরি এবং শুধু ছেড়ে sudo ntpdate ... মধ্যে rc.local
  4. অপসারণ sudo উপরের কমান্ড থেকে rc.local

উপরে ব্যবহার করে, মেশিন এখনও শুরু হয় 1970. যাইহোক, কমান্ড লাইন থেকে এটি করার সময় একবার লগ ইন (মাধ্যমে ssh), আমি প্রার্থনা করার সাথে সাথে ঘড়িটি আপডেট হয়ে যায় ntpdate.

আমি শেষ জিনিস থেকে যে অপসারণ ছিল rc.local এবং এখানে একটি কল রাখুন ntpdate আমার মধ্যে .bashrc ফাইল. এই ঘড়ি হিসাবে প্রত্যাশিত আপডেট আছে, এবং কমান্ড প্রম্পট উপলব্ধ একবার আমি সত্য বর্তমান সময় পেতে.

তবে, এই মেশিন চালু করা হয় এবং কোন ব্যবহারকারী লগ ইন করা হয়, তাহলে সময় আপডেট পায় না এর মানে হল যে. আমি, অবশ্যই, পুনরায় ইনস্টল করতে পারেন ntp সেবা তাই অন্তত ঘড়ি প্রারম্ভে থেকে কয়েক মিনিটের মধ্যে আপডেট করা হয়, কিন্তু তারপর আমরা বর্গ 1 এ ফিরে এসেছি.

সুতরাং, স্থাপন করার একটি কারণ আছে ntpdate কমান্ড ইন rc.local এটি করার সময় প্রয়োজনীয় কাজটি সম্পাদন করে না .bashrc ভাল কাজ করে?

পরিবর্তে এনটিপিডেট (যা অবচিত), ব্যবহার করুন ntpd:

sudo service ntp stopsudo ntpd -gqsudo service ntp start

দ্য -gq এনটিপি ডেমন অফসেটের নির্বিশেষে সময়টি সংশোধন করতে বলে (g) এবং অবিলম্বে প্রস্থান করুন (q) সময় নির্ধারণের পরে

সম্ভবত ntp পরিষেবা চলছে, সে কারণেই ntpdate সকেট খুলতে পারে না (পোর্ট 123 ইউডিপি) এবং সংযোগ করুন এনটিপি সার্ভার.

কমান্ড লাইন থেকে চেষ্টা করুন:

sudo service ntp stopsudo ntpdate -s time.nist.govsudo service ntp start

আপনি যদি এটি রাখতে চান /etc/rc.local নিম্নলিখিত ব্যবহার করুন:

( /etc/init.d/ntp stopuntil ping -nq -c3 8.8.8.8; do   echo "Waiting for network..."donentpdate -s time.nist.gov/etc/init.d/ntp start )&

অবিলম্বে সময় সেট করতে এসএনটিপি ব্যবহার করুন এর ম্যান পৃষ্ঠা থেকে কিছু উদাহরণ:

USAGE     sntp ntpserver.somewhere             is the simplest use of this program and can be run as an unprivileged command to check the current time and error in the local clock.     sntp -Ss -M 128 ntpserver.somewhere             With suitable privilege, run as a command or from a cron(8) job, sntp -Ss -M 128 ntpserver.somewhere will request the time from the server, and if that server reports that it is             synchronized then if the offset adjustment is less than 128 milliseconds the correction will be slewed, and if the correction is more than 128 milliseconds the correction  will             be stepped.     sntp -S ntpserver.somewhere             With suitable privilege, run as a command or from a cron(8) job, sntp -S ntpserver.somewhere will set (step) the local clock from a synchronized specified server, like the (dep‐             recated) ntpdate(8), or rdate(8) commands.

এটা কোনো এনটিপি সময় সার্ভারের সাথে কাজ করে. সার্ভারের একটি সুবিধাজনক তালিকা পাওয়া যাবে ntppool.org.

আপনার প্রয়োজন সুডো সুবিধাগুলি, উদাহরণস্বরূপ:

sudo sntp -Ss -M 128 0.de.pool.ntp.org

ব্যবহার করুন timedatectl (সিস্টেম সার্ভিস ইউনিট) সময় সেট করতে. ntp অবচিত হয়.

sudo systemctl restart systemd-timesyncd.service

আপনি সময় লগ পড়া আপডেট করা হয়েছে চেক করতে পারেন journalctl -xe | tail.

এর সাথে অবস্থা timedatectl status এবং কনফিগার করুন /etc/systemd/timesyncd.conf.

তথ্যসূত্র

অন্যরা যেমন উল্লেখ করেছেন যে সবচেয়ে ভাল সমাধানটি হ ' ল আতঙ্কিত প্রান্তিককে উপেক্ষা করার জন্য এনটিপিডি নির্দেশ দেওয়া, যা ডিফল্টরূপে 1000 সেকেন্ড. আপনি দুটি উপায়ে একটিতে প্যানিক থ্রেশহোল্ড কনফিগার করতে পারেন:

  • সম্পাদনা /etc/default/ntp এবং নিশ্চিত করুন যে-জি বিকল্পটি উপস্থিত রয়েছে
  • সম্পাদনা/ইত্যাদি / এনটিপি.কনফ এবং স্থান tinker panic 0 শীর্ষে

এ পর্যন্ত এই মূলত কি অন্যদের সুপারিশ করেছেন তবে আরও একটি পদক্ষেপ আমি মনে করি আপনি গ্রহণ করা উচিত নেই. জাল-এইচডাব্লুক্লক প্রোগ্রামটি ইনস্টল করুন:

# apt-get install fake-hwclockfake-hwclock: Save/restore system clock on machines without working RTC hardware Some machines don't have a working realtime clock (RTC) unit, or no driver for the hardware that does exist. fake-hwclock is a simple set of scripts to save the kernel's current clock periodically (including at shutdown) and restore it at boot so that the system clock keeps at least close to realtime. This will stop some of the problems that may be caused by a system believing it has travelled in time back to 1970, such as needing to perform filesystem checks at every boot. On top of this, use of NTP is still recommended to deal with the fake clock "drifting" while the hardware is halted or rebooting.

জাল-এইচডব্লিউক্লক ইনস্টল করার সাথে সাথে আপনার মেশিনটি আবার 1970 সালের চিন্তাভাবনা শুরু করবে না যখন আপনার মেশিন বুট আপ এটি টাইমস্ট্যাম্প জাল তার ঘড়ি সেট হবে-এইচডব্লিউক্লক শেষ রিবুট/শাটডাউন সময় লিখেছেন. এই কমান্ডের সাহায্যে আপনি বুট করার সময় নেটওয়ার্ক বিষয় আছে ক্ষেত্রে একটি কিছুটা সঠিক ঘড়ি থাকতে পারে মানে.

এনটিপিডেট নেট ড্যামিয়ন থেকে আলাদা একটি প্রোগ্রাম. এনটিপিডি যে সকেট চলমান কারণ এনটিপিডি সম্ভবত বুট আউট ত্রুটিপূর্ণ হয়.

কমান্ড লাইন থেকে, চালান

# sudo service ntp stop ; sudo ntpdate -s time.nist.gov ; sudo service ntp start

আপনি একসাথে এনটিপিডি আনইনস্টল করতে পারেন (এনটিপি অ্যাপ্ট-গেট রিমুভ করুন) এবং ব্যবহার করতে একটি ক্রন স্ক্রিপ্ট যুক্ত করতে পারেন এনটিপিডিইটি প্রতি ঘন্টা বা তাই.

আপডেট

এনটিপি পরিষেবা সম্ভবত এই সিস্টেমে আপনার জন্য অর্থপূর্ণ মান থাকবে না, তাই প্রথম যে মুছে ফেলুন.

# sudo apt-get remove ntp

এখন কমান্ড যোগ করুন:

ntpdate -sb time.nist.gov

প্রতি /etc/rclocal

পুনরায় বুট করুন. যে সময়ে ভাল হতে হবে.

rdate -s tick.greyware.com

আপনি যা করতে চান তা যদি একবার ঘড়ি সেট করা হয় তবে সহজ

মনে রাখবেন যে কিছু বর্তমান উবুন্টু ভিত্তিক সিস্টেমগুলি এখন ডিফল্টরূপে এনটিপি পরিষেবাও ব্যবহার করে না আমার লিনাক্স মিন্ট 19 (উবুন্টু 18.04) মেশিনে, সময় দ্বারা রাখা হয় systemd-timesyncd.

তাই সিঙ্ক হারিয়ে যাওয়ার পরে আপ টু ডেট সময় পেতে, আমি শুধু রান করি

sudo systemctl restart systemd-timesyncd

যেহেতু 15.04 উবুন্টু ডিফল্টরূপে সিস্টেমডি ব্যবহার করে. সুতরাং সময়ের মতো সমালোচনামূলক সিস্টেমগুলি এর মাধ্যমে পরিচালিত হয় সিস্টেমডি. আপনার সিস্টেম রান কিছু ব্যবহার করা হয় কি সেবা খুঁজে পেতে

systemctl list-unit-files | grep -E 'ntp|timesyncd'

16.04 তে টেকজেএসের জন্য পরিষেবাটি ছিল ntp. উবুন্টু 18.04 (মিন্ট 19) এ আমার জন্য পরিষেবাটি হল systemd-timesyncd. মজার বিষয় হল, আমি আমার কাছে একটি 16.04 সার্ভারে লগ ইন করেছি এবং এটি ব্যবহার করে systemd-timesyncd যেমন.

ডেবিয়ান / মিন্ট / উবুন্টু (বা অন্যান্য ডেবিয়ান ডেরিভেটিভ) সিস্টেমে এটি করার সঠিক উপায় হল লাইন থাকা

NTPD_OPTS="-g"

ফাইলের মধ্যে

/etc/default/ntp

এটি নিশ্চিত করে যে যখন এনটিপিডি থেকে শুরু হয় / ইত্যাদি / আইএনআইটি.ডি / এনটিপি স্ক্রিপ্ট, এটি "-জি" বিকল্পের সাথে চলে, যেমন

 start-stop-daemon --start --quiet --oknodo --pidfile /var/run/ntpd.pid --startas /usr/sbin/ntpd -- -p /var/run/ntpd.pid -g -u 124:128

এনটিপিডি সিস্টেমের সময়টি সংশোধন করার অনুমতি দেওয়ার জন্য যখন এটি 1000 এর বেশি হয়, যেমন যখন সিস্টেমের সময় প্রারম্ভকালে 1 জানুয়ারী 1970 হয় কারণ কোনও হার্ডওয়্যার আরটিসি নেই

tlsdate নিরাপদে দূরবর্তী সার্ভারে টিএলএস সঙ্গে সংযোগ এবং নিরাপদ হ্যান্ডশেক আউট দূরবর্তী সময় আহরণের দ্বারা স্থানীয় ঘড়ি সেট করে. ভিন্নntpdate, tlsdate টিসিপি ব্যবহার করে, উদাহরণস্বরূপ একটি দূরবর্তী সংযোগ এইচটিটিপিএস বা টিএলএস সক্ষম পরিষেবা, এবং প্রতিপক্ষের বিরুদ্ধে কিছু সুরক্ষা প্রদান করে যা আপনাকে দূষিত সময় তথ্য খাওয়ানোর চেষ্টা করে

$ tlsdate -V -n -H encrypted.google.com

থেকে [এখানে] 1:
এনটিপিডেট-এর ntp.ubuntu.com`

এনটিপিডেটে’ - বি ’ পতাকাটি লক্ষ্য করুন এনটিপিডেটের ম্যান পৃষ্ঠা থেকে: "সেটটাইম অফডে() ব্যবহার করে সময়টিকে পদক্ষেপ নিতে বাধ্য করুন সিস্টেম কল, পরিবর্তে স্লুইড (ডিফল্ট) ব্যবহার করে অ্যাডজাইম() সিস্টেম কল. বুট করার সময় একটি স্টার্টআপ ফাইল থেকে কল করার সময় এই বিকল্পটি ব্যবহার করা উচিত"নীচের উত্তর অনেক এটি অন্তর্ভুক্ত করবেন না, এবং কিছু কাজ পেতে সমস্যা যে হয়তো অংশ. বিবেচনা করুন যে’ - বি ’ পতাকা এতে উল্লেখ করা হয়েছে যে 128 এমএসের বেশি অফসেটগুলি ডিফল্ট ‘স্লু’ প্রক্রিয়াটি ব্যবহার করে সিঙ্ক করতে কয়েক ঘন্টা সময় নিতে পারে

'টাইমডেক্টেল`, কিন্তু How to update system time behind a proxy? - Ask Ubuntu

সুডো ব্যবহার করার কোন প্রয়োজন নেই /ইত্যাদি/রেসিন.লোকেল ফাইল … তারা ইতিমধ্যে রুট হিসাবে চালানো হয়.