Переменные календарных месяцев в скрипте BASH

Я пишу сценарий BASH, который вызывает API, который представляет метрики для конкретных временных периодов. Я планирую запускать сценарий для задания cron 1-го числа каждого месяца, вызов API должен содержать время начала и окончания и быть в формате эпох с миллисекундами. Миллисекунды должны быть в порядке, чтобы установить в 000, поскольку это не должно быть таким конкретным, но API требует этого.

Как я могу написать сценарий, чтобы посмотреть текущее время, удобное для чтения человеком, затем посмотреть точное время ровно за 1 календарный месяц до этого, затем преобразовать оба вывода в эпоху, а затем ввести времена эпох в команде curl как переменную?

Пример:

Сценарий запускается в 1:00 1 июля, затем сценарий понимает полный календарный месяц до 1 июня, преобразует оба в эпоху, помещает их в команду curl с помощью переменных.

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

 date --date="1 month ago" +"%d%m%Y"

Всего 1 ответ


Чтобы создать переменную, используя дату в эпоху времени с миллисекундами:

ENDDATE=`date +%s%N | cut -b1-13`
STARTDATE=`date --date="1 month ago" +%s%N | cut -b1-13`

Используйте эти переменные в команде cURL.


Есть идеи?

10000