অবস্থান অনুযায়ী লিনাক্স টাইমজোনটি স্বয়ংক্রিয়ভাবে সেট করুন


19

আমরা কীভাবে স্বয়ংক্রিয়ভাবে ইন্টারনেট ব্যবহার করে লিনাক্সে সিস্টেমের ডিফল্ট টাইমজোন সেট করতে পারি? আমি এটি দেখতে পাচ্ছি, এনটিপি সার্ভারগুলি কেবলমাত্র সময় আপডেট করতে পারে তবে সময় অঞ্চল নয়। টাইমজোন পরিবর্তন করতে পারে এমন কোনও সার্ভার রয়েছে কি?


1
আপনি কি দিনের আলোর সঞ্চয় থেকে সময় অনুযায়ী সময় অঞ্চল পরিবর্তনের মতো বলছেন?
slm

এখানে, দুটি জিনিস আছে। যদি দেশে পরিবর্তন হয় is ২. দিনের হালকা সঞ্চয়ের ক্ষেত্রে যদি পরিবর্তন হয় second
এম্বেড প্রোগ্রামার

এনটিপি সার্ভারগুলি স্বয়ংক্রিয়ভাবে দিবালোকের সঞ্চয় সময় পরিবর্তনগুলি পরিচালনা করে। আমি এমন কোনও সার্ভার সম্পর্কে জানি না যা আপনার অবস্থান সনাক্ত করে এবং আপনার টাইমজোনটি স্বয়ংক্রিয়ভাবে আপডেট করে (যেমন সেলফোন করে)।
ডিআরএস

2
@ ডিআরএস আরও সঠিকভাবে, এনটিপি সময় অঞ্চল সম্পর্কে মোটেই পরোয়া করে না। এনটিপি সময়টি ইউটিসি, সরল এবং সাধারণ এবং ক্লায়েন্টের সঞ্চালনের জন্য সময় অঞ্চল রূপান্তর। একটি নির্দিষ্ট NTP ক্লায়েন্ট পারে টাইমজোন রূপান্তর করুন, অথবা তা না পারে, কিন্তু যেহেতু সবচেয়ে * স্নো সিস্টেম যাহাই হউক না কেন ইউটিসি সিস্টেম ঘড়ি স্থাপন করে তা প্রয়োজন করা উচিত নয়।
একটি সিভিএন

উত্তর:


36

আমি কিছুক্ষণ আগে একটি প্রোগ্রাম লিখেছিলাম যা এটি করে: tzupdate

আপনি এটি চালিয়ে আপনার টাইমজোনকে (আসলে এটি সেট না করে) কী সেট করতে পারবেন তা দেখতে পারেন tzupdate -p:

$ tzupdate -p
Europe/Malta

tzupdateরুট হিসাবে চালিয়ে আপনি এটি বাস্তবের জন্য সেট করতে পারেন ।

$ sudo tzupdate
Europe/Malta
$ date
Thu 12 Sep 05:52:22 CEST 2013

এটি এর দ্বারা কাজ করে:

  • আপনার বর্তমান আইপি জিওলোক্যাট করা
  • সেই অবস্থানের জন্য সময় অঞ্চল পাওয়া
  • /etc/localtimeসেই টাইমজোনটির জন্য জোনিনফোর ফাইলটিতে নির্দেশ করতে সিএমিলিং আপডেট করা

6

এটি একটি পুরানো থ্রেড, তবে কুবুন্টু 1710 এর জন্য এখনও প্রাসঙ্গিক যা সময় অঞ্চলটি স্বয়ংক্রিয়ভাবে পরিবর্তন করে না। আমি ক্রুড ডাউন এর সমাধান টিজুপডেটের জন্য ব্যবহার করছি, তবে সিস্টেমটি যখন কোনও নেটওয়ার্কে (ওয়াইফাই বা অন্যান্য) সাথে সংযোগ স্থাপনের চেষ্টা করে তখন এটি ট্রিগার হয়ে যায় তা নিশ্চিত করে। এটি ধরে নেওয়া হয় যে আপনি নেটওয়ার্ক ম্যানেজার ব্যবহার করছেন।

