Created
June 4, 2025 14:09
-
-
Save ExtremeFiretop/153cf1e1aab74a7e9010079da575c9b4 to your computer and use it in GitHub Desktop.
/jffs/scripts/ntpmerlin generate
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Admin@GT-BE98_Pro:/tmp/home/root# /jffs/scripts/ntpmerlin generate | |
+ readonly SCRIPT_NAME=ntpMerlin | |
+ echo ntpMerlin | |
+ + trsed A-Z s/d// a-z | |
+ readonly SCRIPT_NAME_LOWER=ntpmerlin | |
+ readonly SCRIPT_VERSION=v3.4.7 | |
+ readonly SCRIPT_VERSTAG=25052712 | |
+ SCRIPT_BRANCH=master | |
+ SCRIPT_REPO=https://raw.githubusercontent.com/AMTM-OSR/ntpMerlin/master | |
+ readonly SCRIPT_DIR=/jffs/addons/ntpmerlin.d | |
+ readlink -f /www/user | |
+ readonly SCRIPT_WEBPAGE_DIR=/tmp/var/wwwext | |
+ readonly SCRIPT_WEB_DIR=/tmp/var/wwwext/ntpmerlin | |
+ readonly SHARED_DIR=/jffs/addons/shared-jy | |
+ readonly SHARED_REPO=https://raw.githubusercontent.com/AMTM-OSR/shared-jy/master | |
+ readonly SHARED_WEB_DIR=/tmp/var/wwwext/shared-jy | |
+ readonly TEMP_MENU_TREE=/tmp/menuTree.js | |
+ nvram get odmpid | |
+ [ -z GT-BE98_Pro ] | |
+ nvram get odmpid | |
+ ROUTER_MODEL=GT-BE98_Pro | |
+ [ -f /opt/bin/sqlite3 ] | |
+ SQLITE3_PATH=/opt/bin/sqlite3 | |
+ readonly scriptVersRegExp=v[0-9]{1,2}([.][0-9]{1,2})([.][0-9]{1,2}) | |
+ readonly webPageMenuAddons=menuName: "Addons", | |
+ readonly webPageHelpSupprt=tabName: "Help & Support"}, | |
+ readonly webPageFileRegExp=user([1-9]|[1-2][0-9])[.]asp | |
+ readonly webPageLineTabExp=\{url: "user([1-9]|[1-2][0-9])[.]asp", tabName: | |
+ readonly webPageLineRegExp=\{url: "user([1-9]|[1-2][0-9])[.]asp", tabName: "ntpMerlin"\}, | |
+ readonly BEGIN_MenuAddOnsTag=/\*\*BEGIN:_AddOns_\*\*/ | |
+ readonly ENDIN_MenuAddOnsTag=/\*\*ENDIN:_AddOns_\*\*/ | |
+ readonly scriptVERINFO=[v3.4.7_25052712, Branch: master] | |
+ readonly defTrimDB_Hour=3 | |
+ readonly defTrimDB_Mins=7 | |
+ readonly oneHrSec=3600 | |
+ readonly _12Hours=43200 | |
+ readonly _24Hours=86400 | |
+ readonly _36Hours=129600 | |
+ readonly oneKByte=1024 | |
+ readonly oneMByte=1048576 | |
+ readonly ei8MByte=8388608 | |
+ readonly ni9MByte=9437184 | |
+ readonly tenMByte=10485760 | |
+ readonly oneGByte=1073741824 | |
+ readonly SHARE_TEMP_DIR=/opt/share/tmp | |
+ readonly CRIT=\e[41m | |
+ readonly ERR=\e[31m | |
+ readonly WARN=\e[33m | |
+ readonly PASS=\e[32m | |
+ readonly BOLD=\e[1m | |
+ readonly SETTING=\e[1m\e[36m | |
+ readonly CLEARFORMAT=\e[0m | |
+ readonly CLRct=\e[0m | |
+ readonly REDct=\e[1;31m | |
+ readonly GRNct=\e[1;32m | |
+ readonly CritIREDct=\e[41m | |
+ readonly CritBREDct=\e[30;101m | |
+ readonly PassBGRNct=\e[30;102m | |
+ readonly WarnBYLWct=\e[30;103m | |
+ readonly WarnIMGNct=\e[45m | |
+ readonly WarnBMGNct=\e[30;105m | |
+ export PATH=/bin:/usr/bin:/sbin:/usr/sbin:/opt/bin:/opt/sbin:/bin:/usr/bin:/sbin:/usr/sbin:/rom/scripts:/home/Admin:/mmc/sbin:/mmc/bin:/mmc/usr/sbin:/mmc/usr/bin:/opt/sbin:/opt/bin:/opt/usr/sbin:/opt/usr/bin | |
+ TMPDIR=/opt/share/tmp | |
+ SQLITE_TMPDIR=/opt/share/tmp | |
+ export SQLITE_TMPDIR TMPDIR | |
+ [ -f /opt/share/ntpmerlin.d/config ] | |
+ SCRIPT_STORAGE_DIR=/jffs/addons/ntpmerlin.d | |
+ SCRIPT_CONF=/jffs/addons/ntpmerlin.d/config | |
+ NTPDSTATS_DB=/jffs/addons/ntpmerlin.d/ntpdstats.db | |
+ CSV_OUTPUT_DIR=/jffs/addons/ntpmerlin.d/csv | |
+ JFFS_LowFreeSpaceStatus=OK | |
+ [ master != develop ] | |
+ SCRIPT_VERS_INFO= | |
+ [ 1 -eq 0 ] | |
+ [ -z generate ] | |
+ NTP_Ready | |
+ local theSleepDelay=15 ntpMaxWaitSecs=600 ntpWaitSecs | |
+ nvram get ntp_ready | |
+ [ 1 -eq 0 ] | |
+ Entware_Ready | |
+ local theSleepDelay=5 maxSleepTimer=120 sleepTimerSecs | |
+ [ ! -f /opt/bin/opkg ] | |
+ Check_Lock | |
+ [ -f /tmp/ntpMerlin.lock ] | |
+ echo 2708 | |
+ return 0 | |
+ Get_TimeServer_Stats | |
+ [ ! -f /opt/bin/xargs ] | |
+ [ -n 15879 ] | |
+ ps | |
+ grep -v grep | |
+ grep -v 2708 | |
+ xargs kill -9 | |
+ + grepgrep generate -v | |
15879 | |
+ awk+ grep -i ntpMerlin | |
{print $1} | |
+ Create_Dirs | |
+ [ ! -d /jffs/addons/ntpmerlin.d ] | |
+ [ ! -d /jffs/addons/ntpmerlin.d ] | |
+ [ ! -d /jffs/addons/ntpmerlin.d/csv ] | |
+ [ ! -d /jffs/addons/shared-jy ] | |
+ [ ! -d /tmp/var/wwwext ] | |
+ [ ! -d /tmp/var/wwwext/ntpmerlin ] | |
+ [ ! -d /opt/share/tmp ] | |
+ Conf_Exists | |
+ [ -f /jffs/addons/ntpmerlin.d/config ] | |
+ dos2unix /jffs/addons/ntpmerlin.d/config | |
+ chmod 0644 /jffs/addons/ntpmerlin.d/config | |
+ sed -i -e s/"//g /jffs/addons/ntpmerlin.d/config | |
+ grep -q OUTPUTDATAMODE /jffs/addons/ntpmerlin.d/config | |
+ grep -q ^OUTPUTTIMEMODE= /jffs/addons/ntpmerlin.d/config | |
+ grep -q ^DAYSTOKEEP= /jffs/addons/ntpmerlin.d/config | |
+ grep -q ^LASTXRESULTS= /jffs/addons/ntpmerlin.d/config | |
+ grep -q ^STORAGELOCATION= /jffs/addons/ntpmerlin.d/config | |
+ grep -q ^JFFS_MSGLOGTIME= /jffs/addons/ntpmerlin.d/config | |
+ grep -q ^TIMESERVER= /jffs/addons/ntpmerlin.d/config | |
+ return 0 | |
+ Auto_Startup create | |
+ Auto_Cron create | |
+ Auto_ServiceEvent create | |
+ NTP_Firmware_Check | |
+ nvram get ntpd_enable | |
+ ENABLED_NTPD=0 | |
+ Validate_Number 0 | |
+ [ 0 -eq 0 ] | |
+ return 0 | |
+ [ 0 -eq 1 ] | |
+ return 0 | |
+ ScriptStorageLocation load | |
+ ScriptStorageLocation check | |
+ grep ^STORAGELOCATION= /jffs/addons/ntpmerlin.d/config | |
+ cut -f2 -d= | |
+ STORAGELOCATION=jffs | |
+ echo jffs | |
+ STORAGELOCATION=jffs | |
+ [ jffs = usb ] | |
+ [ jffs = jffs ] | |
+ SCRIPT_STORAGE_DIR=/jffs/addons/ntpmerlin.d | |
+ chmod 777 /jffs/addons/ntpmerlin.d | |
+ NTPDSTATS_DB=/jffs/addons/ntpmerlin.d/ntpdstats.db | |
+ CSV_OUTPUT_DIR=/jffs/addons/ntpmerlin.d/csv | |
+ [ 1 -gt 1 ] | |
+ Create_Symlinks | |
+ rm -rf /tmp/var/wwwext/ntpmerlin/config.htm /tmp/var/wwwext/ntpmerlin/csv /tmp/var/wwwext/ntpmerlin/detect_ntpmerlin.js /tmp/var/wwwext/ntpmerlin/lastx.htm /tmp/var/wwwext/ntpmerlin/ntpstatstext.js | |
+ ln -s /tmp/detect_ntpmerlin.js /tmp/var/wwwext/ntpmerlin/detect_ntpmerlin.js | |
+ ln -s /jffs/addons/ntpmerlin.d/ntpstatstext.js /tmp/var/wwwext/ntpmerlin/ntpstatstext.js | |
+ ln -s /jffs/addons/ntpmerlin.d/lastx.csv /tmp/var/wwwext/ntpmerlin/lastx.htm | |
+ ln -s /jffs/addons/ntpmerlin.d/config /tmp/var/wwwext/ntpmerlin/config.htm | |
+ ln -s /jffs/addons/ntpmerlin.d/csv /tmp/var/wwwext/ntpmerlin/csv | |
+ [ ! -d /tmp/var/wwwext/shared-jy ] | |
+ echo var ntpstatus = "InProgress"; | |
+ killall ntp | |
+ TimeServer check | |
+ grep ^TIMESERVER= /jffs/addons/ntpmerlin.d/config | |
+ cut -f2 -d= | |
+ TIMESERVER=ntpd | |
+ echo ntpd | |
+ TIMESERVER=ntpd | |
+ [ ntpd = ntpd ] | |
+ tmpfile=/tmp/ntp-stats.2708 | |
+ ntpq -4 -c rv | |
+ awk BEGIN{ RS=","}{ print } | |
+ grep offset /tmp/ntp-stats.2708 | |
+ awk BEGIN{FS="="}{print $2} | |
+ [ -n +7.995672 ] | |
+ grep offset /tmp/ntp-stats.2708 | |
+ awk BEGIN{FS="="}{print $2} | |
+ NOFFSET=+7.995672 | |
+ grep frequency /tmp/ntp-stats.2708 | |
+ awk BEGIN{FS="="}{print $2} | |
+ [ -n +0.000 ] | |
+ grep frequency /tmp/ntp-stats.2708 | |
+ awk BEGIN{FS="="}{print $2} | |
+ NFREQ=+0.000 | |
+ grep sys_jitter /tmp/ntp-stats.2708 | |
+ awk BEGIN{FS="="}{print $2} | |
+ [ -n 2.068067 ] | |
+ grep sys_jitter /tmp/ntp-stats.2708 | |
+ awk BEGIN{FS="="}{print $2} | |
+ NSJIT=2.068067 | |
+ grep clk_jitter /tmp/ntp-stats.2708 | |
+ awk BEGIN{FS="="}{print $2} | |
+ [ -n 3.798 ] | |
+ grep clk_jitter /tmp/ntp-stats.2708 | |
+ awk BEGIN{FS="="}{print $2} | |
+ NCJIT=3.798 | |
+ grep clk_wander /tmp/ntp-stats.2708 | |
+ awk BEGIN{FS="="}{print $2} | |
+ [ -n 0.000 ] | |
+ grep clk_wander /tmp/ntp-stats.2708 | |
+ awk BEGIN{FS="="}{print $2} | |
+ NWANDER=0.000 | |
+ grep rootdisp /tmp/ntp-stats.2708 | |
+ awk BEGIN{FS="="}{print $2} | |
+ [ -n 207.738 ] | |
+ grep rootdisp /tmp/ntp-stats.2708 | |
+ awk BEGIN{FS="="}{print $2} | |
+ NDISPER=207.738 | |
+ rm -f /tmp/ntp-stats.2708 | |
+ cat /etc/TZ | |
+ TZ=EST5DST,M3.2.0/2,M11.1.0/2 | |
+ export TZ | |
+ date +%s | |
+ timenow=1749046051 | |
+ date +%c | |
+ timenowfriendly=Wed Jun 4 10:07:31 2025 | |
+ Process_Upgrade | |
+ local foundError foundLocked resultStr doUpdateDB=false | |
+ rm -f /jffs/addons/ntpmerlin.d/.tableupgraded | |
+ [ ! -f /jffs/addons/ntpmerlin.d/.chronyugraded ] | |
+ TimeServer check | |
+ grep ^TIMESERVER= /jffs/addons/ntpmerlin.d/config | |
+ cut -f2 -d= | |
+ TIMESERVER=ntpd | |
+ echo ntpd | |
+ [ ntpd = chronyd ] | |
+ [ ! -f /jffs/addons/ntpmerlin.d/.indexcreated ] | |
+ [ ! -f /jffs/addons/ntpmerlin.d/lastx.csv ] | |
+ [ ! -f /jffs/addons/ntpmerlin.d/ntpstatstext.js ] | |
+ false | |
+ echo PRAGMA temp_store=1; | |
+ echo PRAGMA journal_mode=TRUNCATE; | |
+ echo CREATE TABLE IF NOT EXISTS [ntpstats] ([StatID] INTEGER PRIMARY KEY NOT NULL,[Timestamp] NUMERIC NOT NULL,[Offset] REAL NOT NULL,[Frequency] REAL NOT NULL,[Sys_Jitter] REAL NOT NULL,[Clk_Jitter] REAL NOT NULL,[Clk_Wander] REAL NOT NULL,[Rootdisp] REAL NOT NULL); | |
+ echo INSERT INTO ntpstats ([Timestamp],[Offset],[Frequency],[Sys_Jitter],[Clk_Jitter],[Clk_Wander],[Rootdisp]) values(1749046051,+7.995672,+0.000,2.068067,3.798,0.000,207.738); | |
+ _ApplyDatabaseSQLCmds_ /tmp/ntpMerlin-stats.sql tme1 | |
+ local errorCount=0 maxErrorCount=5 callFlag | |
+ local triesCount=0 maxTriesCount=25 sqlErrorMsg | |
+ local tempLogFilePath=/tmp/ntpMerlinStats_TMP_2708.LOG | |
+ [ 2 -gt 1 ] | |
+ [ -n tme1 ] | |
+ callFlag=tme1 | |
+ resultStr= | |
+ foundError=false | |
+ foundLocked=false | |
+ rm -f /tmp/ntpMerlinStats_TMP_2708.LOG | |
+ [ 0 -lt 5 ] | |
+ [ 0 -lt 25 ] | |
+ /opt/bin/sqlite3 /jffs/addons/ntpmerlin.d/ntpdstats.db | |
+ foundError=false | |
+ foundLocked=false | |
+ break | |
+ rm -f /tmp/ntpMerlinStats_TMP_2708.LOG | |
+ false | |
+ false | |
+ resultStr=completed successfully. | |
+ false | |
+ false | |
+ rm -f /tmp/ntpMerlin-stats.sql | |
+ echo var ntpstatus = "GenerateCSV"; | |
+ Generate_CSVs | |
+ Process_Upgrade | |
+ local foundError foundLocked resultStr doUpdateDB=false | |
+ rm -f /jffs/addons/ntpmerlin.d/.tableupgraded | |
+ [ ! -f /jffs/addons/ntpmerlin.d/.chronyugraded ] | |
+ TimeServer check | |
+ grep ^TIMESERVER= /jffs/addons/ntpmerlin.d/config | |
+ cut -f2 -d= | |
+ TIMESERVER=ntpd | |
+ echo ntpd | |
+ [ ntpd = chronyd ] | |
+ [ ! -f /jffs/addons/ntpmerlin.d/.indexcreated ] | |
+ [ ! -f /jffs/addons/ntpmerlin.d/lastx.csv ] | |
+ [ ! -f /jffs/addons/ntpmerlin.d/ntpstatstext.js ] | |
+ false | |
+ renice 15 2708 | |
+ OutputTimeMode check | |
+ grep ^OUTPUTTIMEMODE= /jffs/addons/ntpmerlin.d/config | |
+ cut -f2 -d= | |
+ OUTPUTTIMEMODE=unix | |
+ echo unix | |
+ OUTPUTTIMEMODE=unix | |
+ cat /etc/TZ | |
+ TZ=EST5DST,M3.2.0/2,M11.1.0/2 | |
+ export TZ | |
+ date +%s | |
+ timenow=1749046051 | |
+ date +%c | |
+ timenowfriendly=Wed Jun 4 10:07:31 2025 | |
+ metriclist=Offset Frequency | |
+ FILENAME=Offset | |
+ [ Offset = Frequency ] | |
+ echo .mode csv | |
+ echo .headers on | |
+ echo .output /jffs/addons/ntpmerlin.d/csv/Offset_raw_daily.htm | |
+ echo PRAGMA temp_store=1; | |
+ echo SELECT 'Offset' Metric,[Timestamp] Time,printf('%f', Offset) Value FROM ntpstats WHERE ([Timestamp] >= strftime('%s',datetime(1749046051,'unixepoch','-1 day'))) ORDER BY [Timestamp] DESC; | |
+ _ApplyDatabaseSQLCmds_ /tmp/ntpMerlin-stats.sql gnr1 | |
+ local errorCount=0 maxErrorCount=5 callFlag | |
+ local triesCount=0 maxTriesCount=25 sqlErrorMsg | |
+ local tempLogFilePath=/tmp/ntpMerlinStats_TMP_2708.LOG | |
+ [ 2 -gt 1 ] | |
+ [ -n gnr1 ] | |
+ callFlag=gnr1 | |
+ resultStr= | |
+ foundError=false | |
+ foundLocked=false | |
+ rm -f /tmp/ntpMerlinStats_TMP_2708.LOG | |
+ [ 0 -lt 5 ] | |
+ [ 0 -lt 25 ] | |
+ /opt/bin/sqlite3 /jffs/addons/ntpmerlin.d/ntpdstats.db | |
+ foundError=false | |
+ foundLocked=false | |
+ break | |
+ rm -f /tmp/ntpMerlinStats_TMP_2708.LOG | |
+ false | |
+ false | |
+ resultStr=completed successfully. | |
+ false | |
+ false | |
+ echo .mode csv | |
+ echo .headers on | |
+ echo .output /jffs/addons/ntpmerlin.d/csv/Offset_raw_weekly.htm | |
+ echo PRAGMA temp_store=1; | |
+ echo SELECT 'Offset' Metric,[Timestamp] Time,printf('%f', Offset) Value FROM ntpstats WHERE ([Timestamp] >= strftime('%s',datetime(1749046051,'unixepoch','-7 day'))) ORDER BY [Timestamp] DESC; | |
+ _ApplyDatabaseSQLCmds_ /tmp/ntpMerlin-stats.sql gnr2 | |
+ local errorCount=0 maxErrorCount=5 callFlag | |
+ local triesCount=0 maxTriesCount=25 sqlErrorMsg | |
+ local tempLogFilePath=/tmp/ntpMerlinStats_TMP_2708.LOG | |
+ [ 2 -gt 1 ] | |
+ [ -n gnr2 ] | |
+ callFlag=gnr2 | |
+ resultStr= | |
+ foundError=false | |
+ foundLocked=false | |
+ rm -f /tmp/ntpMerlinStats_TMP_2708.LOG | |
+ [ 0 -lt 5 ] | |
+ [ 0 -lt 25 ] | |
+ /opt/bin/sqlite3 /jffs/addons/ntpmerlin.d/ntpdstats.db | |
+ foundError=false | |
+ foundLocked=false | |
+ break | |
+ rm -f /tmp/ntpMerlinStats_TMP_2708.LOG | |
+ false | |
+ false | |
+ resultStr=completed successfully. | |
+ false | |
+ false | |
+ echo .mode csv | |
+ echo .headers on | |
+ echo .output /jffs/addons/ntpmerlin.d/csv/Offset_raw_monthly.htm | |
+ echo PRAGMA temp_store=1; | |
+ echo SELECT 'Offset' Metric,[Timestamp] Time,printf('%f', Offset) Value FROM ntpstats WHERE ([Timestamp] >= strftime('%s',datetime(1749046051,'unixepoch','-30 day'))) ORDER BY [Timestamp] DESC; | |
+ _ApplyDatabaseSQLCmds_ /tmp/ntpMerlin-stats.sql gnr3 | |
+ local errorCount=0 maxErrorCount=5 callFlag | |
+ local triesCount=0 maxTriesCount=25 sqlErrorMsg | |
+ local tempLogFilePath=/tmp/ntpMerlinStats_TMP_2708.LOG | |
+ [ 2 -gt 1 ] | |
+ [ -n gnr3 ] | |
+ callFlag=gnr3 | |
+ resultStr= | |
+ foundError=false | |
+ foundLocked=false | |
+ rm -f /tmp/ntpMerlinStats_TMP_2708.LOG | |
+ [ 0 -lt 5 ] | |
+ [ 0 -lt 25 ] | |
+ /opt/bin/sqlite3 /jffs/addons/ntpmerlin.d/ntpdstats.db | |
+ foundError=false | |
+ foundLocked=false | |
+ break | |
+ rm -f /tmp/ntpMerlinStats_TMP_2708.LOG | |
+ false | |
+ false | |
+ resultStr=completed successfully. | |
+ false | |
+ false | |
+ WriteSql_ToFile Offset ntpstats 1 1 /jffs/addons/ntpmerlin.d/csv/Offset_hour daily /tmp/ntpMerlin-stats.sql 1749046051 | |
+ timenow=1749046051 | |
+ echo 1 1 | |
+ awk {printf ((24*$2)/$1)} | |
+ maxcount=24 | |
+ echo /jffs/addons/ntpmerlin.d/csv/Offset_hour | |
+ grep -q day | |
+ echo .mode csv | |
+ echo .headers on | |
+ echo .output /jffs/addons/ntpmerlin.d/csv/Offset_hour_daily.htm | |
+ echo PRAGMA temp_store=1; | |
+ echo SELECT 'Offset' Metric,Min(strftime('%s',datetime(strftime('%Y-%m-%d %H:00:00',datetime([Timestamp],'unixepoch'))))) Time,IFNULL(printf('%f',Avg(Offset)),'NaN') Value FROM ntpstats WHERE ([Timestamp] >= strftime('%s',datetime(1749046051,'unixepoch','-24 hour'))) GROUP BY strftime('%m',datetime([Timestamp],'unixepoch')),strftime('%d',datetime([Timestamp],'unixepoch')),strftime('%H',datetime([Timestamp],'unixepoch')) ORDER BY [Timestamp] DESC; | |
+ _ApplyDatabaseSQLCmds_ /tmp/ntpMerlin-stats.sql gnr4 | |
+ local errorCount=0 maxErrorCount=5 callFlag | |
+ local triesCount=0 maxTriesCount=25 sqlErrorMsg | |
+ local tempLogFilePath=/tmp/ntpMerlinStats_TMP_2708.LOG | |
+ [ 2 -gt 1 ] | |
+ [ -n gnr4 ] | |
+ callFlag=gnr4 | |
+ resultStr= | |
+ foundError=false | |
+ foundLocked=false | |
+ rm -f /tmp/ntpMerlinStats_TMP_2708.LOG | |
+ [ 0 -lt 5 ] | |
+ [ 0 -lt 25 ] | |
+ /opt/bin/sqlite3 /jffs/addons/ntpmerlin.d/ntpdstats.db | |
+ foundError=false | |
+ foundLocked=false | |
+ break | |
+ rm -f /tmp/ntpMerlinStats_TMP_2708.LOG | |
+ false | |
+ false | |
+ resultStr=completed successfully. | |
+ false | |
+ false | |
+ WriteSql_ToFile Offset ntpstats 1 7 /jffs/addons/ntpmerlin.d/csv/Offset_hour weekly /tmp/ntpMerlin-stats.sql 1749046051 | |
+ timenow=1749046051 | |
+ echo 1 7 | |
+ awk {printf ((24*$2)/$1)} | |
+ maxcount=168 | |
+ echo /jffs/addons/ntpmerlin.d/csv/Offset_hour | |
+ grep -q day | |
+ echo .mode csv | |
+ echo .headers on | |
+ echo .output /jffs/addons/ntpmerlin.d/csv/Offset_hour_weekly.htm | |
+ echo PRAGMA temp_store=1; | |
+ echo SELECT 'Offset' Metric,Min(strftime('%s',datetime(strftime('%Y-%m-%d %H:00:00',datetime([Timestamp],'unixepoch'))))) Time,IFNULL(printf('%f',Avg(Offset)),'NaN') Value FROM ntpstats WHERE ([Timestamp] >= strftime('%s',datetime(1749046051,'unixepoch','-168 hour'))) GROUP BY strftime('%m',datetime([Timestamp],'unixepoch')),strftime('%d',datetime([Timestamp],'unixepoch')),strftime('%H',datetime([Timestamp],'unixepoch')) ORDER BY [Timestamp] DESC; | |
+ _ApplyDatabaseSQLCmds_ /tmp/ntpMerlin-stats.sql gnr5 | |
+ local errorCount=0 maxErrorCount=5 callFlag | |
+ local triesCount=0 maxTriesCount=25 sqlErrorMsg | |
+ local tempLogFilePath=/tmp/ntpMerlinStats_TMP_2708.LOG | |
+ [ 2 -gt 1 ] | |
+ [ -n gnr5 ] | |
+ callFlag=gnr5 | |
+ resultStr= | |
+ foundError=false | |
+ foundLocked=false | |
+ rm -f /tmp/ntpMerlinStats_TMP_2708.LOG | |
+ [ 0 -lt 5 ] | |
+ [ 0 -lt 25 ] | |
+ /opt/bin/sqlite3 /jffs/addons/ntpmerlin.d/ntpdstats.db | |
+ foundError=false | |
+ foundLocked=false | |
+ break | |
+ rm -f /tmp/ntpMerlinStats_TMP_2708.LOG | |
+ false | |
+ false | |
+ resultStr=completed successfully. | |
+ false | |
+ false | |
+ WriteSql_ToFile Offset ntpstats 1 30 /jffs/addons/ntpmerlin.d/csv/Offset_hour monthly /tmp/ntpMerlin-stats.sql 1749046051 | |
+ timenow=1749046051 | |
+ echo 1 30 | |
+ awk {printf ((24*$2)/$1)} | |
+ maxcount=720 | |
+ echo /jffs/addons/ntpmerlin.d/csv/Offset_hour | |
+ grep -q day | |
+ echo .mode csv | |
+ echo .headers on | |
+ echo .output /jffs/addons/ntpmerlin.d/csv/Offset_hour_monthly.htm | |
+ echo PRAGMA temp_store=1; | |
+ echo SELECT 'Offset' Metric,Min(strftime('%s',datetime(strftime('%Y-%m-%d %H:00:00',datetime([Timestamp],'unixepoch'))))) Time,IFNULL(printf('%f',Avg(Offset)),'NaN') Value FROM ntpstats WHERE ([Timestamp] >= strftime('%s',datetime(1749046051,'unixepoch','-720 hour'))) GROUP BY strftime('%m',datetime([Timestamp],'unixepoch')),strftime('%d',datetime([Timestamp],'unixepoch')),strftime('%H',datetime([Timestamp],'unixepoch')) ORDER BY [Timestamp] DESC; | |
+ _ApplyDatabaseSQLCmds_ /tmp/ntpMerlin-stats.sql gnr6 | |
+ local errorCount=0 maxErrorCount=5 callFlag | |
+ local triesCount=0 maxTriesCount=25 sqlErrorMsg | |
+ local tempLogFilePath=/tmp/ntpMerlinStats_TMP_2708.LOG | |
+ [ 2 -gt 1 ] | |
+ [ -n gnr6 ] | |
+ callFlag=gnr6 | |
+ resultStr= | |
+ foundError=false | |
+ foundLocked=false | |
+ rm -f /tmp/ntpMerlinStats_TMP_2708.LOG | |
+ [ 0 -lt 5 ] | |
+ [ 0 -lt 25 ] | |
+ /opt/bin/sqlite3 /jffs/addons/ntpmerlin.d/ntpdstats.db | |
+ foundError=false | |
+ foundLocked=false | |
+ break | |
+ rm -f /tmp/ntpMerlinStats_TMP_2708.LOG | |
+ false | |
+ false | |
+ resultStr=completed successfully. | |
+ false | |
+ false | |
+ WriteSql_ToFile Offset ntpstats 24 1 /jffs/addons/ntpmerlin.d/csv/Offset_day daily /tmp/ntpMerlin-stats.sql 1749046051 | |
+ timenow=1749046051 | |
+ echo 24 1 | |
+ awk {printf ((24*$2)/$1)} | |
+ maxcount=1 | |
+ echo /jffs/addons/ntpmerlin.d/csv/Offset_day | |
+ grep -q day | |
+ echo .mode csv | |
+ echo .headers on | |
+ echo .output /jffs/addons/ntpmerlin.d/csv/Offset_day_daily.htm | |
+ echo PRAGMA temp_store=1; | |
+ echo SELECT 'Offset' Metric,Max(strftime('%s',datetime([Timestamp],'unixepoch','localtime','start of day','utc'))) Time,IFNULL(printf('%f',Avg(Offset)),'NaN') Value FROM ntpstats WHERE ([Timestamp] > strftime('%s',datetime(1749046051,'unixepoch','localtime','start of day','utc','+1 day','-1 day'))) GROUP BY strftime('%m',datetime([Timestamp],'unixepoch','localtime')),strftime('%d',datetime([Timestamp],'unixepoch','localtime')) ORDER BY [Timestamp] DESC; | |
+ _ApplyDatabaseSQLCmds_ /tmp/ntpMerlin-stats.sql gnr7 | |
+ local errorCount=0 maxErrorCount=5 callFlag | |
+ local triesCount=0 maxTriesCount=25 sqlErrorMsg | |
+ local tempLogFilePath=/tmp/ntpMerlinStats_TMP_2708.LOG | |
+ [ 2 -gt 1 ] | |
+ [ -n gnr7 ] | |
+ callFlag=gnr7 | |
+ resultStr= | |
+ foundError=false | |
+ foundLocked=false | |
+ rm -f /tmp/ntpMerlinStats_TMP_2708.LOG | |
+ [ 0 -lt 5 ] | |
+ [ 0 -lt 25 ] | |
+ /opt/bin/sqlite3 /jffs/addons/ntpmerlin.d/ntpdstats.db | |
+ foundError=false | |
+ foundLocked=false | |
+ break | |
+ rm -f /tmp/ntpMerlinStats_TMP_2708.LOG | |
+ false | |
+ false | |
+ resultStr=completed successfully. | |
+ false | |
+ false | |
+ WriteSql_ToFile Offset ntpstats 24 7 /jffs/addons/ntpmerlin.d/csv/Offset_day weekly /tmp/ntpMerlin-stats.sql 1749046051 | |
+ timenow=1749046051 | |
+ echo 24 7 | |
+ awk {printf ((24*$2)/$1)} | |
+ maxcount=7 | |
+ echo /jffs/addons/ntpmerlin.d/csv/Offset_day | |
+ grep -q day | |
+ echo .mode csv | |
+ echo .headers on | |
+ echo .output /jffs/addons/ntpmerlin.d/csv/Offset_day_weekly.htm | |
+ echo PRAGMA temp_store=1; | |
+ echo SELECT 'Offset' Metric,Max(strftime('%s',datetime([Timestamp],'unixepoch','localtime','start of day','utc'))) Time,IFNULL(printf('%f',Avg(Offset)),'NaN') Value FROM ntpstats WHERE ([Timestamp] > strftime('%s',datetime(1749046051,'unixepoch','localtime','start of day','utc','+1 day','-7 day'))) GROUP BY strftime('%m',datetime([Timestamp],'unixepoch','localtime')),strftime('%d',datetime([Timestamp],'unixepoch','localtime')) ORDER BY [Timestamp] DESC; | |
+ _ApplyDatabaseSQLCmds_ /tmp/ntpMerlin-stats.sql gnr8 | |
+ local errorCount=0 maxErrorCount=5 callFlag | |
+ local triesCount=0 maxTriesCount=25 sqlErrorMsg | |
+ local tempLogFilePath=/tmp/ntpMerlinStats_TMP_2708.LOG | |
+ [ 2 -gt 1 ] | |
+ [ -n gnr8 ] | |
+ callFlag=gnr8 | |
+ resultStr= | |
+ foundError=false | |
+ foundLocked=false | |
+ rm -f /tmp/ntpMerlinStats_TMP_2708.LOG | |
+ [ 0 -lt 5 ] | |
+ [ 0 -lt 25 ] | |
+ /opt/bin/sqlite3 /jffs/addons/ntpmerlin.d/ntpdstats.db | |
+ foundError=false | |
+ foundLocked=false | |
+ break | |
+ rm -f /tmp/ntpMerlinStats_TMP_2708.LOG | |
+ false | |
+ false | |
+ resultStr=completed successfully. | |
+ false | |
+ false | |
+ WriteSql_ToFile Offset ntpstats 24 30 /jffs/addons/ntpmerlin.d/csv/Offset_day monthly /tmp/ntpMerlin-stats.sql 1749046051 | |
+ timenow=1749046051 | |
+ echo 24 30 | |
+ awk {printf ((24*$2)/$1)} | |
+ maxcount=30 | |
+ + grepecho -q /jffs/addons/ntpmerlin.d/csv/Offset_day day | |
+ echo .mode csv | |
+ echo .headers on | |
+ echo .output /jffs/addons/ntpmerlin.d/csv/Offset_day_monthly.htm | |
+ echo PRAGMA temp_store=1; | |
+ echo SELECT 'Offset' Metric,Max(strftime('%s',datetime([Timestamp],'unixepoch','localtime','start of day','utc'))) Time,IFNULL(printf('%f',Avg(Offset)),'NaN') Value FROM ntpstats WHERE ([Timestamp] > strftime('%s',datetime(1749046051,'unixepoch','localtime','start of day','utc','+1 day','-30 day'))) GROUP BY strftime('%m',datetime([Timestamp],'unixepoch','localtime')),strftime('%d',datetime([Timestamp],'unixepoch','localtime')) ORDER BY [Timestamp] DESC; | |
+ _ApplyDatabaseSQLCmds_ /tmp/ntpMerlin-stats.sql gnr9 | |
+ local errorCount=0 maxErrorCount=5 callFlag | |
+ local triesCount=0 maxTriesCount=25 sqlErrorMsg | |
+ local tempLogFilePath=/tmp/ntpMerlinStats_TMP_2708.LOG | |
+ [ 2 -gt 1 ] | |
+ [ -n gnr9 ] | |
+ callFlag=gnr9 | |
+ resultStr= | |
+ foundError=false | |
+ foundLocked=false | |
+ rm -f /tmp/ntpMerlinStats_TMP_2708.LOG | |
+ [ 0 -lt 5 ] | |
+ [ 0 -lt 25 ] | |
+ /opt/bin/sqlite3 /jffs/addons/ntpmerlin.d/ntpdstats.db | |
+ foundError=false | |
+ foundLocked=false | |
+ break | |
+ rm -f /tmp/ntpMerlinStats_TMP_2708.LOG | |
+ false | |
+ false | |
+ resultStr=completed successfully. | |
+ false | |
+ false | |
+ rm -f /jffs/addons/ntpmerlin.d/csv/Offsetdaily.htm | |
+ rm -f /jffs/addons/ntpmerlin.d/csv/Offsetweekly.htm | |
+ rm -f /jffs/addons/ntpmerlin.d/csv/Offsetmonthly.htm | |
+ FILENAME=Frequency | |
+ [ Frequency = Frequency ] | |
+ FILENAME=Drift | |
+ echo .mode csv | |
+ echo .headers on | |
+ echo .output /jffs/addons/ntpmerlin.d/csv/Drift_raw_daily.htm | |
+ echo PRAGMA temp_store=1; | |
+ echo SELECT 'Frequency' Metric,[Timestamp] Time,printf('%f', Frequency) Value FROM ntpstats WHERE ([Timestamp] >= strftime('%s',datetime(1749046051,'unixepoch','-1 day'))) ORDER BY [Timestamp] DESC; | |
+ _ApplyDatabaseSQLCmds_ /tmp/ntpMerlin-stats.sql gnr1 | |
+ local errorCount=0 maxErrorCount=5 callFlag | |
+ local triesCount=0 maxTriesCount=25 sqlErrorMsg | |
+ local tempLogFilePath=/tmp/ntpMerlinStats_TMP_2708.LOG | |
+ [ 2 -gt 1 ] | |
+ [ -n gnr1 ] | |
+ callFlag=gnr1 | |
+ resultStr= | |
+ foundError=false | |
+ foundLocked=false | |
+ rm -f /tmp/ntpMerlinStats_TMP_2708.LOG | |
+ [ 0 -lt 5 ] | |
+ [ 0 -lt 25 ] | |
+ /opt/bin/sqlite3 /jffs/addons/ntpmerlin.d/ntpdstats.db | |
+ foundError=false | |
+ foundLocked=false | |
+ break | |
+ rm -f /tmp/ntpMerlinStats_TMP_2708.LOG | |
+ false | |
+ false | |
+ resultStr=completed successfully. | |
+ false | |
+ false | |
+ echo .mode csv | |
+ echo .headers on | |
+ echo .output /jffs/addons/ntpmerlin.d/csv/Drift_raw_weekly.htm | |
+ echo PRAGMA temp_store=1; | |
+ echo SELECT 'Frequency' Metric,[Timestamp] Time,printf('%f', Frequency) Value FROM ntpstats WHERE ([Timestamp] >= strftime('%s',datetime(1749046051,'unixepoch','-7 day'))) ORDER BY [Timestamp] DESC; | |
+ _ApplyDatabaseSQLCmds_ /tmp/ntpMerlin-stats.sql gnr2 | |
+ local errorCount=0 maxErrorCount=5 callFlag | |
+ local triesCount=0 maxTriesCount=25 sqlErrorMsg | |
+ local tempLogFilePath=/tmp/ntpMerlinStats_TMP_2708.LOG | |
+ [ 2 -gt 1 ] | |
+ [ -n gnr2 ] | |
+ callFlag=gnr2 | |
+ resultStr= | |
+ foundError=false | |
+ foundLocked=false | |
+ rm -f /tmp/ntpMerlinStats_TMP_2708.LOG | |
+ [ 0 -lt 5 ] | |
+ [ 0 -lt 25 ] | |
+ /opt/bin/sqlite3 /jffs/addons/ntpmerlin.d/ntpdstats.db | |
+ foundError=false | |
+ foundLocked=false | |
+ break | |
+ rm -f /tmp/ntpMerlinStats_TMP_2708.LOG | |
+ false | |
+ false | |
+ resultStr=completed successfully. | |
+ false | |
+ false | |
+ echo .mode csv | |
+ echo .headers on | |
+ echo .output /jffs/addons/ntpmerlin.d/csv/Drift_raw_monthly.htm | |
+ echo PRAGMA temp_store=1; | |
+ echo SELECT 'Frequency' Metric,[Timestamp] Time,printf('%f', Frequency) Value FROM ntpstats WHERE ([Timestamp] >= strftime('%s',datetime(1749046051,'unixepoch','-30 day'))) ORDER BY [Timestamp] DESC; | |
+ _ApplyDatabaseSQLCmds_ /tmp/ntpMerlin-stats.sql gnr3 | |
+ local errorCount=0 maxErrorCount=5 callFlag | |
+ local triesCount=0 maxTriesCount=25 sqlErrorMsg | |
+ local tempLogFilePath=/tmp/ntpMerlinStats_TMP_2708.LOG | |
+ [ 2 -gt 1 ] | |
+ [ -n gnr3 ] | |
+ callFlag=gnr3 | |
+ resultStr= | |
+ foundError=false | |
+ foundLocked=false | |
+ rm -f /tmp/ntpMerlinStats_TMP_2708.LOG | |
+ [ 0 -lt 5 ] | |
+ [ 0 -lt 25 ] | |
+ /opt/bin/sqlite3 /jffs/addons/ntpmerlin.d/ntpdstats.db | |
+ foundError=false | |
+ foundLocked=false | |
+ break | |
+ rm -f /tmp/ntpMerlinStats_TMP_2708.LOG | |
+ false | |
+ false | |
+ resultStr=completed successfully. | |
+ false | |
+ false | |
+ WriteSql_ToFile Frequency ntpstats 1 1 /jffs/addons/ntpmerlin.d/csv/Drift_hour daily /tmp/ntpMerlin-stats.sql 1749046051 | |
+ timenow=1749046051 | |
+ echo 1 1 | |
+ awk {printf ((24*$2)/$1)} | |
+ maxcount=24 | |
+ + echo /jffs/addons/ntpmerlin.d/csv/Drift_hour | |
grep -q day | |
+ echo .mode csv | |
+ echo .headers on | |
+ echo .output /jffs/addons/ntpmerlin.d/csv/Drift_hour_daily.htm | |
+ echo PRAGMA temp_store=1; | |
+ echo SELECT 'Frequency' Metric,Min(strftime('%s',datetime(strftime('%Y-%m-%d %H:00:00',datetime([Timestamp],'unixepoch'))))) Time,IFNULL(printf('%f',Avg(Frequency)),'NaN') Value FROM ntpstats WHERE ([Timestamp] >= strftime('%s',datetime(1749046051,'unixepoch','-24 hour'))) GROUP BY strftime('%m',datetime([Timestamp],'unixepoch')),strftime('%d',datetime([Timestamp],'unixepoch')),strftime('%H',datetime([Timestamp],'unixepoch')) ORDER BY [Timestamp] DESC; | |
+ _ApplyDatabaseSQLCmds_ /tmp/ntpMerlin-stats.sql gnr4 | |
+ local errorCount=0 maxErrorCount=5 callFlag | |
+ local triesCount=0 maxTriesCount=25 sqlErrorMsg | |
+ local tempLogFilePath=/tmp/ntpMerlinStats_TMP_2708.LOG | |
+ [ 2 -gt 1 ] | |
+ [ -n gnr4 ] | |
+ callFlag=gnr4 | |
+ resultStr= | |
+ foundError=false | |
+ foundLocked=false | |
+ rm -f /tmp/ntpMerlinStats_TMP_2708.LOG | |
+ [ 0 -lt 5 ] | |
+ [ 0 -lt 25 ] | |
+ /opt/bin/sqlite3 /jffs/addons/ntpmerlin.d/ntpdstats.db | |
+ foundError=false | |
+ foundLocked=false | |
+ break | |
+ rm -f /tmp/ntpMerlinStats_TMP_2708.LOG | |
+ false | |
+ false | |
+ resultStr=completed successfully. | |
+ false | |
+ false | |
+ WriteSql_ToFile Frequency ntpstats 1 7 /jffs/addons/ntpmerlin.d/csv/Drift_hour weekly /tmp/ntpMerlin-stats.sql 1749046051 | |
+ timenow=1749046051 | |
+ echo 1 7 | |
+ awk {printf ((24*$2)/$1)} | |
+ maxcount=168 | |
+ echo /jffs/addons/ntpmerlin.d/csv/Drift_hour | |
+ grep -q day | |
+ echo .mode csv | |
+ echo .headers on | |
+ echo .output /jffs/addons/ntpmerlin.d/csv/Drift_hour_weekly.htm | |
+ echo PRAGMA temp_store=1; | |
+ echo SELECT 'Frequency' Metric,Min(strftime('%s',datetime(strftime('%Y-%m-%d %H:00:00',datetime([Timestamp],'unixepoch'))))) Time,IFNULL(printf('%f',Avg(Frequency)),'NaN') Value FROM ntpstats WHERE ([Timestamp] >= strftime('%s',datetime(1749046051,'unixepoch','-168 hour'))) GROUP BY strftime('%m',datetime([Timestamp],'unixepoch')),strftime('%d',datetime([Timestamp],'unixepoch')),strftime('%H',datetime([Timestamp],'unixepoch')) ORDER BY [Timestamp] DESC; | |
+ _ApplyDatabaseSQLCmds_ /tmp/ntpMerlin-stats.sql gnr5 | |
+ local errorCount=0 maxErrorCount=5 callFlag | |
+ local triesCount=0 maxTriesCount=25 sqlErrorMsg | |
+ local tempLogFilePath=/tmp/ntpMerlinStats_TMP_2708.LOG | |
+ [ 2 -gt 1 ] | |
+ [ -n gnr5 ] | |
+ callFlag=gnr5 | |
+ resultStr= | |
+ foundError=false | |
+ foundLocked=false | |
+ rm -f /tmp/ntpMerlinStats_TMP_2708.LOG | |
+ [ 0 -lt 5 ] | |
+ [ 0 -lt 25 ] | |
+ /opt/bin/sqlite3 /jffs/addons/ntpmerlin.d/ntpdstats.db | |
+ foundError=false | |
+ foundLocked=false | |
+ break | |
+ rm -f /tmp/ntpMerlinStats_TMP_2708.LOG | |
+ false | |
+ false | |
+ resultStr=completed successfully. | |
+ false | |
+ false | |
+ WriteSql_ToFile Frequency ntpstats 1 30 /jffs/addons/ntpmerlin.d/csv/Drift_hour monthly /tmp/ntpMerlin-stats.sql 1749046051 | |
+ timenow=1749046051 | |
+ echo 1 30 | |
+ awk {printf ((24*$2)/$1)} | |
+ maxcount=720 | |
+ + grepecho -q /jffs/addons/ntpmerlin.d/csv/Drift_hour | |
day | |
+ echo .mode csv | |
+ echo .headers on | |
+ echo .output /jffs/addons/ntpmerlin.d/csv/Drift_hour_monthly.htm | |
+ echo PRAGMA temp_store=1; | |
+ echo SELECT 'Frequency' Metric,Min(strftime('%s',datetime(strftime('%Y-%m-%d %H:00:00',datetime([Timestamp],'unixepoch'))))) Time,IFNULL(printf('%f',Avg(Frequency)),'NaN') Value FROM ntpstats WHERE ([Timestamp] >= strftime('%s',datetime(1749046051,'unixepoch','-720 hour'))) GROUP BY strftime('%m',datetime([Timestamp],'unixepoch')),strftime('%d',datetime([Timestamp],'unixepoch')),strftime('%H',datetime([Timestamp],'unixepoch')) ORDER BY [Timestamp] DESC; | |
+ _ApplyDatabaseSQLCmds_ /tmp/ntpMerlin-stats.sql gnr6 | |
+ local errorCount=0 maxErrorCount=5 callFlag | |
+ local triesCount=0 maxTriesCount=25 sqlErrorMsg | |
+ local tempLogFilePath=/tmp/ntpMerlinStats_TMP_2708.LOG | |
+ [ 2 -gt 1 ] | |
+ [ -n gnr6 ] | |
+ callFlag=gnr6 | |
+ resultStr= | |
+ foundError=false | |
+ foundLocked=false | |
+ rm -f /tmp/ntpMerlinStats_TMP_2708.LOG | |
+ [ 0 -lt 5 ] | |
+ [ 0 -lt 25 ] | |
+ /opt/bin/sqlite3 /jffs/addons/ntpmerlin.d/ntpdstats.db | |
+ foundError=false | |
+ foundLocked=false | |
+ break | |
+ rm -f /tmp/ntpMerlinStats_TMP_2708.LOG | |
+ false | |
+ false | |
+ resultStr=completed successfully. | |
+ false | |
+ false | |
+ WriteSql_ToFile Frequency ntpstats 24 1 /jffs/addons/ntpmerlin.d/csv/Drift_day daily /tmp/ntpMerlin-stats.sql 1749046051 | |
+ timenow=1749046051 | |
+ echo 24 1 | |
+ awk {printf ((24*$2)/$1)} | |
+ maxcount=1 | |
+ + grepecho -q /jffs/addons/ntpmerlin.d/csv/Drift_day | |
day | |
+ echo .mode csv | |
+ echo .headers on | |
+ echo .output /jffs/addons/ntpmerlin.d/csv/Drift_day_daily.htm | |
+ echo PRAGMA temp_store=1; | |
+ echo SELECT 'Frequency' Metric,Max(strftime('%s',datetime([Timestamp],'unixepoch','localtime','start of day','utc'))) Time,IFNULL(printf('%f',Avg(Frequency)),'NaN') Value FROM ntpstats WHERE ([Timestamp] > strftime('%s',datetime(1749046051,'unixepoch','localtime','start of day','utc','+1 day','-1 day'))) GROUP BY strftime('%m',datetime([Timestamp],'unixepoch','localtime')),strftime('%d',datetime([Timestamp],'unixepoch','localtime')) ORDER BY [Timestamp] DESC; | |
+ _ApplyDatabaseSQLCmds_ /tmp/ntpMerlin-stats.sql gnr7 | |
+ local errorCount=0 maxErrorCount=5 callFlag | |
+ local triesCount=0 maxTriesCount=25 sqlErrorMsg | |
+ local tempLogFilePath=/tmp/ntpMerlinStats_TMP_2708.LOG | |
+ [ 2 -gt 1 ] | |
+ [ -n gnr7 ] | |
+ callFlag=gnr7 | |
+ resultStr= | |
+ foundError=false | |
+ foundLocked=false | |
+ rm -f /tmp/ntpMerlinStats_TMP_2708.LOG | |
+ [ 0 -lt 5 ] | |
+ [ 0 -lt 25 ] | |
+ /opt/bin/sqlite3 /jffs/addons/ntpmerlin.d/ntpdstats.db | |
+ foundError=false | |
+ foundLocked=false | |
+ break | |
+ rm -f /tmp/ntpMerlinStats_TMP_2708.LOG | |
+ false | |
+ false | |
+ resultStr=completed successfully. | |
+ false | |
+ false | |
+ WriteSql_ToFile Frequency ntpstats 24 7 /jffs/addons/ntpmerlin.d/csv/Drift_day weekly /tmp/ntpMerlin-stats.sql 1749046051 | |
+ timenow=1749046051 | |
+ echo 24 7 | |
+ awk {printf ((24*$2)/$1)} | |
+ maxcount=7 | |
+ + grepecho -q /jffs/addons/ntpmerlin.d/csv/Drift_day | |
day | |
+ echo .mode csv | |
+ echo .headers on | |
+ echo .output /jffs/addons/ntpmerlin.d/csv/Drift_day_weekly.htm | |
+ echo PRAGMA temp_store=1; | |
+ echo SELECT 'Frequency' Metric,Max(strftime('%s',datetime([Timestamp],'unixepoch','localtime','start of day','utc'))) Time,IFNULL(printf('%f',Avg(Frequency)),'NaN') Value FROM ntpstats WHERE ([Timestamp] > strftime('%s',datetime(1749046051,'unixepoch','localtime','start of day','utc','+1 day','-7 day'))) GROUP BY strftime('%m',datetime([Timestamp],'unixepoch','localtime')),strftime('%d',datetime([Timestamp],'unixepoch','localtime')) ORDER BY [Timestamp] DESC; | |
+ _ApplyDatabaseSQLCmds_ /tmp/ntpMerlin-stats.sql gnr8 | |
+ local errorCount=0 maxErrorCount=5 callFlag | |
+ local triesCount=0 maxTriesCount=25 sqlErrorMsg | |
+ local tempLogFilePath=/tmp/ntpMerlinStats_TMP_2708.LOG | |
+ [ 2 -gt 1 ] | |
+ [ -n gnr8 ] | |
+ callFlag=gnr8 | |
+ resultStr= | |
+ foundError=false | |
+ foundLocked=false | |
+ rm -f /tmp/ntpMerlinStats_TMP_2708.LOG | |
+ [ 0 -lt 5 ] | |
+ [ 0 -lt 25 ] | |
+ /opt/bin/sqlite3 /jffs/addons/ntpmerlin.d/ntpdstats.db | |
+ foundError=false | |
+ foundLocked=false | |
+ break | |
+ rm -f /tmp/ntpMerlinStats_TMP_2708.LOG | |
+ false | |
+ false | |
+ resultStr=completed successfully. | |
+ false | |
+ false | |
+ WriteSql_ToFile Frequency ntpstats 24 30 /jffs/addons/ntpmerlin.d/csv/Drift_day monthly /tmp/ntpMerlin-stats.sql 1749046051 | |
+ timenow=1749046051 | |
+ + awkecho {printf ((24*$2)/$1)} | |
24 30 | |
+ maxcount=30 | |
+ grep -q day | |
+ echo /jffs/addons/ntpmerlin.d/csv/Drift_day | |
+ echo .mode csv | |
+ echo .headers on | |
+ echo .output /jffs/addons/ntpmerlin.d/csv/Drift_day_monthly.htm | |
+ echo PRAGMA temp_store=1; | |
+ echo SELECT 'Frequency' Metric,Max(strftime('%s',datetime([Timestamp],'unixepoch','localtime','start of day','utc'))) Time,IFNULL(printf('%f',Avg(Frequency)),'NaN') Value FROM ntpstats WHERE ([Timestamp] > strftime('%s',datetime(1749046051,'unixepoch','localtime','start of day','utc','+1 day','-30 day'))) GROUP BY strftime('%m',datetime([Timestamp],'unixepoch','localtime')),strftime('%d',datetime([Timestamp],'unixepoch','localtime')) ORDER BY [Timestamp] DESC; | |
+ _ApplyDatabaseSQLCmds_ /tmp/ntpMerlin-stats.sql gnr9 | |
+ local errorCount=0 maxErrorCount=5 callFlag | |
+ local triesCount=0 maxTriesCount=25 sqlErrorMsg | |
+ local tempLogFilePath=/tmp/ntpMerlinStats_TMP_2708.LOG | |
+ [ 2 -gt 1 ] | |
+ [ -n gnr9 ] | |
+ callFlag=gnr9 | |
+ resultStr= | |
+ foundError=false | |
+ foundLocked=false | |
+ rm -f /tmp/ntpMerlinStats_TMP_2708.LOG | |
+ [ 0 -lt 5 ] | |
+ [ 0 -lt 25 ] | |
+ /opt/bin/sqlite3 /jffs/addons/ntpmerlin.d/ntpdstats.db | |
+ foundError=false | |
+ foundLocked=false | |
+ break | |
+ rm -f /tmp/ntpMerlinStats_TMP_2708.LOG | |
+ false | |
+ false | |
+ resultStr=completed successfully. | |
+ false | |
+ false | |
+ rm -f /jffs/addons/ntpmerlin.d/csv/Driftdaily.htm | |
+ rm -f /jffs/addons/ntpmerlin.d/csv/Driftweekly.htm | |
+ rm -f /jffs/addons/ntpmerlin.d/csv/Driftmonthly.htm | |
+ rm -f /tmp/ntpMerlin-stats.sql | |
+ Generate_LastXResults | |
+ rm -f /jffs/addons/ntpmerlin.d/lastx.htm | |
+ echo .mode csv | |
+ echo .output /tmp/ntpMerlin-lastx.csv | |
+ echo PRAGMA temp_store=1; | |
+ LastXResults check | |
+ local MINvalue=5 MAXvalue=100 | |
+ grep ^LASTXRESULTS= /jffs/addons/ntpmerlin.d/config | |
+ cut -f2 -d= | |
+ LASTXRESULTS=10 | |
+ echo 10 | |
+ echo SELECT [Timestamp],[Offset],[Frequency] FROM ntpstats ORDER BY [Timestamp] DESC LIMIT 10; | |
+ _ApplyDatabaseSQLCmds_ /tmp/ntpMerlin-lastx.sql glx1 | |
+ local errorCount=0 maxErrorCount=5 callFlag | |
+ local triesCount=0 maxTriesCount=25 sqlErrorMsg | |
+ local tempLogFilePath=/tmp/ntpMerlinStats_TMP_2708.LOG | |
+ [ 2 -gt 1 ] | |
+ [ -n glx1 ] | |
+ callFlag=glx1 | |
+ resultStr= | |
+ foundError=false | |
+ foundLocked=false | |
+ rm -f /tmp/ntpMerlinStats_TMP_2708.LOG | |
+ [ 0 -lt 5 ] | |
+ [ 0 -lt 25 ] | |
+ /opt/bin/sqlite3 /jffs/addons/ntpmerlin.d/ntpdstats.db | |
+ foundError=false | |
+ foundLocked=false | |
+ break | |
+ rm -f /tmp/ntpMerlinStats_TMP_2708.LOG | |
+ false | |
+ false | |
+ resultStr=completed successfully. | |
+ false | |
+ false | |
+ rm -f /tmp/ntpMerlin-lastx.sql | |
+ sed -i s/"//g /tmp/ntpMerlin-lastx.csv | |
+ mv -f /tmp/ntpMerlin-lastx.csv /jffs/addons/ntpmerlin.d/lastx.csv | |
+ echo .mode csv | |
+ echo .headers on | |
+ echo .output /jffs/addons/ntpmerlin.d/csv/CompleteResults.htm | |
+ echo PRAGMA temp_store=1; | |
+ DaysToKeep check | |
+ local MINvalue=15 MAXvalue=365 | |
+ cut -f2 -d= | |
+ grep ^DAYSTOKEEP= /jffs/addons/ntpmerlin.d/config | |
+ DAYSTOKEEP=30 | |
+ echo 30 | |
+ echo SELECT [Timestamp],[Offset],[Frequency],[Sys_Jitter],[Clk_Jitter],[Clk_Wander],[Rootdisp] FROM ntpstats WHERE ([Timestamp] >= strftime('%s',datetime(1749046051,'unixepoch','-30 day'))) ORDER BY [Timestamp] DESC; | |
+ _ApplyDatabaseSQLCmds_ /tmp/ntpMerlin-complete.sql gnr10 | |
+ local errorCount=0 maxErrorCount=5 callFlag | |
+ local triesCount=0 maxTriesCount=25 sqlErrorMsg | |
+ local tempLogFilePath=/tmp/ntpMerlinStats_TMP_2708.LOG | |
+ [ 2 -gt 1 ] | |
+ [ -n gnr10 ] | |
+ callFlag=gnr10 | |
+ resultStr= | |
+ foundError=false | |
+ foundLocked=false | |
+ rm -f /tmp/ntpMerlinStats_TMP_2708.LOG | |
+ [ 0 -lt 5 ] | |
+ [ 0 -lt 25 ] | |
+ /opt/bin/sqlite3 /jffs/addons/ntpmerlin.d/ntpdstats.db | |
+ foundError=false | |
+ foundLocked=false | |
+ break | |
+ rm -f /tmp/ntpMerlinStats_TMP_2708.LOG | |
+ false | |
+ false | |
+ resultStr=completed successfully. | |
+ false | |
+ false | |
+ rm -f /tmp/ntpMerlin-complete.sql | |
+ dos2unix /jffs/addons/ntpmerlin.d/csv/CompleteResults.htm /jffs/addons/ntpmerlin.d/csv/Drift_day_daily.htm /jffs/addons/ntpmerlin.d/csv/Drift_day_monthly.htm /jffs/addons/ntpmerlin.d/csv/Drift_day_weekly.htm /jffs/addons/ntpmerlin.d/csv/Drift_hour_daily.htm /jffs/addons/ntpmerlin.d/csv/Drift_hour_monthly.htm /jffs/addons/ntpmerlin.d/csv/Drift_hour_weekly.htm /jffs/addons/ntpmerlin.d/csv/Drift_raw_daily.htm /jffs/addons/ntpmerlin.d/csv/Drift_raw_monthly.htm /jffs/addons/ntpmerlin.d/csv/Drift_raw_weekly.htm /jffs/addons/ntpmerlin.d/csv/Offset_day_daily.htm /jffs/addons/ntpmerlin.d/csv/Offset_day_monthly.htm /jffs/addons/ntpmerlin.d/csv/Offset_day_weekly.htm /jffs/addons/ntpmerlin.d/csv/Offset_hour_daily.htm /jffs/addons/ntpmerlin.d/csv/Offset_hour_monthly.htm /jffs/addons/ntpmerlin.d/csv/Offset_hour_weekly.htm /jffs/addons/ntpmerlin.d/csv/Offset_raw_daily.htm /jffs/addons/ntpmerlin.d/csv/Offset_raw_monthly.htm /jffs/addons/ntpmerlin.d/csv/Offset_raw_weekly.htm | |
+ tmpoutputdir=/tmp/ntpmerlinresults | |
+ mkdir -p /tmp/ntpmerlinresults | |
+ mv /jffs/addons/ntpmerlin.d/csv/CompleteResults.htm /tmp/ntpmerlinresults/CompleteResults.htm | |
+ [ unix = unix ] | |
+ find /tmp/ntpmerlinresults/ -name *.htm -exec sh -c i="$1"; mv -- "$i" "${i%.htm}.csv" _ {} ; | |
+ mv /tmp/ntpmerlinresults/CompleteResults.csv /jffs/addons/ntpmerlin.d/csv/CompleteResults.htm | |
+ rm -f /jffs/addons/ntpmerlin.d/csv/ntpmerlindata.zip | |
+ rm -rf /tmp/ntpmerlinresults | |
+ renice 0 2708 | |
+ _UpdateDatabaseFileSizeInfo_ | |
+ local databaseFileSize | |
+ [ ! -d /jffs/addons/ntpmerlin.d ] | |
+ _UpdateJFFS_FreeSpaceInfo_ | |
+ local jffsFreeSpaceHR jffsFreeSpace jffsMinxSpace | |
+ [ ! -d /jffs/addons/ntpmerlin.d ] | |
+ _Get_JFFS_Space_ FREE HRx | |
+ local typex total usedx freex totalx | |
+ local sizeUnits sizeType sizeInfo sizeNum | |
+ local jffsMountStr jffsUsageStr percentNum percentStr | |
+ [ 2 -lt 1 ] | |
+ [ -z FREE ] | |
+ echo FREE | |
+ grep -qE ^(ALL|USED|FREE)$ | |
+ sizeType=FREE | |
+ [ 2 -lt 2 ] | |
+ [ -z HRx ] | |
+ echo HRx | |
+ grep -qE ^(KB|KBP|MBP|GBP|HR|HRx)$ | |
+ sizeUnits=HRx | |
+ + grep /jffs | |
mount | |
+ jffsMountStr=ubi:jffs2 on /jffs type ubifs (rw,relatime,assert=read-only,ubi=0,vol=13) | |
+ df -kT /jffs | |
+ grep -E .*[[:blank:]]+/jffs$ | |
+ jffsUsageStr=ubi:jffs2 ubifs 45528 13692 29476 32% /jffs | |
+ [ -z ubi:jffs2 on /jffs type ubifs (rw,relatime,assert=read-only,ubi=0,vol=13) ] | |
+ [ -z ubi:jffs2 ubifs 45528 13692 29476 32% /jffs ] | |
+ echo ubi:jffs2 on /jffs type ubifs (rw,relatime,assert=read-only,ubi=0,vol=13) | |
+ grep -qE [[:blank:]]+[(]?ro[[:blank:],] | |
+ + awk -Fecho ubi:jffs2 ubifs 45528 13692 29476 32% /jffs | |
{print $2} | |
+ typex=ubifs | |
+ echo ubi:jffs2 ubifs 45528 13692 29476 32% /jffs | |
+ awk -F {print $3} | |
+ total=45528 | |
+ echo ubi:jffs2 ubifs 45528 13692 29476 32% /jffs | |
+ awk -F {print $4} | |
+ usedx=13692 | |
+ echo ubi:jffs2 ubifs 45528 13692 29476 32% /jffs | |
+ awk -F {print $5} | |
+ freex=29476 | |
+ totalx=45528 | |
+ [ ubifs = ubifs ] | |
+ [ 43168 -ne 45528 ] | |
+ totalx=43168 | |
+ [ FREE = ALL ] | |
+ df -hT /jffs | |
+ grep -E .*[[:blank:]]+/jffs$ | |
+ jffsUsageStr=ubi:jffs2 ubifs 44.5M 13.4M 28.8M 32% /jffs | |
+ echo ubi:jffs2 ubifs 44.5M 13.4M 28.8M 32% /jffs | |
+ awk -F {print $5} | |
+ freex=28.8M | |
+ sizeInfo=28.8MB | |
+ [ HRx = HR ] | |
+ echo 28.8MB | |
+ tr -d .0-9 | |
+ sizeUnits=MB | |
+ _Get_JFFS_Space_ FREE MBP | |
+ local typex total usedx freex totalx | |
+ local sizeUnits sizeType sizeInfo sizeNum | |
+ local jffsMountStr jffsUsageStr percentNum percentStr | |
+ [ 2 -lt 1 ] | |
+ [ -z FREE ] | |
+ echo FREE | |
+ grep -qE ^(ALL|USED|FREE)$ | |
+ sizeType=FREE | |
+ [ 2 -lt 2 ] | |
+ [ -z MBP ] | |
+ echo MBP | |
+ grep -qE ^(KB|KBP|MBP|GBP|HR|HRx)$ | |
+ sizeUnits=MBP | |
+ mount | |
+ grep /jffs | |
+ jffsMountStr=ubi:jffs2 on /jffs type ubifs (rw,relatime,assert=read-only,ubi=0,vol=13) | |
+ df+ -kTgrep -E .*[[:blank:]]+/jffs$ | |
/jffs | |
+ jffsUsageStr=ubi:jffs2 ubifs 45528 13692 29476 32% /jffs | |
+ [ -z ubi:jffs2 on /jffs type ubifs (rw,relatime,assert=read-only,ubi=0,vol=13) ] | |
+ [ -z ubi:jffs2 ubifs 45528 13692 29476 32% /jffs ] | |
+ + grep -qE [[:blank:]]+[(]?ro[[:blank:],] | |
echo ubi:jffs2 on /jffs type ubifs (rw,relatime,assert=read-only,ubi=0,vol=13) | |
+ + awk -F {print $2} | |
echo ubi:jffs2 ubifs 45528 13692 29476 32% /jffs | |
+ typex=ubifs | |
+ echo ubi:jffs2 ubifs 45528 13692 29476 32% /jffs | |
+ awk -F {print $3} | |
+ total=45528 | |
+ echo ubi:jffs2 ubifs 45528 13692 29476 32% /jffs | |
+ awk -F {print $4} | |
+ usedx=13692 | |
+ echo ubi:jffs2 ubifs 45528 13692 29476 32% /jffs | |
+ awk -F {print $5} | |
+ freex=29476 | |
+ totalx=45528 | |
+ [ ubifs = ubifs ] | |
+ [ 43168 -ne 45528 ] | |
+ totalx=43168 | |
+ [ FREE = ALL ] | |
+ sizeNum=29476 | |
+ _GetNum_ (29476 * 100 / 43168) | |
+ echo (29476 * 100 / 43168) | |
+ awk {print (29476 * 100 / 43168)} | |
+ printf %.2f 68.2821 | |
+ printf %.1f 68.28 | |
+ percentNum=68.3 | |
+ percentStr=[68.3%] | |
+ _GetNum_ (29476 / 1024) | |
+ echo+ (29476 / 1024)awk | |
{print (29476 / 1024)} | |
+ printf %.2f 28.7852 | |
+ sizeNum=28.79 | |
+ sizeInfo=28.79MB [68.3%] | |
+ echo 28.79MB [68.3%] | |
+ return 0 | |
+ sizeInfo=28.79MB [68.3%] | |
+ echo 28.79MB [68.3%] | |
+ return 0 | |
+ jffsFreeSpaceHR=28.79MB [68.3%] | |
+ _DelVarDefFromJSFile_ jffsAvailableSpace | |
+ [ 1 -eq 0 ] | |
+ [ -z jffsAvailableSpace ] | |
+ local targetJSfile=/jffs/addons/ntpmerlin.d/ntpstatstext.js | |
+ [ -s /jffs/addons/ntpmerlin.d/ntpstatstext.js ] | |
+ grep -q ^var jffsAvailableSpace =.* /jffs/addons/ntpmerlin.d/ntpstatstext.js | |
+ _WriteVarDefToJSFile_ jffsAvailableSpaceStr 28.79MB [68.3%] | |
+ [ 2 -lt 2 ] | |
+ [ -z jffsAvailableSpaceStr ] | |
+ [ -z 28.79MB [68.3%] ] | |
+ local varValue | |
+ [ 2 -eq 3 ] | |
+ varValue='28.79MB [68.3%]' | |
+ local targetJSfile=/jffs/addons/ntpmerlin.d/ntpstatstext.js | |
+ [ ! -s /jffs/addons/ntpmerlin.d/ntpstatstext.js ] | |
+ grep -q ^var jffsAvailableSpaceStr =.* /jffs/addons/ntpmerlin.d/ntpstatstext.js | |
+ grep -q ^var jffsAvailableSpaceStr = '28.79MB [68.3%]'; /jffs/addons/ntpmerlin.d/ntpstatstext.js | |
+ sed -i s/^var jffsAvailableSpaceStr =.*/var jffsAvailableSpaceStr = '28.79MB [68.3%]';/ /jffs/addons/ntpmerlin.d/ntpstatstext.js | |
+ _Get_JFFS_Space_ FREE KB | |
+ local typex total usedx freex totalx | |
+ local sizeUnits sizeType sizeInfo sizeNum | |
+ local jffsMountStr jffsUsageStr percentNum percentStr | |
+ [ 2 -lt 1 ] | |
+ [ -z FREE ] | |
+ echo FREE | |
+ grep -qE ^(ALL|USED|FREE)$ | |
+ sizeType=FREE | |
+ [ 2 -lt 2 ] | |
+ [ -z KB ] | |
+ echo KB | |
+ grep -qE ^(KB|KBP|MBP|GBP|HR|HRx)$ | |
+ sizeUnits=KB | |
+ mount | |
+ grep /jffs | |
+ jffsMountStr=ubi:jffs2 on /jffs type ubifs (rw,relatime,assert=read-only,ubi=0,vol=13) | |
+ df -kT /jffs | |
+ grep -E .*[[:blank:]]+/jffs$ | |
+ jffsUsageStr=ubi:jffs2 ubifs 45528 13696 29472 32% /jffs | |
+ [ -z ubi:jffs2 on /jffs type ubifs (rw,relatime,assert=read-only,ubi=0,vol=13) ] | |
+ [ -z ubi:jffs2 ubifs 45528 13696 29472 32% /jffs ] | |
+ echo ubi:jffs2 on /jffs type ubifs (rw,relatime,assert=read-only,ubi=0,vol=13) | |
+ grep -qE [[:blank:]]+[(]?ro[[:blank:],] | |
+ echo ubi:jffs2 ubifs 45528 13696 29472 32% /jffs | |
+ awk -F {print $2} | |
+ typex=ubifs | |
+ echo ubi:jffs2 ubifs 45528 13696 29472 32% /jffs | |
+ awk -F {print $3} | |
+ total=45528 | |
+ echo ubi:jffs2 ubifs 45528 13696 29472 32% /jffs | |
+ awk -F {print $4} | |
+ usedx=13696 | |
+ echo ubi:jffs2 ubifs 45528 13696 29472 32% /jffs | |
+ awk -F {print $5} | |
+ freex=29472 | |
+ totalx=45528 | |
+ [ ubifs = ubifs ] | |
+ [ 43168 -ne 45528 ] | |
+ totalx=43168 | |
+ [ FREE = ALL ] | |
+ sizeNum=29472 | |
+ _GetNum_ (29472 * 100 / 43168) | |
+ echo (29472 * 100 / 43168) | |
+ awk {print (29472 * 100 / 43168)} | |
+ printf %.2f 68.2728 | |
+ printf %.1f 68.27 | |
+ percentNum=68.3 | |
+ percentStr=[68.3%] | |
+ sizeInfo=29472 | |
+ echo 29472 | |
+ return 0 | |
+ jffsFreeSpace=29472 | |
+ _JFFS_MinReservedFreeSpace_ | |
+ local jffsAllxSpace jffsMinxSpace | |
+ _Get_JFFS_Space_ ALL KB | |
+ local typex total usedx freex totalx | |
+ local sizeUnits sizeType sizeInfo sizeNum | |
+ local jffsMountStr jffsUsageStr percentNum percentStr | |
+ [ 2 -lt 1 ] | |
+ [ -z ALL ] | |
+ echo ALL | |
+ grep -qE ^(ALL|USED|FREE)$ | |
+ sizeType=ALL | |
+ [ 2 -lt 2 ] | |
+ [ -z KB ] | |
+ echo KB | |
+ grep -qE ^(KB|KBP|MBP|GBP|HR|HRx)$ | |
+ sizeUnits=KB | |
+ + grep /jffs | |
mount | |
+ jffsMountStr=ubi:jffs2 on /jffs type ubifs (rw,relatime,assert=read-only,ubi=0,vol=13) | |
+ df -kT /jffs | |
+ grep -E .*[[:blank:]]+/jffs$ | |
+ jffsUsageStr=ubi:jffs2 ubifs 45528 13696 29472 32% /jffs | |
+ [ -z ubi:jffs2 on /jffs type ubifs (rw,relatime,assert=read-only,ubi=0,vol=13) ] | |
+ [ -z ubi:jffs2 ubifs 45528 13696 29472 32% /jffs ] | |
+ echo ubi:jffs2 on /jffs type ubifs (rw,relatime,assert=read-only,ubi=0,vol=13) | |
+ grep -qE [[:blank:]]+[(]?ro[[:blank:],] | |
+ echo ubi:jffs2 ubifs 45528 13696 29472 32% /jffs | |
+ awk -F {print $2} | |
+ typex=ubifs | |
+ echo ubi:jffs2 ubifs 45528 13696 29472 32% /jffs | |
+ awk -F {print $3} | |
+ total=45528 | |
+ echo ubi:jffs2 ubifs 45528 13696 29472 32% /jffs | |
+ awk -F {print $4} | |
+ usedx=13696 | |
+ echo ubi:jffs2 ubifs 45528 13696 29472 32% /jffs | |
+ awk -F {print $5} | |
+ freex=29472 | |
+ totalx=45528 | |
+ [ ubifs = ubifs ] | |
+ [ 43168 -ne 45528 ] | |
+ totalx=43168 | |
+ [ ALL = ALL ] | |
+ echo 43168 | |
+ return 0 | |
+ jffsAllxSpace=43168 | |
+ echo 43168 | |
+ awk {printf("%s", $1 * 1024);} | |
+ jffsAllxSpace=44204032 | |
+ echo 44204032 | |
+ awk {printf("%d", $1 * 20 / 100);} | |
+ jffsMinxSpace=8840806 | |
+ + awk -F {print ($1 < $2)} | |
echo 8840806 9437184 | |
+ [ 1 -eq 1 ] | |
+ jffsMinxSpace=9437184 | |
+ echo 9437184 | |
+ return 0 | |
+ jffsMinxSpace=9437184 | |
+ echo 29472 | |
+ awk {printf("%s", $1 * 1024);} | |
+ jffsFreeSpace=30179328 | |
+ JFFS_LowFreeSpaceStatus=OK | |
+ awk -F {print ($1 < $2)} | |
+ echo 30179328 9437184 | |
+ [ 0 -eq 1 ] | |
+ _WriteVarDefToJSFile_ jffsAvailableSpaceLow OK | |
+ [ 2 -lt 2 ] | |
+ [ -z jffsAvailableSpaceLow ] | |
+ [ -z OK ] | |
+ local varValue | |
+ [ 2 -eq 3 ] | |
+ varValue='OK' | |
+ local targetJSfile=/jffs/addons/ntpmerlin.d/ntpstatstext.js | |
+ [ ! -s /jffs/addons/ntpmerlin.d/ntpstatstext.js ] | |
+ grep -q ^var jffsAvailableSpaceLow =.* /jffs/addons/ntpmerlin.d/ntpstatstext.js | |
+ grep -q ^var jffsAvailableSpaceLow = 'OK'; /jffs/addons/ntpmerlin.d/ntpstatstext.js | |
+ _GetFileSize_ /jffs/addons/ntpmerlin.d/ntpdstats.db HRx | |
+ local sizeUnits sizeInfo fileSize | |
+ [ 2 -eq 0 ] | |
+ [ -z /jffs/addons/ntpmerlin.d/ntpdstats.db ] | |
+ [ ! -s /jffs/addons/ntpmerlin.d/ntpdstats.db ] | |
+ [ 2 -lt 2 ] | |
+ [ -z HRx ] | |
+ echo HRx | |
+ grep -qE ^(B|KB|MB|GB|HR|HRx)$ | |
+ sizeUnits=HRx | |
+ + awk -F {print $3} | |
ls -1lh /jffs/addons/ntpmerlin.d/ntpdstats.db | |
+ fileSize=16.0K | |
+ sizeInfo=16.0KB | |
+ [ HRx = HR ] | |
+ echo+ 16.0KBtr | |
-d .0-9 | |
+ sizeUnits=KB | |
+ echo 16.0KB | |
+ return 0 | |
+ databaseFileSize=16.0KB | |
+ _WriteVarDefToJSFile_ sqlDatabaseFileSize 16.0KB | |
+ [ 2 -lt 2 ] | |
+ [ -z sqlDatabaseFileSize ] | |
+ [ -z 16.0KB ] | |
+ local varValue | |
+ [ 2 -eq 3 ] | |
+ varValue='16.0KB' | |
+ local targetJSfile=/jffs/addons/ntpmerlin.d/ntpstatstext.js | |
+ [ ! -s /jffs/addons/ntpmerlin.d/ntpstatstext.js ] | |
+ grep -q ^var sqlDatabaseFileSize =.* /jffs/addons/ntpmerlin.d/ntpstatstext.js | |
+ grep -q ^var sqlDatabaseFileSize = '16.0KB'; /jffs/addons/ntpmerlin.d/ntpstatstext.js | |
+ echo Stats last updated: Wed Jun 4 10:07:31 2025 | |
+ WriteStats_ToJS /tmp/ntpstatstitle.txt /jffs/addons/ntpmerlin.d/ntpstatstext.js SetNTPDStatsTitle statstitle | |
+ [ 4 -lt 4 ] | |
+ [ -f /jffs/addons/ntpmerlin.d/ntpstatstext.js ] | |
+ sed -i -e /^}/d;/^function/d;/^document.getElementById/d;/^databaseResetDone/d; /jffs/addons/ntpmerlin.d/ntpstatstext.js | |
+ awk NF /jffs/addons/ntpmerlin.d/ntpstatstext.js | |
+ mv -f /jffs/addons/ntpmerlin.d/ntpstatstext.js.tmp /jffs/addons/ntpmerlin.d/ntpstatstext.js | |
+ printf \nfunction %s(){\n SetNTPDStatsTitle | |
+ html=document.getElementById("statstitle").innerHTML=" | |
+ IFS= read -r line | |
+ html=document.getElementById("statstitle").innerHTML="Stats last updated: Wed Jun 4 10:07:31 2025 | |
+ IFS= read -r line | |
+ [ -n ] | |
+ html=document.getElementById("statstitle").innerHTML="Stats last updated: Wed Jun 4 10:07:31 2025" | |
+ [ 4 -lt 5 ] | |
+ printf %s\n}\n document.getElementById("statstitle").innerHTML="Stats last updated: Wed Jun 4 10:07:31 2025" | |
+ rm -f /tmp/ntpstatstitle.txt | |
+ echo var ntpstatus = "Done"; | |
+ Clear_Lock | |
+ rm -f /tmp/ntpMerlin.lock | |
+ return 0 | |
+ exit 0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment