লিনাক্স: কমান্ড লাইনের মাধ্যমে তারিখ নির্ধারণ করুন


75

লিনাক্সে সিস্টেমের তারিখটি কীভাবে পরিবর্তন করবেন?

আমি বদলাতে চাই:

  • একমাত্র বছর
  • শুধু মাস
  • শুধু তারিখ
  • তিনটির উপরে যে কোনও সমন্বয়

2
আপনি যেমন date --set='-2 years'অন্যান্য সমস্ত উপাদানকে অভিন্ন রেখে দু'বছর পিছনে ঘড়ি সেট করতে ব্যবহার করতে পারেন । আপনি একইভাবে মাস এবং মাসের দিন পরিবর্তন করতে পারেন। এই গণনাটি যদি এমন কোনও ডেটটাইমের ফলাফল দেয় যা আসলে হয় না, তবে কী হয় তা আমি পরীক্ষা করে দেখিনি, যেমন একটি ডিএসটি সুইচওভার চলাকালীন, তবে আচরণটি অবশ্যই "কংক্রিটের মানগুলির জন্য তারিখ এবং সময় উভয়ই নির্ধারণ করা" আচরণের মতো হওয়া উচিত।
খ্রিস্টান সেভেরিন

ধরে নিই আপনি বর্তমান সময়ের জন্য তারিখটি সেট করার চেষ্টা করছেন, আপনি sudo ntpd -gqএনটিপি পরিষেবাটি স্বয়ংক্রিয়ভাবে সিস্টেম আপডেট করতে পারবেন ।
স্টিভেন সোরোকা 21

উত্তর:


94

ব্যবহার date -s:

date -s '2014-12-25 12:34:56'

চালান যে রুট হিসাবে অথবা অধীনে sudo। বছর / মাস / দিন কেবলমাত্র একটি পরিবর্তন করা আরও একটি চ্যালেঞ্জ এবং বর্তমান তারিখের পুনরাবৃত্তি বিটগুলিতে জড়িত। প্রধান ডেস্কটপ পরিবেশে অন্তর্নির্মিত জিইউআই তারিখ সরঞ্জামগুলি রয়েছে, সাধারণত ঘড়ির মাধ্যমে অ্যাক্সেস করা হয়।

সময়ের কেবলমাত্র অংশটি পরিবর্তন করতে, আপনি তারিখের স্ট্রিংয়ে কমান্ড প্রতিস্থাপন ব্যবহার করতে পারেন:

date -s "2014-12-25 $(date +%H:%M:%S)"

তারিখ পরিবর্তন করবে, তবে সময় রাখবে। দেখুন man dateবিস্তারিত ফর্ম্যাটিং অন্যান্য সমন্বয় গঠন করা জন্য: ব্যক্তি উপাদান %Y, %m, %d, %H, %M, এবং %S


আমি সময়টি পরিবর্তন করতে চাই না
SHW

5
এটি করার কোনও বিকল্প নেই। date -s "2014-12-25 $(date +%H:%M:%S)"যদিও আপনি তারিখটি পরিবর্তন করতে এবং বর্তমান সময়টিকে পুনরায় ব্যবহার করতে পারেন ।
মাইকেল হোমার

এখানে এসেছিলেন এবং ঘন্টাগুলি পাশাপাশি মিনিটগুলি বর্তমান সময়ের সাথে মিলছিল। - দুর্দান্ত
অ্যালেক্স 2 পিএফ

2
date: cannot set date: Invalid argument
ক্রিস স্ট্রাইজাইস্কি

@ মিশেলহোমার @ এসএইচডাব্লু @ কম্যান্ডের মতো কেবলমাত্র তারিখটি পরিবর্তন করা সম্ভব date -s 2018-01-01। কেউ উত্তর এছাড়া শেয়ার করেছেন: superuser.com/questions/870068/...
baptx

42

সিস্টেম সময়

আপনি dateসিস্টেমের তারিখ সেট করতে ব্যবহার করতে পারেন । GNU বাস্তবায়ন date(বেশিরভাগ এম্বেড থাকা লিনাক্স ভিত্তিক সিস্টেমে পাওয়া যায়) সময় নির্ধারণের জন্য বিভিন্ন ফর্ম্যাট গ্রহণ করে, এখানে কয়েকটি উদাহরণ রয়েছে:

