#!/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 | mawk -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=$( mawk -f ckt0.awk ${t0_est} | tail -n2 ) #mawk -f ckt0.awk sleep $( mawk 'BEGIN {print(sqrt( rand()^2.0 + 1.0 ))}' ) #sleep $( echo $t0_est | mawk '{print(sqrt( ((60.0*$4)/(60.0 + $4))^2.0 + rand()^2.0 ))}' ) #sleep $( echo $t0_est | mawk '{print(sqrt( ($2)^2.0 + ($4)^2.0 + ($6)^2.0 + rand()^2.0 ))}' ) #sleep $( echo $t0_est | mawk '{print( 10.0 - (systime() - $5)%10.0 + 0.5*rand()^2.0 )}' ) done printf "${t0_est}\n" | tee t0_est.log # [debug] disable execution tracing set +x