#!/usr/bin/env sh # estimate sytem boot time # [debug] enable execution tracing #set -x set -e # raw input data #date +%s #sysctl_t0_str=$( sysctl kern.boottime | awk -F= '{print($NF)}' ) #sysctl_t0=$( date -jf "%a %b %d %H:%M:%S %G" "${sysctl_t0_str}" +%s ) # check for saved state if [ -f t0_est.log ] ; then { t0_est="$( cat t0_est.log )" } else { t0_est="" } fi printf "n t_est t_unc t_up_est t_up_unc t0_est t0_unc\n" | column -t for N in $(seq 0 10080) ; do printf "${N} ${t0_est}\n" | column -t t0_est=$( awk -f ckt0.awk ${t0_est} | tail -n2 ) #awk -f ckt0.awk #sleep $( awk 'BEGIN {print(sqrt( rand()^2.0 + 1.0 ))}' ) #sleep $( echo $t0_est | awk '{print(sqrt( ((60.0*$4)/(60.0 + $4))^2.0 + rand()^2.0 ))}' ) sleep $( echo $t0_est | awk '{print( sqrt($2^2.0 + $4^2.0 + $6^2.0 + rand()^2.0)%60.0 )}' ) done printf "${t0_est}\n" | tee t0_est.log # [debug] disable execution tracing set +x