Откуда `at` знает, что будет изменение времени?

Как утверждают комментаторы, может быть несколько причин, по которым вы не можете подключиться к myserverip. В этом случае вы можете использовать функцию пересылки ssh `:

.
 (myserverip)$ ssh -R 2002:localhost:22 root@remoteserverip
   password:
 (remoteserver)$ scp -P 2002 theFileIwant myname@localhost:/home/
12
27.10.2019, 22:56
1 ответ

at пытается проанализировать данные даты и времени и прогоняет их через mktime()с параметром «Летнее время», установленным на -1 (недоступно, авто -определяет ).

atисходный код:

  tm1.tm_isdst = -1;
  t = mktime (&tm1);

man 3 mktime:

The value specified in the tm_isdst field informs mktime() whether or not daylight saving time (DST) is in effect for the time supplied in the tm structure: a positive value means DST is in effect; zero means that DST is not in effect; and a negative value means that mktime() should (use timezone information and system databases to) attempt to determine whether DST is in effect at the specified time.

The mktime() function modifies the fields of the tm structure as follows: [...] tm_isdst is set (regardless of its initial value) to a positive value or to 0, respectively, to indicate whether DST is or is not in effect at the specified time.

Итак, mktime()решает, действует летнее время или нет; и, похоже, он предпочитает более позднюю дату из двух возможных вариантов (, хотя из документации неясно, как принимается это решение ).

atзатем преобразует его в метку времени UNIX (секунд с 1 января 1970 года ). И как только вы это сделаете, больше не будет такой вещи, как изменение времени. Перевод часов вперед и назад на один час меняет только человеческое представление о времени или часовой пояс, в котором вы находитесь; он не меняет ни количество секунд с начала эпохи, ни количество секунд до запуска задачи.


I tried scheduling events one minute in the future (as a test)

В примечании вы можете использовать такое выражение, как next minute, которое будет выполняться в следующую минуту, независимо от того, изменилось время или нет.

21
27.01.2020, 19:55

Теги

Похожие вопросы