Назад | Перейти на главную страницу

Сравнение отметок времени в AIX без даты -d

У меня есть сценарий bash в AIX 7, который выполняет запрос к базе данных, и получаемый мной вывод представляет собой временную метку в следующем формате: 201607130319.

Теперь я хотел бы сравнить метку времени с текущим временем (date +%Y%m%d%H%M - 201607201802) и проверьте разницу в минутах. Мне в основном нужно знать, составляет ли разница больше 10 минут.

Я знаю, что могу сделать это в Linux, используя date -d но он недоступен в AIX. Мне также не разрешено ничего устанавливать на сервер, так какие у меня здесь варианты?

Perl, вероятно, установлен, так что вы можете сделать

timestamp=$( some process )   # timestamp=201607130319
perl -se '
    use Time::Local;
    if ($ts =~ /^(\d{4})(\d\d)(\d\d)(\d\d)(\d\d)$/) {
        $time = timelocal(0,$5,$4,$3,$2-1,$1-1900);
        $now  = time;
        if (abs( $time - $now ) > 600) {
            print "more than 10 minutes\n";
        }
    }
' -- -ts="$timestamp"