在 Ubuntu 14.04 vps 上,我的时区设置为 UTC/GMT。
root@Ubuntu:/# date
Fri Mar 11 13:36:56 GMT 2016
root@Ubuntu:/# cat /etc/timezone
Europe/London
root@Ubuntu:/# ls -l /etc/localtime
lrwxrwxrwx 1 root root 33 Mar 11 13:20 /etc/localtime -> /usr/share/zoneinfo/Europe/London
但是,/var/log 中的日志文件全部提前了 9 个小时(韩国时间?)。例如
root@Ubuntu:/# tail -3 /var/log/auth.log.1
Mar 11 22:27:05 Ubuntu sshd[18170]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=211.99.249.89
Mar 11 22:27:07 Ubuntu sshd[18170]: Failed password for invalid user cstrike from 211.99.249.89 port 38066 ssh2
Mar 11 22:27:07 Ubuntu sshd[18170]: Connection closed by 211.99.249.89 [preauth]
service rsyslog restart
即使经过和之后,情况仍然如此dpkg-reconfigure tzdata
。
如何让所有内容都处于同一时区?
答案1
我遇到了同样的问题,并在 14.04 服务器上连续发出命令dpkg-reconfigure tzdata
和。然后我在查看时启动了 ssh 连接service rsyslog restart
auth.log
tail -f /var/log/auth.log
从那时起,日志消息都是正确的,正如此代码片段所示
Aug 16 09:02:40 myhost sshd[11913]: Accepted publickey ...
Aug 16 09:02:40 myhost sshd[11913]: pam_unix(sshd:session): opened ...
Aug 16 09:02:43 myhost sshd[11913]: pam_unix(sshd:session): closed ...
Aug 16 15:04:45 myhost sshd[12019]: Accepted publickey ....
Aug 16 15:04:45 myhost sshd[12019]: pam_unix(sshd:session): opened ...
Aug 16 15:05:11 myhost sshd[12019]: pam_unix(sshd:session): closed ...
我看到你对(旧日志文件)进行了跟踪auth.log.1
。更改时区不会追溯修改现有日志文件。这可能是问题所在吗?
答案2
(正如我回答的那样别处)这个命令在 Ubuntu 22.10 中为我完成了此操作:
$ sudo timedatectl set-timezone America/New_York
时区名称:
$ timedatectl list-timezones | less
确认:
$ timedatectl
Local time: Sat 2022-11-26 10:52:08 EST
Universal time: Sat 2022-11-26 15:52:08 UTC
RTC time: Sat 2022-11-26 15:52:08
Time zone: America/New_York (EST, -0500)
直到您重新启动,日志文件才会显示新的时区。sudo apache2ctl restart
对 apache 日志执行此操作但获取所有日志(mysql,certbot 等):
$ reboot
我尽量不讨厌 Oracle,我真的尽力了。但为了/var/log/mysql/error.log
使用我的时区设置,我必须采取以下额外步骤:
sudo nano /etc/mysql/mysql.conf.d/timestamps_system.cnf
并把MTK的解决方案有:
[mysqld]
log_timestamps = SYSTEM