Создайте оператор метки времени файла Cronjob с локальным сдвигом часового пояса

Следующее корневое задание Crontab используется для сохранения периодических копий с меткой времени веб-страницы каждые 15 минут. Ubuntu 16.04.2 облачный сервер LTS AMD64 24/7 онлайн. Временем, как отображено функцией даты является UTC.

*/15 * * * * /usr/bin/wget --convert-links --output-document=/home/user/Firefox/News-Headlines-$(date +\%Y-\%m-\%d_\%H:\%M:\%S).html www.news.tld

Следующий файл сохранен как ожидалось:

News-Headlines-2017-04-11_02:15:01.html < Time in UTC

Желаемая метка времени для TZ=America/Detroit, в настоящее время-4 UTC

News-Headlines-2017-04-10_22:15:01.html < Time America/Detroit

ВОПРОС

Как дата может управлять быть измененной для создания имени файла с меткой времени TZ=America/Detroit?

News-Headlines-2017-04-10_22:15:01.html

Примечания

Я получил имя собственное часового пояса из Списка Часового пояса

en.wikipedia.org/wiki/List_of_tz_database_time_zones

Я знаю об этих гибридных командных строках для получения, время сместило дату от команды "даты".

Команда даты Vanila производится

$ date
Mon Apr 10 20:52:29 UTC 2017

Время сместило вывод

$ TZ=America/Detroit date
Mon Apr 10 16:25:49 EDT 2017

Я попытался

*/15 * * * * /usr/bin/wget --convert-links --output-document=/home/user/Firefox/News-Headlines-$(TZ=America/Detroit date +\%Y-\%m-\%d_\%H:\%M:\%S).html www.news.tld

Сохраненная метка времени незатронута:

News-Headlines-2017-04-11_02:15:01.html  < Time in UTC
0
задан 10 April 2017 в 17:45

2 ответа

Сделал некоторое экспериментирование с датой, управляют из корня crontab. Из того, что я заметил, что команда даты, выполненная от crontab, не распознает все обозначения Часового пояса, перечисленные в:

en.wikipedia.org/wiki/List_of_tz_database_time_zones

Перезапись процитированной команды в исходном сообщении с основанным на UTC указателем часового пояса в противоположность указателю формата Страны/Города.

*/15 * * * * /usr/bin/wget --convert-links --output-document=/home/user/Firefox/News-Headlines-$(TZ=UTC4 date +\%Y-\%m-\%d_\%H:\%M:\%S).html www.news.tld

ПРИМЕЧАНИЕ: Или GMT или UTC используются, результатами является то же.

Результаты в следующем имени файла с меткой времени, к которому добавляют метку времени для-4 UTC, несмотря на использование указателя часового пояса UTC4 = UTC +4.

# date
Tue Apr 11 18:34:36 UTC 2017

News-Headlines-2017-04-11_14:34:36.html

, В то время как это решение работает, оно не понято почему с помощью указателя часового пояса UTC4 = UTC +4 результата в UTC-4 метки времени.

Эксперимент

Используя UTC-4 результата указателя в противоположном:

$ wget --convert-links --output-document=/home/mark/Downloads/Firefox/FoxNews-Headlines-$(TZ=UTC-4 date +\%Y-\%m-\%d_\%H:\%M:\%S).html www.foxnews.com

# date
Tue Apr 11 18:50:08 UTC 2017

News-Headlines-2017-04-11_22:50:08.html

Эта метка времени составляет 4 часа перед UTC с UTC-4 = UTC-4. Это не понято почему с помощью указателя UTC-4 часового пояса = UTC-4 результата в UTC +4 метки времени.

0
ответ дан 3 November 2019 в 11:51

Установка TZ переменная среды глобально в crontab работах файла:

firas@momiji ~ % cat /etc/cron.d/timestamp 
TZ=America/Detroit

* * * * * firas /usr/bin/wget --quiet --convert-links --output-document=/home/firas/News-Headlines-$(date +\%Y-\%m-\%d_\%H:\%M:\%S).html www.fkraiem.org
firas@momiji ~ % date
Wed Apr 12 04:49:20 JST 2017
firas@momiji ~ % TZ=America/Detroit date
Tue Apr 11 15:49:34 EDT 2017
firas@momiji ~ % ls News-Headlines-2017-04-11_15:4*
News-Headlines-2017-04-11_15:46:01.html  News-Headlines-2017-04-11_15:48:01.html
News-Headlines-2017-04-11_15:47:01.html  News-Headlines-2017-04-11_15:49:01.html

Вещи отметить:

  • Выполнение wget как самостоятельно и не как корень, поскольку в целом опасно выполнить что-либо, что обработало недоверяемые данные как корень.
  • Выполнение wget с --quiet для подавления всего вывода (который иначе отправляется по электронной почте пользователю).
0
ответ дан 3 November 2019 в 11:51

Другие вопросы по тегам:

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