Это могло быть проще упростить команду, чтобы у вас было меньше специальных символов, которыми оболочка могла бы подавиться:
ssh jboss@myTargetServer 'ps -p $(cat /var/run/jboss-as/jboss-as-standalone8.pid) -o %cpu= 2>/dev/null'
Завершающий 2> / dev / null
отбрасывает текст ошибки в том случае, если файл PID либо не может может быть найден или содержит устаревший PID.
Вы можете использовать дату
(при условии реализации GNU) с подстановкой команд, а чтобы получить разницу между временами, используйте арифметическое расширение:
% Value1='2016-10-13 14:19:23'
% Value2='2016-10-13 18:19:23'
% echo "$(($(date -d "$Value2" '+%s') - $(date -d "$Value1" '+%s')))"
14400
Результат в секундах.
Ответ в часах / минутах / секундах:
date -u -d @$(($(date -d "$Value2" '+%s') - $(date -d "$Value1" '+%s'))) '+%T'
Ответ всего за часы / минуты (как первоначально запрашивалось):
date -u -d @$(($(date -d "$Value2" '+%s') - $(date -d "$Value1" '+%s'))) '+%H:%M'
Выше предполагается, что пользователя интересует только разница в часах и минутах и игнорирует разницу в днях. Ответ все зависит от того, чего вы хотите.
Чтобы справиться с разницей больше или равной одному дню:
Value1='2016-10-13 14:19:23'
Value2='2016-10-18 10:34:58'
D1=$(date -d "$Value1" '+%s'); D2=$(date -d "$Value2" '+%s')
echo "$(((D2-D1)/86400)):$(date -u -d@$((D2-D1)) +%H:%M)"
дает:
4:20:15
И для различных оболочек можно также делать такие вещи, как в Bash:
declare -i Delta=D2-D1
declare -i Days=Delta/86400
echo "$Days:$(date -u -d@$Delta +%H:%M)"
$ datediff -f "%H hours and %M minutes" "2016-10-13 14:19:23" "2016-10-13 18:19:23"
4 hours and 0 minutes
datediff - из пакета dateutuils. http://www.fresse.org/dateutils/
Обратите внимание, что в отличие от команды date
, dateutils игнорирует настройки локали, по умолчанию используя GMT. Это может привести к разнице в один час при переходе на летнее время.
Сравните:
$ datediff -f "%H:%M" "2016-10-29 14:00:00" "2016-10-30 14:00:00"
24:0
и
$ datediff --from-zone=Europe/Berlin -f "%H:%M" "2016-10-29 14:00:00" "2016-10-30 14:00:00"
25:0