শুধুমাত্র বছর সেট করুন:

date -s 'next year'
date -s 'last year'

শুধুমাত্র মাস সেট করুন:

date -s 'last month'
date -s 'next month'

শুধুমাত্র দিন নির্ধারণ করুন:

date -s 'next day'
date -s 'tomorrow'
date -s 'last day'
date -s 'yesterday'
date -s 'friday'

সব একসাথে সেট করুন:

date -s '2009-02-13 11:31:30' #that's a magical timestamp

হার্ডওয়্যার সময়

এখন সিস্টেমের সময় সেট করা হয়েছে তবে আপনি এটি হার্ডওয়ার ঘড়ির সাথে সিঙ্ক করতে চাইতে পারেন:

--showহার্ডওয়্যার সময় মুদ্রণ করতে ব্যবহার করুন :

hwclock --show

আপনি বর্তমান সিস্টেমের সময়টিতে হার্ডওয়্যার ঘড়িটি সেট করতে পারেন:

hwclock --systohc

অথবা সিস্টেমের সময়টি হার্ডওয়ার ঘড়িতে

hwclock --hctosys

2
আপনি উদাহরণ সহ তারিখ নির্ধারণ করতে এবং "সিস্টেমের সময়" এবং "হার্ডওয়্যার ক্লক" এর মধ্যে পার্থক্য চিহ্নিত করার জন্য বোনাস পয়েন্টগুলি উল্লেখযোগ্য নয় for খুব সহায়ক উত্তর!
মার্ক এডিংটন

3

আপনি dateকমান্ড দিয়ে তারিখ পরিবর্তন করুন । তবে, কমান্ডটি আর্গুমেন্ট হিসাবে একটি সম্পূর্ণ তারিখ প্রত্যাশা করে:

# date -s "20141022 09:45"
Wed Oct 22 09:45:00 BST 2014

তারিখের অংশটি পরিবর্তন করতে, আপনি একটি স্ট্রিং হিসাবে পরিবর্তন করতে চান এমন তারিখের অংশের সাথে এবং অন্য সকলকে তারিখের বিন্যাসকরণ ভেরিয়েবল হিসাবে বর্তমান তারিখটি আউটপুট করুন। তারপরে date -sএটি সেট করতে কমান্ডটিতে এটি পাস করুন :

# date -s "$(date +'%Y12%d %H:%M')"
Mon Dec 22 10:55:03 GMT 2014

মাসটি 12 তম মাসে পরিবর্তন হয় - ডিসেম্বর।

তারিখের ফর্ম্যাটগুলি হ'ল:

  • %Y - বছর
  • %m - মাস
  • %d - দিন
  • %H - ঘন্টা
  • %M - মিনিট

আমি পরিবর্তনের চেষ্টা করছি তবে এটি বদলাচ্ছে না: - $ সুডোর তারিখ --set = "2015-09-30 10: 05: 59.990" বুধ সেপ্টেম্বর 10 1055:59 +0530 2015 $ তারিখ থু মে 23 ই মে 15:10:37 +0530 2019
বিনোদ

2

আমার মত ESXI 5.1 চালানোর জন্য, সিস্টেমটি আমাকে কী উত্তর দিয়েছে তা এখানে

~ # date -s "2016-03-23 09:56:00"
date: invalid date '2016-03-23 09:56:00'

পরিবর্তে আমাকে একটি নির্দিষ্ট ESX কমান্ড ব্যবহার করতে হয়েছিল:

esxcli system time set  -y 2016 -M 03 -d 23  -H 10 -m 05 -s 00

3
-১-এর জন্য ধন্যবাদ, তবে কেন আপনি তা ব্যাখ্যা করতে আপত্তি করবেন ? আপনি যদি আরও ভাল / আরও সম্পূর্ণ / আরও সঠিক উত্তর পেয়ে থাকেন তবে বিনা দ্বিধায় মন্তব্য করুন।
বাল্মীপুর 13

1

সিস্টেমের তারিখ পরিবর্তন করার কমান্ডটি হ'ল date

