retry() {
trialNumber=$1 delay=$2; shift 2
while [ "$trialNumber" -gt 0 ]; do
"$@" && return
ret=$?
sleep "$delay"
trialNumber=$(($trialNumber - 1))
done
return "$ret"
}
retry 5 20 ssh "$USERID@$HOST" "$SCRIPT_LOCATION/runme.sh"
Хотя последнее sleep
в случае отказа не необходимо. Может быть лучше как:
retry() {
trialNumber=$1 delay=$2; shift 2
until "$@"; do
ret=$?
trialNumber=$(($trialNumber - 1))
[ "$trialNumber" -gt 0 ] || return "$ret"
sleep "$delay"
done
}
]Вам нужно определенное количество данных, чтобы удостовериться, что база данных точная. Таким образом, вы можете либо вручную сделать снимки, либо провести анализ в реальном времени. Я написал программу, которая делает постоянный снэпшот (каждые 15 секунд). Это грубо, но это должно помочь. []Vnstatschedule[][
]vnstat -u -i eth0
]
[]После установки вы должны запустить команду выше, она будет запускать базу данных для этого интерфейса, [
] [vnstat -d
]
[]Для разбивки данных сетевой статистики по дням, также с: []vnstat -h[
] в течение нескольких часов. [
]vnstat должен быть запущен в фоновом режиме с помощью crontab, для этого необходимо включить его, так как после установки в папке /etc/cron.d создается задание cron:[
] [vi /etc/cron.d/vnstat
*/5 * * * * vnstat /usr/sbin/vnstat.cron
]
[]После этого вы можете регулярно добавлять запись cron:[
] [* * * * * vnstat >> /tmp/vnstat_usage
]