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

#time = 12:56
#x = 2

if time_bool:
  time = time + x
  #time = 12:58
else:
  time = time - x
  #time = 12:54

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

2 ответа2

3

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

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

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

Проверено на Ubuntu.

0

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

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

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .