翱翔門戶自動填報疫情
利用Linux Shell指令碼和Crontab定時任務實現每日自動填報疫情,並將填報結果推送至微信。
使用的環境:斐訊K2路由器,使用第三方的PDCN韌體,此韌體支援自定義配置 Crontab 定時任務。並且考慮到路由器一般會長期穩定執行,而不像電腦那樣可能處於待機或關機狀態,因此很適合在上面部署定時任務。
推送至微信的功能需要先用微信繫結Server醬,開通方法見http://sc.ftqq.com/3.version
任務指令碼
#!/bin/sh
login_url="https://uis.nwpu.edu.cn/cas/login?service=http%3A%2F%2Fyqtb.nwpu.edu.cn%2F%2Fsso%2Flogin.jsp%3FtargetUrl%3Dbase64aHR0cDovL3lxdGIubndwdS5lZHUuY24vL3d4L3hnL3l6LW1vYmlsZS9pbmRleC5qc3A%3D"
#登入引數
login_params="username=替換為學號&password=替換為密碼¤tMenu=1&execution=e1s1&_eventId=submit&geolocation=&submit=稍等片刻……"
commit_url_referer="http://yqtb.nwpu.edu.cn/wx/ry/jrsb.jsp"
commit_url="http://yqtb.nwpu.edu.cn/wx/ry/ry_util.jsp"
#需要上報的資料
commit_form_data="xasymt=1&actionType=addRbxx&userLoginId=替換為學號&fxzt=9&userType=2&userName=替換為姓名&szcsbm=1&szcsmc=在學校&sfyzz=0&sfqz=0&tbly=sso&qtqksm=&ycqksm=&qrlxzt=&xymc=替換為學院名稱&xssjhm=替換為手機號"
#ServerChan推送地址,見http://sc.ftqq.com/?c=wechat&a=bind
server_chan_url="https://sc.ftqq.com/替換為你的SCKEY.send"
#獲取指令碼所在路徑
script_dir=`dirname $0`
cd $script_dir
echo "刪除上次的填報記錄..."
rm -rf result.json
echo "獲取臨時session..."
curl -I -s -o /dev/null --cookie-jar session.txt $login_url
echo "開始登入門戶..."
curl --cookie session.txt --cookie-jar session.txt --referer $login_url --data-urlencode $login_params -L -o /dev/null -s $login_url
echo "開始疫情填報..."
curl -b session.txt -o result.json -L -s --referer $commit_url_referer --data-urlencode $commit_form_data $commit_url
echo "讀取上報結果..."
result=$(cat result.json)
state=$(echo $result | jq ".state")#jq是第三方的json解析工具,在PDCN的韌體的路由器上會自動下載該二進位制程式
if [ $state -eq 1 ];then
msg_title="疫情上報成功"
else
msg_title="疫情上報失敗"
fi
echo $msg_title
curl -s -L -o /dev/null -G --data-urlencode "text=$msg_title" --data-urlencode "desp=本次疫情填報結果為$result。如果狀態碼為1,則表示填報成功;如果狀態碼為其他值或者為空,則表示填報失敗。填報時間:【$(date "+%Y-%m-%d %H:%M:%S")】" $server_chan_url
echo "填報結果已經推送到微信"
部署到路由器上
Windows PowerShell
版權所有 (C) Microsoft Corporation。保留所有權利。
嘗試新的跨平臺 PowerShell https://aka.ms/pscore6
#使用ssh登入到路由器
PS C:\Users\Doraemon> ssh -l admin 192.168.123.1
admin@192.168.123.1's password:
BusyBox v1.24.2 (2020-07-01 13:07:02 CST) built-in shell (ash)
Enter 'help' for a list of built-in commands.
[RT-AC54U-GPIO-1-PSG1218-64M 3.4.3.9-099_20-08-2]# 2020-11-21 20:13:33
#新建一個檔案yq.sh,輸入上面的指令碼
[RT-AC54U /opt/home/admin]# vi yq.sh
#新增執行許可權
[RT-AC54U /opt/home/admin]# chmod 777 yq.sh
#設定定時任務
[RT-AC54U /opt/home/admin]# crontab -e
#輸入30 8 * * * /home/admin/yq.sh &
#表示每天8點30分執行疫情填報任務
相關文章
- 西安交大體溫自動填報程式!自動化就是強!
- python爬蟲(四)——selenium校園網自動填報Python爬蟲
- 帆軟基礎之填報入門
- 填報表能不能像 word 那樣定時自動儲存?
- 疫情時代,資料填報能給我們帶來哪些便利?_光點科技
- 使用selenium實現疫情期間體溫上報!自動化就是牛逼!
- NPD:疫情致美國戶外活動更受歡迎
- 揭祕移動端IT門戶
- 2024志願填報
- Excel都搞不定的多人填報,它能!還支援線上填報!Excel
- excel按照姓名自動匹配資料函式 怎麼根據姓名自動填寫資料Excel函式
- 皕傑報表之填報操作
- 使用Python自動填寫問卷星(pyppeteer反爬蟲版)Python爬蟲
- 填報 - 分片問題分析
- 文字框填內容寫達到指定長度自動切換
- 無程式碼快速實現自動填寫產品單價功能
- 實現一個上下固定,中間自動填滿的佈局
- IIE:2020美國門戶開放報告
- SpringBoot入門(四)——自動配置Spring Boot
- 【自動化測試入門】自動化測試思維
- 客戶端自動配置安裝(expect工具)客戶端
- 填報表之資料留痕
- 行式填報之主鍵設定
- 填報表如何生成 UUID 標識UI
- ansible自動化運維入門運維
- webpack自動化架構入門Web架構
- 前端自動化測試入門前端
- 還在為多人填報資料而頭疼?這個工具吊打EXCEL,線上可填報Excel
- steam賬戶名稱怎麼填寫 steam賬戶格式要怎麼設定
- 一體化運營門戶 BeyondBSM自動化運維釋出V3.1版本運維
- 客戶管理系統如何使流程自動化
- CRM公海客戶自動分配功能的實現
- 跟著鳥兒一起“展翅翱翔”
- 飽受衝擊,依舊迎風翱翔
- [求助] jenkins 自動部署報錯Jenkins
- 自動駕駛研究報告自動駕駛
- 填報表中也可以新增 html 事件HTML事件
- Flutter填坑筆記: dio報錯 FormatExceptionFlutter筆記ORMException