Let’s say, you have setup a new server which is running either Ubuntu 20.04 or Centos7.9

And while setting up cron, you notice the date time need to be offset correctly to have the actual time locally.

How about we just change the server to use local timezone altogether.

Here is how to do it.

 

Firstly, check first if the timezone list already updated.

Step1 : Check current setting by issuing the following command.

timedatectl

example output: (if UTC)

Local time: Sun 2022-03-13 12:46:47 UTC
Universal time: Sun 2022-03-13 12:46:47 UTC
RTC time: Sun 2022-03-13 12:46:47
Time zone: Etc/UTC (UTC, +0000)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no

 

Step2: Check the actual timezone string required for Kuala Lumpur

timedatectl list-timezones|grep Asia|grep Kuala

..

Asia/Kuala_Lumpur

 

Step3: Set to the target timezone above Asia/Kuala_Lumpur

sudo timedatectl set-timezone Asia/Kuala_Lumpur

 

 

Step4: Re-check again

timedatectl

example output:

Local time: Sun 2022-03-13 20:49:41 +08
Universal time: Sun 2022-03-13 12:49:41 UTC
RTC time: Sun 2022-03-13 12:49:41
Time zone: Asia/Kuala_Lumpur (+08, +0800)
NTP enabled: yes
NTP synchronized: yes
RTC in local TZ: no
DST active: n/a

Step 5: restart crond , httpd and check the logs

sudo service crond restart

sudo service mysqld restart

 

Step 6: Check logs

tail -f /var/log/apache/access.log

example:
52.77.255.203 - - [13/Mar/2022:20:36:44 +0800] "GET //i.php HTTP/1.1" 404 10072 "-" "python-requests/2.27.1"
52.77.255.203 - - [13/Mar/2022:20:36:44 +0800] "GET //infos.php HTTP/1.1" 404 10080 "-" "python-requests/2.27.1"
52.77.255.203 - - [13/Mar/2022:20:36:44 +0800] "GET //linusadmin-phpinfo.php HTTP/1.1" 404 10106 "-" "python-requests/2.27.1"
52.77.255.203 - - [13/Mar/2022:20:36:44 +0800] "GET //dashboard/phpinfo.php HTTP/1.1" 404 10104 "-" "python-requests/2.27.1"

Done.