idea@linuxce.cn
Cont

有任何疑问?

010-82482839

usbserver工程师手记(二)设置定时任务

概述
部分银行ukey 长时间不使用后会导致休眠,出现虽然有连接,但是读不到证书,可以用定时重置端口的办法,调用接口 http://ip/usb_server/reset_port,参数为

{"port":"B5-1-2","vid_pid":"096e:0303:0314"}

其中port vid_pid 的值从管理后台获得

注意需要选择开启模拟拔插

 520025-20240710150455610-321098039-1


 或者点进去

 

520025-20240710150511655-1966105269

 

windows 设置定时任务

1、编辑执行文件usbportreset.ps1

520025-20240710150529922-541247503

 


$url = "http://192.168.2.245/usb_server/reset_port"

$text = @{

 "port"="B5-1-2"

"vid_pid"="096e:0303:0314"

} | ConvertTo-Json

Invoke-WebRequest -UseBasicParsing $url -ContentType "application/json" -Method POST -Body $text
修改ip 为你的usbserver ip, 以及需要重置的port和对应的vid_pid,如果需要重置多个端口,就写多行,例如

$url = "http://192.168.2.245/usb_server/reset_port"

$text = @{

 "port"="B5-1-1"

"vid_pid"="096e:0303:0314"

} | ConvertTo-Json

Invoke-WebRequest -UseBasicParsing $url -ContentType "application/json" -Method POST -Body $text
$text = @{

 "port"="B5-1-2"

"vid_pid"="096e:0303:0314"

} | ConvertTo-Json

Invoke-WebRequest -UseBasicParsing $url -ContentType "application/json" -Method POST -Body $text
GUI 方式设置
打开任务计划程序,设置触发器为每周星期六的23:40 执行

520025-20240710150602132-1003234089

 

操作填写
程序或脚本填
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
参数填
-ExecutionPolicy Bypass -File d:\work\usbportreset.ps1

其中d:\work\usbportreset.ps1 改成你自己的执行文件

 

520025-20240710150650771-259400762

 

 

命令行方式
打开powershell, 输入
chtasks /create /tn "usb 定时任务每周" /tr "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -File D:\work\\usbportreset.ps1"   /sc WEEKLY /mo 6 /st 23:40

如果是每天执行,输入

schtasks /create /tn "usb 定时任务每天" /tr "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -File D:\work\usbportreset.ps1"   /sc DAILY /st 23:40

效果测试
powershell 下运行
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -File D:\work\usbportreset.ps1
应该能看到ukey的灯会熄灭后点亮,如果没有,请检查执行文件中的参数
linux 设置定时任务

调整脚本usbportreset.sh 中的参数

 

520025-20240710150713030-1627377472

 

curl -X POST -H 'Accept: application/json' -H 'Content-Type: application/json' -i 'http://192.168.2.245/usb_server/reset_port' --data '{"port":"B5-1-2","vid_pid":"096e:0303:0314"}'

usbportreset.sh 拷贝到工作目录,调整属性为可执行,

chmod a+x usbportreset.sh

然后在 crontab -e 配置定时脚本

每周六执行
40 23 * * 6 /root/usbportreset.sh

每天执行
40 23 * * * /root/usbportreset.sh