लिनक्स में सिस्टम की तारीख कैसे बदलें?
मैं बदलना चाहता हूँ:
- केवल वर्ष
- केवल महीना
- केवल दिनांक
- उपरोक्त तीनों में से कोई भी संयोजन
sudo ntpd -gq
ntp सेवा का उपयोग करके सिस्टम अपडेट को स्वचालित रूप से कर सकते हैं।
लिनक्स में सिस्टम की तारीख कैसे बदलें?
मैं बदलना चाहता हूँ:
sudo ntpd -gq
ntp सेवा का उपयोग करके सिस्टम अपडेट को स्वचालित रूप से कर सकते हैं।
जवाबों:
उपयोग करें date -s
:
date -s '2014-12-25 12:34:56'
इसे रूट या अंडर के रूप में चलाएं sudo
। वर्ष / माह / दिन में से केवल एक को बदलना एक चुनौती से अधिक है और इसमें वर्तमान तिथि के दोहराव को शामिल किया जाएगा। सामान्य डेस्कटॉप वातावरण में निर्मित GUI दिनांक उपकरण भी होते हैं, जिन्हें आमतौर पर घड़ी के माध्यम से एक्सेस किया जाता है।
केवल समय का हिस्सा बदलने के लिए, आप दिनांक स्ट्रिंग में कमांड प्रतिस्थापन का उपयोग कर सकते हैं:
date -s "2014-12-25 $(date +%H:%M:%S)"
तारीख बदल जाएगी, लेकिन समय रखें। देखें man date
विवरण स्वरूपण अन्य संयोजन का निर्माण करने के लिए: अलग-अलग घटक हैं %Y
, %m
, %d
, %H
, %M
, और %S
।
date -s "2014-12-25 $(date +%H:%M:%S)"
तिथि बदलने और वर्तमान समय का पुन: उपयोग करने के लिए उपयोग कर सकते हैं , हालांकि।
date: cannot set date: Invalid argument
date -s 2018-01-01
। किसी ने इसे एक उत्तर में भी साझा किया: superuser.com/questions/870068/…
सिस्टम का समय
आप date
सिस्टम दिनांक सेट करने के लिए उपयोग कर सकते हैं । जीएनयू कार्यान्वयन 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
आप 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
- मिनटमेरे जैसे 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
सिस्टम दिनांक को बदलने का आदेश है 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 का उपयोग करें :
$ 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 मिनट पर तिथि निर्धारित करेगा।
BSD में एक समान कमांड है लेकिन एक अलग प्रारूप ([[[[[cc] yy] mm] dd] H]] MM [.ss]) है।
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
ध्यान दें कि NTP या chrony जैसी सेवाएं प्रभावित होंगी। और, यदि पुनः आरंभ होता है, तो दिनांक को वास्तविक पर वापस सेट कर देगा।
वर्ष निर्धारित करने के लिए YY जोड़ें:
$ date 1123081222
date: cannot set date: Operation not permitted
Wed Nov 23 08:12:00 EST 2022
या वर्ष और सदी निर्धारित करने के लिए एक CCYY :
$ date 112308121982
date: cannot set date: Operation not permitted
Tue Nov 23 08:12:00 EST 1982
मैंने एंड्रॉइड थिंग्स पर प्रदर्शन किए गए टर्मिनल शेल कमांड से तिथि निर्धारित करने के लिए नीचे सूचीबद्ध दिनांक और समय प्रारूप का उपयोग किया, जो लिनक्स कर्नेल का उपयोग करता है।
दिनांक 092615002017.00
MMDDHHMMYYYY.SS
एमएम - महीना - 09
डीडी - दिन - 26
एचएच - घंटा - 15
एमएम - न्यूनतम - 00
YYYY - वर्ष - 2017
.SS - दूसरा - 00
date
, तो क्या आप इस बारे में अधिक जानकारी जोड़ सकते हैं कि यह किस प्रणाली के लिए प्रासंगिक है और यह इस विशेष प्रश्न के लिए कैसे प्रासंगिक है।
date --set='-2 years'
लिए घड़ी को दो साल पीछे सेट करने के लिए उपयोग कर सकते हैं , अन्य सभी तत्वों को समान छोड़कर। आप महीने और महीने के दिन को उसी तरह बदल सकते हैं। मैंने जाँच नहीं की है कि क्या होता है अगर उस गणना का परिणाम एक डेटाइम में होता है जो वास्तव में मौजूद नहीं है, उदाहरण के लिए एक डीएसटी स्विचओवर के दौरान, लेकिन व्यवहार समान होना चाहिए "ठोस मूल्यों के लिए तिथि और समय दोनों निर्धारित करें" व्यवहार।