Home Learn Linux 5 foolproof ways to manage and get time in Linux

5 foolproof ways to manage and get time in Linux

From utilizing NTP servers to exploring system clocks and chrony, we've got you covered. Ready to get started on honing your Linux time management skills?

by Divya Kiran Kumar
foolproof ways to manage and retrieve time in linux

Linux, with its powerful command-line interface, allows you to handle time settings with precision and ease. In this blog post, I am going to walk you through five foolproof methods that you can use to manage and get time in Linux. It’s something I’ve done hundreds of times, sometimes with a cup of coffee by my side, and sometimes late into the night. So grab a cup of your favourite beverage, and let’s dive in!

Introduction

Linux has always been a favourite of mine, despite its notorious reputation of being the domain of only the hardcore computer enthusiasts. But trust me, once you’ve spent a decent amount of time with it, Linux becomes less of a tough nut to crack and more of a loyal friend, always ready to obey your commands. One of the tasks I often find myself engaged in is managing time settings — a vital aspect of system administration.

Throughout my ride, I have stumbled upon various methods to manage and get time in Linux, some were highly technical while others were plain simple but effective. Below, I will share my insights on these methods and how you can effectively use them in Linux, my dear readers.

Unveiling the essence of time in Linux

Before we venture into the depths, let’s understand why managing time is so essential in Linux. In a Linux system, time is not just the ticking clock on your desktop. It plays a crucial role in system security and the accuracy of logs and other operations. As a personal preference, I always make it a point to ensure that the system time is accurate, not just because I am a stickler for time management, but also because it helps in troubleshooting and maintaining the integrity of the system.

The hardware and system clock

At the core of time management in Linux, we have two types of clocks: the Hardware Clock and the System Clock. My initial days with Linux were spent in understanding the intricacies between these two. Here is a simple breakdown:

  1. Hardware clock: Also known as the Real-Time Clock (RTC). It runs even when the system is shut down. I like to think of it as the ever-vigilant watchman, keeping time even when everything else is asleep.
  2. System clock: This is a software clock that runs only when the system is up. In my experience, this clock is like the busy executive, getting to work only when the system starts and resting when it’s off.

Understanding these two clocks is fundamental to mastering time management in Linux. Now, let’s proceed to the various methods of managing and getting time in Linux.

Method 1: Using the date command – The old reliable

The first method that I would like to discuss is using the date command. It’s like the old reliable friend who has been there since the beginning. This command allows you to display and set the system date and time. Over the years, I’ve used this command more times than I can count, and it has never let me down.

Displaying the current date and time

To display the current date and time, simply type date in the command line and press Enter. It’s as simple as that. Here is an example:

date
Mon Sep 18 08:55:35 PM EDT 2023

This command, though simple, holds a special place in my heart for its simplicity and reliability.

Setting the date and time

Setting the date and time is also a straightforward process. You would use the date command followed by the new date and time in a specific format. Here’s how:

sudo date -s "18 SEP 2023 12:34:56"

Though this method is quick, I must admit, I find it slightly archaic. But it is undeniably handy in situations where you need to set time quickly, especially during system setups or when you are setting a system offline.

Method 2: The hwclock command – Communicating with the hardware clock

The hwclock command is a utility that I use to read and set the hardware clock. My personal affection for this command comes from its ability to interact with the hardware clock directly.

Reading the hardware clock

To read the hardware clock, you can use the following command:

sudo hwclock
2023-09-18 20:57:30.462866-04:00

Synchronizing the hardware and system clocks

One of the features of the hwclock command that I genuinely appreciate is its ability to synchronize the hardware and system clocks. You can synchronize the system clock with the hardware clock using the following command:

sudo hwclock -w

I find this feature to be quite reassuring, as it ensures that the time remains consistent even after a system reboot.

Method 3: Using timedatectl – A modern approach

The timedatectl command is a relatively modern utility that allows you to control the system time and date. I must say, it has become a favourite of mine due to its extensive features and easy-to-understand format.

Displaying time settings

To display the current time settings, you can use the timedatectl command as shown below:

timedatectl

The output provides a comprehensive view of the current time settings, something that I find very convenient.

using timedatectl

Using timedatectl

Setting the time zone

Setting the time zone using timedatectl is a breeze. Here’s how:

sudo timedatectl set-timezone America/New_York

I love the simplicity and efficiency of this command, and it has become a go-to for managing time zones in Linux.

Method 4: Configuring the NTP service – Syncing with network time servers

The next method I often find myself using is configuring the Network Time Protocol (NTP) service. I must admit, I have a soft corner for NTP due to its ability to synchronize system clocks over a network.

Installing the NTP package

Before you can use NTP, you would need to install it. Here is the command to do so:

sudo apt install ntp
installing ntp on ubuntu

Installing ntp on Ubuntu

Starting and enabling the NTP service

Once installed, you can start and enable the NTP service using the following commands:

sudo systemctl start ntp
sudo systemctl enable ntp

I find this method to be highly reliable for maintaining accurate system time, especially in networked environments.

Method 5: Making use of cron jobs – Automating time management tasks

Last but certainly not least, we have cron jobs, a method that I appreciate for its automation capabilities. Cron jobs allow you to automate various time management tasks in Linux.

Creating a cron job

To create a cron job, you can use the crontab command as shown below:

crontab -e

When running this command on Linux, you may need to select an editor from multiple options. Here’s an example screenshot from my PC:

