如何在 EC2 实例中手动设置未来的日期和时间并使其永久化,以便重启后不会重置?
我可以使用以下命令更改日期:
$ sudo timedatectl set-time "2017-12-09 16:00:00"
$ timedatectl
Local time: Sat 2017-12-09 16:00:01 UTC
Universal time: Sat 2017-12-09 16:00:01 UTC
RTC time: Sat 2017-12-09 16:00:02
Time zone: Etc/UTC (UTC, +0000)
Network time on: no
NTP synchronized: no
RTC in local TZ: no
EC2 上的操作系统:
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.3 LTS
Release: 16.04
Codename: xenial
我还应该做什么才能使这种情况永久化?
这次调整的目的是将日期设置为未来,这样我就可以测试一些东西。
答案1
您可以ntp
为您的实例进行设置。
安装包ntp
apt-get/yum install ntp
编辑配置
nano /etc/ntp.conf
将服务器添加ntp
到配置文件中,根据您居住的国家/地区查找适当的服务器(只需谷歌“your_country_name ntp server”)。根据您的操作系统,配置文件可能包含服务器而不是池,反之亦然。
server/pool 0.ntp_server_in_your_country iburst
重新启动并启用ntpd
守护进程。
systemctl enable ntpd && systemctl start ntpd
ntp
会确保每次重新启动服务器时您都有正确的时间,因为它会与服务器的时间同步。
答案2
Libfaketime,如果您的应用程序预装了该功能,则可以添加偏移量或将特定时间设置为当前时间。它可能比设置系统范围的更改效果更好。
不过,如果需要的话,它还可以设置系统范围的时间。
基本用法是:
LD_PRELOAD=/usr/local/lib/libfaketime.so.1 FAKETIME="2017-12-09 16:00:00" commandyouneed