Bagaimana cara mengubah tanggal sistem di Linux?
Saya ingin berubah:
- Hanya Tahun
- Hanya Bulan
- Hanya Date
- Kombinasi di atas tiga
sudo ntpd -gq
pembaruan sistem secara otomatis menggunakan layanan ntp.
Bagaimana cara mengubah tanggal sistem di Linux?
Saya ingin berubah:
sudo ntpd -gq
pembaruan sistem secara otomatis menggunakan layanan ntp.
Jawaban:
Gunakan date -s
:
date -s '2014-12-25 12:34:56'
Jalankan itu sebagai root atau di bawah sudo
. Mengubah hanya satu tahun / bulan / hari lebih merupakan tantangan dan akan melibatkan pengulangan dari tanggal saat ini. Ada juga alat tanggal GUI yang dibangun di lingkungan desktop utama, biasanya diakses sepanjang waktu.
Untuk mengubah hanya sebagian waktu, Anda dapat menggunakan substitusi perintah di string tanggal:
date -s "2014-12-25 $(date +%H:%M:%S)"
akan mengubah tanggal, tetapi pertahankan waktu. Lihat man date
untuk memformat rincian untuk membangun kombinasi lain: komponen individu %Y
, %m
, %d
, %H
, %M
, dan %S
.
date -s "2014-12-25 $(date +%H:%M:%S)"
untuk mengubah tanggal dan menggunakan kembali waktu saat ini.
date: cannot set date: Invalid argument
date -s 2018-01-01
. Seseorang membagikan ini dalam sebuah jawaban juga: superuser.com/questions/870068/…
Waktu sistem
Anda dapat menggunakan date
untuk mengatur tanggal sistem. Implementasi GNU dari date
(seperti yang ditemukan pada kebanyakan sistem berbasis Linux yang tidak tertanam) menerima banyak format berbeda untuk mengatur waktu, berikut beberapa contoh:
atur hanya tahun:
date -s 'next year'
date -s 'last year'
atur hanya bulan:
date -s 'last month'
date -s 'next month'
atur hanya hari:
date -s 'next day'
date -s 'tomorrow'
date -s 'last day'
date -s 'yesterday'
date -s 'friday'
atur semuanya:
date -s '2009-02-13 11:31:30' #that's a magical timestamp
Waktu perangkat keras
Sekarang waktu sistem sudah diatur, tetapi Anda mungkin ingin menyinkronkannya dengan jam perangkat keras:
Gunakan --show
untuk mencetak waktu perangkat keras:
hwclock --show
Anda dapat mengatur jam perangkat keras ke waktu sistem saat ini:
hwclock --systohc
Atau waktu sistem ke jam perangkat keras
hwclock --hctosys
Anda mengubah tanggal dengan date
perintah. Namun, perintah mengharapkan tanggal penuh sebagai argumen:
# date -s "20141022 09:45"
Wed Oct 22 09:45:00 BST 2014
Untuk mengubah bagian dari tanggal, hasilkan tanggal saat ini dengan bagian tanggal yang ingin Anda ubah sebagai string dan yang lainnya sebagai variabel format tanggal. Kemudian berikan itu ke date -s
perintah untuk mengaturnya:
# date -s "$(date +'%Y12%d %H:%M')"
Mon Dec 22 10:55:03 GMT 2014
mengubah bulan menjadi bulan ke 12 - Desember.
Format tanggal adalah:
%Y
- Tahun%m
- Bulan%d
- Hari%H
- Jam%M
- MenitUntuk yang seperti saya menjalankan ESXI 5.1, inilah jawaban sistem saya
~ # date -s "2016-03-23 09:56:00"
date: invalid date '2016-03-23 09:56:00'
Saya harus menggunakan perintah ESX tertentu sebagai gantinya:
esxcli system time set -y 2016 -M 03 -d 23 -H 10 -m 05 -s 00
Perintah untuk mengubah tanggal sistem adalah date
.
Ada dua cara untuk memanggil perintah tanggal (di Linux):
date [OPTION]... [+FORMAT]
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
Cara termudah adalah menggunakan date -s
karena memungkinkan penggunaan tanggal relatif sederhana
$ 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
Tanggal tidak berubah karena dijalankan dengan pengguna terbatas $
. Jika Anda benar-benar ingin tanggalnya diubah, gunakan root ( #
) atau sudo:
$ sudo date -s yesterday; date
Sat Jan 5 07:21:07 EST 2019
Sat Jan 5 07:21:07 EST 2019
Jadi, mengubah bagian mana pun dari tanggal relatif semudah memberi nama:
$ 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
Tanggal absolut sedikit lebih rumit karena mereka membutuhkan lebih detail:
$ date -s "2001-07-23 10:11:12"
Atau, Anda dapat menggunakan perintah tanggal dua kali:
$ date -s "$(date +'%Y-%m-%d %H:%M:%S')"
ganti salah satu %
dengan nilai yang valid dan tanggal akan ditetapkan (hanya sebagai root).
$ date -s "$(date +'%Y-11-%d %H:%M:%S')"
Wed Nov 6 08:37:15 EST 2019
Bentuk tanggal panggilan kedua digunakan untuk langsung mengubah tanggal sistem.
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
Jadi:
date 11230812 # MMDDhhmm
Akan menetapkan tanggal ke 23 November pukul 08.00 dan 12 menit.
BSD memiliki perintah yang sama tetapi format yang berbeda ([[[[cc] yy] mm] dd] HH] MM [.ss]).
Coba date
sebagai pengguna terbatas untuk melihat apa yang akan dilakukannya (tanpa mengubah apa pun):
$ date 11230812
date: cannot set date: Operation not permitted
Sat Nov 23 08:12:00 EST 2019
Atau, jika Anda benar-benar ingin mengubah tanggal, sebagai root:
# date 11230812
# date
Sat Nov 23 08:12:00 EST 2019
Perhatikan bahwa layanan seperti NTP atau chrony akan terpengaruh. Dan, jika restart akan mengatur ulang tanggal kembali ke yang asli.
Tambahkan YY untuk mengatur tahun:
$ date 1123081222
date: cannot set date: Operation not permitted
Wed Nov 23 08:12:00 EST 2022
Atau CCYY untuk menetapkan tahun dan abad:
$ date 112308121982
date: cannot set date: Operation not permitted
Tue Nov 23 08:12:00 EST 1982
Saya menggunakan perintah tanggal dan format waktu yang tercantum di bawah ini untuk berhasil mengatur tanggal dari perintah shell terminal yang dilakukan pada Android Things yang menggunakan Linux Kernal.
tanggal 092615002017.00
MMDDHHMMYYYY.SS
MM - Bulan - 09
DD - Hari - 26
HH - Jam - 15
MM - Min - 00
YYYY - Tahun - 2017
.SS - detik - 00
date
, dapatkah Anda menambahkan lebih banyak info tentang sistem apa ini relevan dan bagaimana itu relevan dengan pertanyaan khusus ini.
date --set='-2 years'
untuk menyetel jam kembali dua tahun, membuat semua elemen lainnya identik. Anda dapat mengubah bulan dan hari dalam bulan dengan cara yang sama. Saya belum memeriksa apa yang terjadi jika perhitungan itu menghasilkan data yang tidak benar-benar ada, misalnya selama pergantian DST, tetapi perilaku tersebut harus identik dengan perilaku "atur tanggal dan waktu ke nilai konkret" yang biasa.