প্রথমে একটি টার্মিনাল খুলুন।

  1. Tzupdate ইনস্টল করুন

    sudo apt install python-pip
    pip install -U tzupdate
    

    তারপরে নিশ্চিত হয়ে নিন যে এটি সমস্ত ব্যবহারকারীর দ্বারা অ্যাক্সেসযোগ্য

    sudo cp -R ~/.local/lib/python2.7/site-packages/. /usr/lib/python2.7/.
    sudo cp /home/marta_riba/.local/bin/tzupdate /usr/local/bin/tzupdate
    
  2. পরীক্ষা করুন যে এটি কাজ করে

    sudo tzupdate
    
  3. আমাদের তখন তা নিশ্চিত করা দরকার যে এটি সমস্ত ব্যবহারকারীর দ্বারা অ্যাক্সেসযোগ্য

    sudo su -
    tzupdate
    

    যা আপনাকে রুট হিসাবে ফেলে দেয় এবং তারপরে কমান্ডটি আপনার সময় অঞ্চল পরিবর্তন করে তা পরীক্ষা করে। তারপরে নিশ্চিত হন যে আপনি সাধারণ ব্যবহারকারী হিসাবে ফিরে আসতে প্রস্থান করবেন

    exit
    
  4. নিশ্চিত করুন যে tzupdate কোনও পাসওয়ার্ড ছাড়াই sudo দিয়ে চালানো যেতে পারে। এটি পরবর্তী ধাপের জন্য প্রয়োজন যখন আমরা এটি নেটওয়ার ম্যানেজার থেকে ট্রিগার করি যা ব্যাকগ্রাউন্ডে এটি চালায় the sudoers ফাইল সম্পাদনা করতে একটি টার্মিনালে এটি টাইপ করুন

    sudo visudo
    

    ফাইলের শেষে এই লাইনটি যুক্ত করুন

    ALL ALL=(root) NOPASSWD: /usr/local/bin/tzupdate
    

    CTRL-X টিপুন এবং তারপরে Y টিপুন এবং তারপরে পরিবর্তনগুলি সংরক্ষণ করতে ENTER করুন

  5. তারপরে আমরা নিশ্চিত করি যে নেটওয়ার্ক সংযোগ পরিবর্তনটি নেটওয়ার্ক সংযোগ পরিবর্তন ট্রিগার করার পরে সর্বদা এটি কল করে (যেমন কোনও ওয়াইফাইতে সংযোগ করার সময়)। এর জন্য আমরা ডিসপ্যাচার.ডি ফোল্ডারে tzupdate নামে একটি ফাইল তৈরি করি যা কেবল sudo tzupdate বলে। ফাইলটি চালানোর জন্য এক্সিকিউটেবল অনুমতি প্রয়োজন

    echo 'sudo tzupdate'| sudo tee /etc/NetworkManager/dispatcher.d/99-tzupdate
    sudo chmod +x /etc/NetworkManager/dispatcher.d/99-tzupdate
    

    নোট করুন যে নেটওয়ার্কম্যানেজার সুড (যেমন sudo tzupdate) এক্সিকিউট করতে কল করবে যা সাধারণত একটি পাসওয়ার্ডের জন্য অনুরোধ জানাবে।

    এটি করার আরও ভাল উপায় হতে পারে যেমন নেটওয়ার্ক ম্যানেজারটি কেবল তখনই কল করতে পারে যখন এটি সংযোগ নিয়ে আসে এবং নীচে নাও (উপরেরটি যেমন করবে) - আমি স্ক্রিপ্টটি / ইত্যাদি / নেটওয়ার্ক / যদি-তে রাখার চেষ্টা করেছি .d তবে এটি আমার পক্ষে কাজ করে নি

  6. কুবুন্টুতে এটি পরীক্ষা করতে - আপনার স্থানীয় সময় অঞ্চলকে অন্য কোনওটিতে পরিবর্তন করুন (আপনার টাস্কবারের ডেট প্লাজময়েডে যান এবং ডান ক্লিক করুন এবং 'তারিখ / সময় সামঞ্জস্য করুন' এবং তারপরে ট্যাব থেকে 'টাইমজোন' নির্বাচন করুন)

    আপনার ওয়াইফাইটি বন্ধ করুন এবং ফিরে করুন - আপনি দেখতে পাবেন এটি একবার ওয়াইফাইয়ের সাথে সংযোগ স্থাপন করার পরে এটি প্রায় 30 সেকেন্ড অপেক্ষা করবে বলে মনে হচ্ছে এবং তারপরে সফলভাবে আপনার সময় অঞ্চল পরিবর্তন করা উচিত।

    নোট করুন যে এটি ওয়াইফাই দিয়ে পরীক্ষা করা হয়নি যেখানে একজনকে ওয়েবপৃষ্ঠায় একটি পাসওয়ার্ড প্রবেশ করতে হবে। আশা করা যায় যে এটি কোনও নেটওয়ার্ক সংযোগের একেবারে শেষের দিকে চলে এমন একটি ব্যবহারকারীর শংসাপত্রগুলি প্রবেশের জন্য পর্যাপ্ত সময় সরবরাহ করা উচিত - অন্যথায় এটির জন্য আরও টুইঙ্কের প্রয়োজন হতে পারে (কোনও সংযোগ রয়েছে কিনা তা পরীক্ষা করে দেখুন, আপনি ইন্টারনেটের সাথে সংযোগ করতে সক্ষম হয়েছেন কিনা তা পরীক্ষা করুন, অপেক্ষা করুন এক্স সেকেন্ডের জন্য যদি ইন্টারনেটের সাথে সংযোগ রাখতে না সক্ষম হন এবং তারপরে Y বার চেষ্টা করুন


2
এটি খুব খারাপ যে 2018 এ এটি এখনও সঠিক উত্তর। আমি বিশ্বাস করি যে জিনোমের একটি প্যাকেজ (জিনোম-ক্লকস) রয়েছে যা এটি পরিচালনা করবে তবে কে-ডি-তে অন্য কোনও ভাল সমাধান নেই।
কার্ডোনেটর

কমান্ডটি চালানোর আগে নেটওয়ার্ক সংযোগ চালু আছে কি না তা পরীক্ষা করতে আপনি "[" $ 2 "=" আপ "]" করতে পারেন। দ্বিতীয় পারমগুলি হ'ল এনএম দ্বারা রাষ্ট্রকে ডাকা হচ্ছে।
ফ্লেমসডিউ

-2

আপনি "টাইমজোন আপডেট" বলতে কী বোঝাতে চান তা পরিষ্কার নয়।

ইউনিক্স এবং লিনাক্স 1 জানুয়ারি, 1970, 00:00 ইউটিসি থেকে সেকেন্ডের সংখ্যা হিসাবে সময় রাখে। ইউনিক্স সিস্টেম ঘড়ি তাই সময় অঞ্চল স্বতন্ত্র। লিনাক্স কার্নেলে টাইমজোনগুলির অস্তিত্ব নেই; এটি কেবল তখনই যখন কোনও ইউজারস্পেস অ্যাপ্লিকেশন সময় প্রদর্শন করে যে ১৯ 1970০ সাল থেকে সেকেন্ডের সংখ্যাটি টাইমজোন ব্যবহার করে ব্যাখ্যা করা হয়। সাধারণত, এই ব্যাখ্যাটি সি লাইব্রেরির ফাংশনগুলির মাধ্যমে করা হয়। সময় অঞ্চলটি TZপরিবেশ পরিবর্তনশীল দ্বারা নির্বাচিত হয় । টাইমজোন সংজ্ঞা (যা ইউটিসি থেকে অফসেটের একটি টাইমজোন নাম নিয়ে গঠিত, দিবালোক সংরক্ষণের সময় কার্যকর হওয়ার সময় তারিখগুলি এবং ডিএসটি-র সময় অফসেটগুলি) জিএনইউ লিবিসি-র অংশ, এবং সাধারণত "tzdata" প্যাকেজ হিসাবে লিনাক্স বিতরণে অন্তর্ভুক্ত থাকে। সুতরাং, সময় অঞ্চল সংজ্ঞা আপডেট করা চলমান বিষয় apt-get upgrade,yum update , অথবা কিছু অনুরূপ অপারেশন।

নোট করুন যে কয়েকটি সফ্টওয়্যার যেমন জাভা এর নিজস্ব টাইমজোন সংজ্ঞা ফাইল রয়েছে যা আলাদাভাবে আপডেট করতে হবে be

এনটিপি 1 জানুয়ারী, 1900, ইউটিসি থেকে সেকেন্ডের সংখ্যা ট্র্যাক করে । সুতরাং, ইউনিক্স কার্নেলের মতো এনটিপিরও সময় অঞ্চলগুলির ধারণা নেই।


2
টাইমজোন আপডেট, আমরা দেখতে পাচ্ছি "তারিখ" কমান্ড / ইত্যাদি / স্থানীয় সময় টাইমজোন অনুসারে সময় এবং তারিখ প্রিন্ট করবে, আমরা / usr / share / অঞ্চলinfo / আমেরিকা / লস_এঞ্জেলের প্রতীকী লিঙ্ক তৈরি করে নিজেই টাইমজোন পরিবর্তন করতে পারি। তবে এটি করার ম্যানুয়াল পদ্ধতি। আমি চাই, এটি ম্যানুয়ালি করার পরিবর্তে স্বয়ংক্রিয়ভাবে দেশের সময় অঞ্চলটি আপডেট করা উচিত।
এম্বেড করা প্রোগ্রামার

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