總的思路:先將項目部署到我的騰訊云虛擬主機中,然后在該臺虛擬主機中設(shè)置定時任務(wù)。這個定時任務(wù)的內(nèi)容就是去執(zhí)行一個shell腳本,shell腳本的內(nèi)容是去執(zhí)行上一篇寫好的爬蟲程序來維護數(shù)據(jù)庫并將輸出結(jié)果利用git相關(guān)命令push到倉庫中。
一、一些基礎(chǔ)知識
1.1 linux的時間表
- crontab程序是類unix系統(tǒng)中用于周期性執(zhí)行被指定的命令的程序。
- 命令用法的簡單介紹
#編輯當(dāng)前用戶的時間表程序
crontab
-e
#查看當(dāng)前用戶的已經(jīng)制定好的時間表
crotab -l
#重啟crond,以使時間表生效
systemctl restart crond
3.crontab的格式
* * * * * user command
1.2 shell編程
- 需要掌握shell編程的基本語法。
- 需要掌握linux下常見的命令
1.3 github的使用
- 如何在將gihub倉庫部署到linux上,日后會寫這篇(待補充)。
- 完成部署后提交部分文件到github倉庫
# 初始化本地git倉庫,只需要進行一次,執(zhí)行成功后會在當(dāng)前目錄生成一個git的隱藏目錄。
git
init
# 將項目的某個文件添加到倉庫中,若我們需要上傳的不是目錄而只是一個文件,需要用f選項。
git
add -f
file
# 添加本次改動的說明內(nèi)容
git
commit -m
"text"
#將本地的倉庫關(guān)聯(lián)到github上對應(yīng)的倉庫,后面的link是github上對應(yīng)的倉庫的.git地址
git
remote add origin
link
#上傳前pull一下,拿到該項目最新的版本
git
pull origin master
#origin是本地倉庫的缺省命名,master是遠程倉庫的master分支。
git
push -u origin master
二、編寫shell腳本
2.1 目錄結(jié)構(gòu)
我設(shè)想的目錄結(jié)構(gòu)是這樣的:
[
root@tysonscloud QIANGGUO
]
# tree .
.
|
-- __init__.py
|
-- linux_crontab
|
`
-- scripts
|
`
-- QGNews_maintain.sh
|
-- python項目(一)數(shù)據(jù)庫設(shè)計.xls
|
-- QGNews_maintain_log
|
`
-- 2019-02-06
|
`
-- 2019-02-06_16:08.log
`
-- scrapy
|
-- __init__.py
|
-- news_scrapy.py
|
-- news.sqlite
`
-- test_02.py
- shell腳本存放在 linux_crontab 文件夾中,而每天的日志存放在QGNews_maintain_log目錄中。
- 并且每天都要用單獨的文件夾來存放日志 。
2.2 shell腳本
baseLogdir
=
/root/QIANGGUO/QIANGGUO/QGNews_maintain_log
everydayLog
=
$baseLogdir
/
$(
date
+%F
)
/
[
!
-d
"
$everydayLog
"
]
&&
mkdir
-p
$everydayLog
#判斷每日的日志文件存放的目錄是否存在
nowtime
=
`
date
+%F_%H:%M
`
#多條程序的執(zhí)行時間是有時間差的,為了避免出現(xiàn)push命令執(zhí)行時已經(jīng)到了第二分鐘,程序需要一個確定的時間
python /root/QIANGGUO/QIANGGUO/scrapy/news_scrapy.py
>
$everydayLog
/
${nowtime}
.log 2
>
&
1
#創(chuàng)建每次維護的記錄
git
init
git
add -f
$everydayLog
/
${nowtime}
.log
git
commit -m
"這是
${nowtime}
的維護日志,由crontab程序自動創(chuàng)建"
git
remote add origin git@github.com:chinaltx/QIANGGUO.git
git
pull origin master
git
push -u origin master
#把每次維護的記錄push到github
-
shell腳本寫完后記得先進行測試:
bash /root/QIANGGUO/QIANGGUO/linux_crontab/scripts/QGNews_maintain.sh
三、設(shè)置crontab程序
-
crontab -e
:進行編輯
0 */8 * * *
cd
/root/QIANGGUO/QIANGGUO/
;
bash
linux_crontab/scripts/QGNews_maintain.sh`,每天的8點整、16點整、24點整會執(zhí)行維護程序。
-
crontab -l
:檢查 -
systemctl restart crond
:讓crond任務(wù)生效。
四、github地址
- https://github.com/chinaltx/QIANGGUO
- 最后說一下思路:
- 這幾天寫好rest風(fēng)格的后臺接口。
- 再用python的GUI寫一個桌面應(yīng)用,這個桌面應(yīng)用可以拿到每天最新的新聞數(shù)據(jù),然后自動調(diào)用瀏覽器去執(zhí)行(使用自動化測試框架實現(xiàn)),并且不會重復(fù)觀看,除此之外就是一些搜索功能。
- 再之后就是把學(xué)習(xí)強國網(wǎng)頁版的整套api拿下來,通過提交請求的方法去告訴服務(wù)器我看了這篇文章,這樣就可以把這一套程序移植到微信公眾號上了。
- 新手,邊學(xué)邊開發(fā),還請急需這種程序的童鞋多多包容…
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
