Предполагая что у вас могут быть разные интерфейсы с разными именами , но , что вам нужен первый не-localhost и не-ipv6, вы можете попробовать:
ip=`ip addr show |grep "inet " |grep -v 127.0.0. |head -1|cut -d" " -f6|cut -d/ -f1`
Вы можете использовать GNU date
для преобразования строки даты -времени в количество секунд (с "эпохи", 1 января 1970 года ). Оттуда это простое арифметическое сравнение
datetime='2016-08-31T15:38:18Z'
timeago='90 days ago'
dtSec=$(date --date "$datetime" +'%s') # For "now", use $(date +'%s')
taSec=$(date --date "$timeago" +'%s')
echo "INFO: dtSec=$dtSec, taSec=$taSec" >&2
[ $dtSec -lt $taSec ] && echo too old
Приведенный ниже сценарий будет читать формат, который вы представили выше, но если у вас уже есть значения в существующих переменных, вы можете объединить код:
#!/bin/bash
cutoff=$(date -d '90 days ago' +%s)
while read -r key colon date
do
age=$(date -d "$date" +%s)
if (($age < $cutoff))
then
printf "Warning! key %s is older than 90 days\n" "$key" >&2
fi
done < input