¿Cómo cambiar la fecha del sistema en Linux?
Quiero cambiar:
- Solo año
- Solo mes
- Solo fecha
- Cualquier combinación de los tres anteriores.
sudo ntpd -gq
que el sistema se actualice automáticamente utilizando el servicio ntp.
¿Cómo cambiar la fecha del sistema en Linux?
Quiero cambiar:
sudo ntpd -gq
que el sistema se actualice automáticamente utilizando el servicio ntp.
Respuestas:
Uso date -s
:
date -s '2014-12-25 12:34:56'
Ejecuta eso como root o under sudo
. Cambiar solo uno del año / mes / día es más difícil e implicará repetir partes de la fecha actual. También hay herramientas de fecha GUI integradas en los principales entornos de escritorio, generalmente accesibles a través del reloj.
Para cambiar solo una parte del tiempo, puede usar la sustitución de comandos en la cadena de fecha:
date -s "2014-12-25 $(date +%H:%M:%S)"
cambiará la fecha, pero mantendrá la hora. Ver man date
para formatear datos para construir otras combinaciones: los componentes individuales son %Y
, %m
, %d
, %H
, %M
, y %S
.
date -s "2014-12-25 $(date +%H:%M:%S)"
embargo, puede usar para cambiar la fecha y reutilizar la hora actual.
date: cannot set date: Invalid argument
date -s 2018-01-01
. Alguien compartió esto en una respuesta también: superuser.com/questions/870068/...
hora del sistema
Puede usar date
para configurar la fecha del sistema. La implementación de GNU de date
(como se encuentra en la mayoría de los sistemas basados en Linux no integrados) acepta muchos formatos diferentes para establecer el tiempo, aquí hay algunos ejemplos:
establecer solo el año:
date -s 'next year'
date -s 'last year'
establecer solo el mes:
date -s 'last month'
date -s 'next month'
establecer solo el día:
date -s 'next day'
date -s 'tomorrow'
date -s 'last day'
date -s 'yesterday'
date -s 'friday'
conjunto todo junto:
date -s '2009-02-13 11:31:30' #that's a magical timestamp
Tiempo de hardware
Ahora la hora del sistema está configurada, pero es posible que desee sincronizarla con el reloj del hardware:
Use --show
para imprimir el tiempo de hardware:
hwclock --show
Puede configurar el reloj del hardware a la hora actual del sistema:
hwclock --systohc
O la hora del sistema para el reloj de hardware
hwclock --hctosys
Cambia la fecha con el date
comando. Sin embargo, el comando espera una fecha completa como argumento:
# date -s "20141022 09:45"
Wed Oct 22 09:45:00 BST 2014
Para cambiar parte de la fecha, envíe la fecha actual con la parte de fecha que desea cambiar como una cadena y todas las demás como variables de formato de fecha. Luego pasa eso al date -s
comando para configurarlo:
# date -s "$(date +'%Y12%d %H:%M')"
Mon Dec 22 10:55:03 GMT 2014
cambia el mes al mes 12 - diciembre.
Los formatos de fecha son:
%Y
- Año%m
- mes%d
- día%H
- hora%M
- MinutoPara aquellos como yo con ESXI 5.1, esto es lo que me respondió el sistema
~ # date -s "2016-03-23 09:56:00"
date: invalid date '2016-03-23 09:56:00'
Tuve que usar un comando ESX específico en su lugar:
esxcli system time set -y 2016 -M 03 -d 23 -H 10 -m 05 -s 00
El comando para cambiar la fecha del sistema es date
.
Hay dos formas de llamar al comando de fecha (en Linux):
date [OPTION]... [+FORMAT]
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
La forma más fácil es usarlo, date -s
ya que permite el uso de fechas relativas simples
$ 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
La fecha no cambió porque se ejecutó con un usuario limitado $
. Si realmente desea cambiar la fecha, use root ( #
) o sudo:
$ sudo date -s yesterday; date
Sat Jan 5 07:21:07 EST 2019
Sat Jan 5 07:21:07 EST 2019
Por lo tanto, cambiar cualquier parte de una fecha relativa es tan fácil como nombrarla:
$ 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
Las fechas absolutas son un poco más complejas ya que necesitan más detalles:
$ date -s "2001-07-23 10:11:12"
O puede usar el comando de fecha dos veces:
$ date -s "$(date +'%Y-%m-%d %H:%M:%S')"
reemplace cualquiera de los %
valores válidos y se establecerá la fecha (solo como raíz).
$ date -s "$(date +'%Y-11-%d %H:%M:%S')"
Wed Nov 6 08:37:15 EST 2019
El formulario de llamada de segunda fecha se usa para cambiar directamente la fecha del sistema.
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
Entonces :
date 11230812 # MMDDhhmm
Fijará la fecha al 23 de noviembre a las 08h y 12min.
BSD tiene un comando similar pero un formato diferente ([[[[[cc] aa] mm] dd] HH] MM [.ss]).
Intente date
como usuario limitado para ver qué haría (sin cambiar nada):
$ date 11230812
date: cannot set date: Operation not permitted
Sat Nov 23 08:12:00 EST 2019
O, si realmente desea cambiar la fecha, como root:
# date 11230812
# date
Sat Nov 23 08:12:00 EST 2019
Tenga en cuenta que los servicios como NTP o chrony se verán afectados. Y, si se reinicia, restablecerá la fecha a la real.
Agregue un AA para establecer el año:
$ date 1123081222
date: cannot set date: Operation not permitted
Wed Nov 23 08:12:00 EST 2022
O un CCYY para establecer año y siglo:
$ date 112308121982
date: cannot set date: Operation not permitted
Tue Nov 23 08:12:00 EST 1982
Utilicé el comando de fecha y el formato de hora que se enumeran a continuación para establecer con éxito la fecha desde el comando de shell del terminal realizado en Android Things que usa Linux Kernal.
fecha 092615002017.00
MMDDHHMMYYYY.SS
MM - Mes - 09
DD - Día - 26
HH - Hora - 15
MM - Min - 00
AAAA - Año - 2017
.SS - segundo - 00
date
, ¿podría agregar más información sobre para qué sistema es relevante y cómo es relevante para esta pregunta en particular?
date --set='-2 years'
para retrasar el reloj dos años, dejando todos los demás elementos idénticos. Puede cambiar el mes y el día del mes de la misma manera. No he comprobado qué sucede si ese cálculo da como resultado una fecha y hora que en realidad no existe, por ejemplo, durante un cambio de horario de verano, pero el comportamiento debe ser idéntico al comportamiento habitual de "establecer la fecha y la hora en valores concretos".