У меня есть несколько сценариев tmux, которые отображают информацию, такую как ip, время, имя хоста и т. Д. В моей строке состояния tmux. Например, IP-скрипт выглядит следующим образом:Как отключить сетевые вызовы, которые делают некоторые мои плагины tmux?
#!/bin/bash
runSegment() {
# check for a network connection
nc -z 8.8.8.8 53 >/dev/null 2>&1
online=$?
if [ $online -eq 0 ]; then
# get ip
ip=`curl icanhazip.com`
echo -n " ${ip}"
else
echo ""
fi
}
export -f runSegment
Он проверяет наличие подключения к сети и получает IP-адрес, если есть один. Теперь моя строка состояния tmux устанавливается на обновление каждые пять секунд (tmux set-option -g status-interval 5
). Но сетевые запросы к этим услугам каждые пять секунд кажутся немного чрезмерными.
Тем не менее, я хотел бы сохранить информацию о состоянии батареи и времени, обновляемом каждые пять секунд, поэтому установка интервала состояния до пяти минут или около того не является вариантом.
Итак, как мне получить этот скрипт для возврата кешированного значения, и только через пять минут или около того обновите это значение? Я предполагаю, что мне нужно решить это в bash, но для этого мне нужно иметь внутреннее состояние, и поскольку этот скрипт запускается заново каждый раз, когда я не уверен, как это сделать.
Вы думали о сохранении требуемого состояния с помощью файла (например, что будет содержать метку времени, когда была сделана последняя удачная попытка)? – Fred
@Fred Да, похоже, что это был бы путь. Могу ли я сохранить как метку времени, так и полученное значение в файле, или было бы разумнее сохранить их для разделения файлов? – vsjn3290ckjnaoij2jikndckjb
Вы можете просто использовать время модификации файла как метку времени. – Barmar