Следующее корневое задание 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
Сделал некоторое экспериментирование с датой, управляют из корня 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 метки времени.
Установка 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
для подавления всего вывода (который иначе отправляется по электронной почте пользователю).