running crontab

Running crontab

Next, add a line specifying the time and the command to be executed. Here is an example:

0 3 * * * /usr/sbin/ntpdate
creating a cron job to sync time automatically

Creating a cron job to sync time automatically

This cron job will synchronize the system time with the network time servers daily at 3 AM. As someone who likes automation, I find cron jobs to be an indispensable tool for time management in Linux.

Frequently Asked Questions: Clearing the Clouds on Linux Time Management

I understand that the world of Linux time management might be teeming with questions, especially for those who are embarking on this journey for the first time. Here, I will address the top five questions that have come my way over the years. These questions encapsulate the common queries that many enthusiasts and professionals have asked me during my time exploring the Linux operating system.

1. What is the significance of managing time in Linux systems?

Answer: Managing time in a Linux system is of utmost importance for a variety of reasons. Firstly, it helps in maintaining the security of the system, as accurate time stamps are essential for tracking activities and identifying potential security breaches. Secondly, it ensures the accuracy of log files, which are vital for troubleshooting and system monitoring. Thirdly, many applications rely on accurate time settings to function correctly. In my personal experience, managing time effectively in Linux has always been a cornerstone of smooth system operation.

2. How do I choose between using the date and hwclock commands?

Answer: Choosing between the date and hwclock commands depends largely on your specific needs. The date command is primarily used to read and set the system clock, which is a software clock running when the system is operational. It’s a quick and easy way to adjust time settings. On the other hand, hwclock is used for interacting with the hardware clock, a physical clock running continuously even when the system is off. In scenarios where you want to synchronize the hardware and system clocks or manage the hardware clock specifically, using hwclock would be more appropriate. Personally, I use date for quick adjustments and hwclock when I am looking to make changes at a hardware level.

3. Can I use NTP for time synchronization in offline environments?

Answer: The Network Time Protocol (NTP) primarily functions by synchronizing the system clock with time servers over the network. Therefore, in offline environments, NTP would not be able to function as intended since it cannot access these servers. In such cases, you would need to rely on other methods like manually setting the time using date or hwclock commands. It’s important to note that I often find myself using the NTP service in networked environments for maintaining accurate time settings, as it can automatically synchronize with reliable time servers, keeping the system time precise.

4. Are cron jobs a reliable method for automating time management tasks?

Answer: Absolutely, cron jobs are an incredibly reliable method for automating time management tasks. By using cron jobs, you can schedule commands or scripts to run at specified times without any manual intervention. This not only ensures that the necessary tasks are performed regularly but also helps in reducing the workload for system administrators. I have always been a fan of automation, and cron jobs have been an invaluable tool in my Linux toolkit for ensuring that tasks like time synchronization are performed regularly and automatically.

5. How do I find out my current time zone setting and change it using timedatectl?

Answer: Finding out your current time zone is quite simple with the timedatectl command. Just type timedatectl in the terminal and press Enter; the output will display the current time zone setting among other details. To change the time zone, use the timedatectl set-timezone command followed by the desired time zone. For example:

sudo timedatectl set-timezone America/New_York

You can find a list of available time zones using the command:

timedatectl list-timezones

In my opinion, the timedatectl command is a modern and comprehensive utility for managing time settings in Linux, and I particularly appreciate its user-friendly approach to handling time zones.

Handy reference – Time commands in Linux

Here’s a table that encapsulates various time-related commands in Linux that could be an excellent addition to your blog. These commands are a mix of those that deal with hardware time, system time, and user time, giving a broad perspective to readers:

Command Description Example
date Displays or sets the current date and time date
hwclock Displays or sets the hardware clock hwclock --show
timedatectl Control the system time and date settings timedatectl set-time '12:34:56'
ntpdate Updates the system time from a remote NTP server sudo ntpdate time.google.com
ntpq Queries the NTP server for synchronization status ntpq -p
date -s Sets the system date and time date -s '2023-09-18 14:53:00'
date +%T -s Sets the system time date +%T -s '14:53:00'
tzselect Allows you to select the time zone interactively tzselect
timedatectl set-timezone Sets the time zone timedatectl set-timezone America/New_York
date +%s Displays the current time in seconds since the Unix epoch date +%s
date -d Displays the date in different formats date -d yesterday
date -u Displays the date in Coordinated Universal Time (UTC) date -u

Conclusion: The never-ending journey

As we come to the end of our exploration, I hope you have gathered the knowledge and confidence to manage and get time in Linux using these foolproof methods. From the straightforward date command to the powerful automation capabilities of cron jobs, Linux offers a range of tools to manage time effectively.

My time with Linux has been a long and rewarding one, and managing time settings is just a small part of it. I sincerely hope that you, too, will find these methods useful and perhaps develop a fondness for Linux, just like I have.

You may also like

Leave a Comment

fl_logo_v3_footer

ENHANCE YOUR LINUX EXPERIENCE.



FOSS Linux is a leading resource for Linux enthusiasts and professionals alike. With a focus on providing the best Linux tutorials, open-source apps, news, and reviews written by team of expert authors. FOSS Linux is the go-to source for all things Linux.

Whether you’re a beginner or an experienced user, FOSS Linux has something for everyone.

Follow Us

Subscribe

©2016-2023 FOSS LINUX

A PART OF VIBRANT LEAF MEDIA COMPANY.

ALL RIGHTS RESERVED.

“Linux” is the registered trademark by Linus Torvalds in the U.S. and other countries.