У меня есть сценарий 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"