Относительное изменение системного времени Linux

Относительное изменение системного времени Linux

Мне нужен скрипт, который будет изменять системное время на xколичество минут. Что-то вроде:

#время = 12:56
#х = 2

если время_бул:
  время = время + х
  #время = 12:58
еще:
  время = время - х
  #время = 12:54

Это часть некоторого тестирования Red Hat, но, возможно, его придется перенести на другую ОС (вероятно, Fedora или CentOS).

решение1

Вы могли бы просто сделать

if $time_bool; then
    date --set="+${x} minutes"
else
    date --set="-${x} minutes"
fi

Синтаксис строки даты GNU dateдовольно свободный и допускает множество вещей.

Протестировано на Ubuntu.

решение2

Простым способом может быть:

date --set=@$(( $(date +%s) + 120 ))

(Не проверено)

Но я не могу гарантировать, что это будет работать между ОС, поскольку date +%sэто расширение.

Скрипт пытается получить текущую дату по Гринвичу, преобразовать ее в секунды эпохи, добавить 120 секунд, а затем установить дату из секунд эпохи Unix.

Связанный контент