求大神给个openwrt同步网络时间的开机启动脚本

求大神给个openwrt同步网络时间的开机启动脚本,第1张

登录luci界面,添加计划任务每五分钟同步一次时间即可,这样也能定时重启了,附上我的

02 02 * * * reboot #定时重启#

*/5 * * * * ntpclient -s -c 0 -h 211.68.71.26 #时间同步#

*/5 * * * * ntpclient -s -c 0 -h 202.120.2.101 #时间同步_2#

40 21 * * * echo 3 >/proc/sys/vm/drop_caches #释放内存#

解释:

1、时间同步脚本每五分钟执行一次,所以不管何时联网,5分钟之内即可同步,当然你也可以把间隔改为每3分钟“*/3”或每2分钟“*/2”

2、开机之后路由时间大概是21:40左右,执行第四行释放内存(提高路由稳定)。若重启后没有进行联网活动(mentohust不随开机启动)则无法同步时间,到路由时间2:02再次重启

3、若发生联网,则时间同步,直到自然时间2:02重启,回到第2步

效果

以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI,并以管理员身份运行/*&cls&echo off

rem 获取网络时间对本地电脑进行时间同步

set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4

title %#% +%$%%$%/%@% %z%

for /f "tokens=1*" %%a in ('cscript -nologo -e:jscript "%~f0"') do (

    echo%%a %%b

    date %%a

    time %%b

)

echo%#% +%$%%$%/%@% %z%

pause

exit

*/

function add(z){return Number(z)<10?'0'+z:z}

var req=null, now=null

var mx=['MSXML2.ServerXMLHTTP.6.0','MSXML2.ServerXMLHTTP.3.0','MSXML2.ServerXMLHTTP']

var host=['moc+udiab+www##:sptth','moc+oaboat+www##:sptth','moc+vtcc+www##:sptth']

for(var i=0i<mx.lengthi++){

    try{

        req=new ActiveXObject(mx[i])

        break

    }catch(e){}

}

if(req==null){WSH.StdErr.WriteLine("Can't build XMLHTTP object")WSH.Quit()}

for(var i=0i<host.lengthi++){

    try{

        url=host[i].replace(/#/g,'/').split('').reverse().join('').replace(/\+/g,'.')

        req.open('GET', url, false)

        req.send()

        var gmt=req.getResponseHeader('Date')

        if(gmt !=''&&gmt !=null){

            WSH.StdErr.WriteLine(gmt)

            now=new Date(gmt)

            break

        }

    }catch(err){WSH.StdErr.WriteLine(err.message)}

}

if(now !=null){

    var y=now.getFullYear(),m=now.getMonth()+1,d=now.getDate()

    var hh=now.getHours(),mm=now.getMinutes(),ss=now.getSeconds()

    WSH.echo(y+'-'+add(m)+'-'+add(d)+' '+add(hh)+':'+add(mm)+':'+add(ss))

}else{WSH.StdErr.WriteLine('Failed to get Internet Time')}

WSH.Quit()

首先.主脚本需要加密.不然都是扯淡.

第二.得有一个HTTP服务器提供最少一个验证接口.验证接口接收至少一个参数,就是触摸精灵的设备ID.

第三.HTTP服务器验证接口的逻辑实现.就看你自己怎么实现了.可以用数据库存储过期日期,也可以用SQLite,也可以用文本,你自己喜欢,就好,关键是判断设备ID是否过期.

第四.HTTP服务器验证接口返回数据给触摸精灵,触摸精灵判断返回值决定.如果过期,直接谈一个框告诉用户,然后exit()脚本就好了.

第五.就上面这些就差不多了.


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11485585.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-16
下一篇2023-05-16

发表评论

登录后才能评论

评论列表(0条)

    保存