ডেট কমান্ডকে কল করার জন্য দুটি উপায় রয়েছে (লিনাক্সে):

   date [OPTION]... [+FORMAT]
   date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]

সহজ

সবচেয়ে সহজ উপায়টি হ'ল date -sএটি সহজ আপেক্ষিক তারিখগুলি ব্যবহারের অনুমতি দেয়

 $ date -s yesterday; date
 date: cannot set date: Operation not permitted
 Sat Jan  5 07:21:07 EST 2019
 Sun Jan  6 07:21:07 EST 2019

তারিখটি পরিবর্তন হয়নি কারণ এটি একটি সীমাবদ্ধ ব্যবহারকারীর সাথে কার্যকর করা হয়েছিল $। আপনি যদি প্রকৃতপক্ষে তারিখটি পরিবর্তন করতে চান তবে মূল ( #) বা সুডো ব্যবহার করুন:

 $ sudo date -s yesterday; date
 Sat Jan  5 07:21:07 EST 2019
 Sat Jan  5 07:21:07 EST 2019

সুতরাং, আপেক্ষিক তারিখের যে কোনও অংশ পরিবর্তন করা নামকরণ করার মতোই সহজ:

 $ date -s "5 years ago"
 Mon Jan  6 08:26:26 EST 2014

 $ date -s "+6 months"
 Sat Jul  6 08:28:39 EDT 2019

 $ date -s "+3 hours -13 minutes"
 Sun Jan  6 11:16:59 AST 2019

পরম তারিখগুলি আরও জটিল কারণ তাদের আরও বিশদ প্রয়োজন:

 $ date -s "2001-07-23 10:11:12"

অথবা, আপনি দু'বার ডেট কমান্ড ব্যবহার করতে পারেন:

 $ date -s "$(date +'%Y-%m-%d %H:%M:%S')"

কোনওটি %একটি বৈধ মান দ্বারা প্রতিস্থাপন করুন এবং তারিখটি সেট করা হবে (কেবলমাত্র রুট হিসাবে)।

 $ date -s "$(date +'%Y-11-%d %H:%M:%S')"
 Wed Nov  6 08:37:15 EST 2019

সরাসরি

দ্বিতীয় তারিখের কল ফর্মটি সরাসরি সিস্টেমের তারিখ পরিবর্তন করতে ব্যবহৃত হয় ।

 date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]

সুতরাং:

 date 11230812              # MMDDhhmm

23 নভেম্বর তারিখটি 08 এএম এবং 12 মিনিটে নির্ধারণ করবে।

বিএসডির অনুরূপ কমান্ড রয়েছে তবে একটি আলাদা ফর্ম্যাট ([[[[[সিসি] ইয়ে] মিমি] ডিডি] এইচএইচ] এমএম [এসএসএস]))।

dateএটি কী করবে তা দেখার জন্য একটি সীমাবদ্ধ ব্যবহারকারী হিসাবে চেষ্টা করুন (কোনও কিছু পরিবর্তন না করে):

 $ date 11230812
 date: cannot set date: Operation not permitted
 Sat Nov 23 08:12:00 EST 2019

অথবা, যদি আপনি আসলে তারিখটি মূল হিসাবে পরিবর্তন করতে চান:

 # date 11230812
 # date
 Sat Nov 23 08:12:00 EST 2019

নোট করুন যে এনটিপি বা ক্রোনির মতো পরিষেবাগুলি প্রভাবিত হবে। এবং, যদি পুনঃসূচনা হয় তবে তারিখটি রিয়েলটিকে পুনরায় সেট করে।

বছর নির্ধারণের জন্য YY যুক্ত করুন:

 $ date 1123081222
 date: cannot set date: Operation not permitted
 Wed Nov 23 08:12:00 EST 2022

বা বছর এবং শতাব্দী সেট করতে একটি সিসিওয়াই :

 $ date 112308121982
 date: cannot set date: Operation not permitted
 Tue Nov 23 08:12:00 EST 1982

-1

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

তারিখ 092615002017.00

MMDDHHMMYYYY.SS

এমএম - মাস - 09

ডিডি - দিন - 26

এইচএইচ - ঘন্টা - 15

এমএম - ন্যূনতম - 00

YYYY - বছর - 2017

.এসএস - দ্বিতীয় - 00


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