1

Я пытаюсь выполнить команду даты в Unix Server для вчерашнего дня. Пробованные команды:

date --date="1 day ago"
date --date="1 days ago"  
date --date="yesterday"
date --date="-1 day"

Эти команды работают на сервере, но эта же команда не работает на нескольких других серверах, где дата правильно печатает текущую дату. Может кто-нибудь предложить, что может быть проблема с другими серверами? Я получаю сообщение об ошибке типа: illegal option -- date=1 day ago

Подробности сервера: SunOS wupsa02a0014 5.10 Generic_147440-15 sun4u sparc SUNW, SPARC-Enterprise

2 ответа2

5

--date не является обычной опцией даты на многих системах Unix.

Если у вас есть широкий спектр UNIX/linux-подобных платформ для работы, попробуйте проверить man-страницу для date (1) на каждой из них (если man-страницы установлены) и посмотреть, какие параметры даты являются общими для всех них. в качестве отправной точки.

Вы можете найти дату -v (настроить) достаточно переносимой.

Что-то вроде date -v-1d может работать. Протестируйте его на каждой системе, чтобы увидеть, работает ли он на всех них. Он отображает текущее значение данных, скорректированное за один день в прошлом.

1

Вы можете просто вычесть 24 часа из переменной среды TZ до date вызова.

$ TZ=GMT date
Wed Mar 27 09:11:02 GMT 2013
$ TZ=GMT+24 date
Tue Mar 26 09:11:05 GMT 2013

Работает как на Solaris, так и на Linux.

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