黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

python“學習強國”任務自動化(三)利用linux的crontab自動維護

系統 3085 0

總的思路:先將項目部署到我的騰訊云虛擬主機中,然后在該臺虛擬主機中設置定時任務。這個定時任務的內容就是去執行一個shell腳本,shell腳本的內容是去執行上一篇寫好的爬蟲程序來維護數據庫并將輸出結果利用git相關命令push到倉庫中。

一、一些基礎知識

1.1 linux的時間表
  1. crontab程序是類unix系統中用于周期性執行被指定的命令的程序。
  2. 命令用法的簡單介紹
            
              
                #編輯當前用戶的時間表程序
              
              
                crontab
              
               -e


              
                #查看當前用戶的已經制定好的時間表
              
              
crotab -l


              
                #重啟crond,以使時間表生效
              
              
systemctl restart crond

            
          

3.crontab的格式
* * * * * user command

1.2 shell編程
  1. 需要掌握shell編程的基本語法。
  2. 需要掌握linux下常見的命令
1.3 github的使用
  1. 如何在將gihub倉庫部署到linux上,日后會寫這篇(待補充)。
  2. 完成部署后提交部分文件到github倉庫
            
              
                # 初始化本地git倉庫,只需要進行一次,執行成功后會在當前目錄生成一個git的隱藏目錄。
              
              
                git
              
               init

              
                # 將項目的某個文件添加到倉庫中,若我們需要上傳的不是目錄而只是一個文件,需要用f選項。
              
              
                git
              
               add -f 
              
                file
              
              
                # 添加本次改動的說明內容
              
              
                git
              
               commit -m 
              
                "text"
              
              
                #將本地的倉庫關聯到github上對應的倉庫,后面的link是github上對應的倉庫的.git地址
              
              
                git
              
               remote add origin 
              
                link
              
              
                #上傳前pull一下,拿到該項目最新的版本
              
              
                git
              
               pull origin master

              
                #origin是本地倉庫的缺省命名,master是遠程倉庫的master分支。
              
              
                git
              
               push -u origin master

            
          

二、編寫shell腳本

2.1 目錄結構

我設想的目錄結構是這樣的:

            
              
                [
              
              root@tysonscloud QIANGGUO
              
                ]
              
              
                # tree .
              
              
                .
              
              
                |
              
              -- __init__.py

              
                |
              
              -- linux_crontab

              
                |
              
              
                
                  `
                
                -- scripts 
                
                  |
                
                
                  `
                
              
              -- QGNews_maintain.sh

              
                |
              
              -- python項目(一)數據庫設計.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
                
                  `
                
              
              
                #多條程序的執行時間是有時間差的,為了避免出現push命令執行時已經到了第二分鐘,程序需要一個確定的時間
              
              

python /root/QIANGGUO/QIANGGUO/scrapy/news_scrapy.py 
              
                >
              
              
                $everydayLog
              
              /
              
                ${nowtime}
              
              .log 2
              
                >
              
              
                &
              
              1

              
                #創建每次維護的記錄
              
              
                git
              
               init

              
                git
              
               add -f 
              
                $everydayLog
              
              /
              
                ${nowtime}
              
              .log

              
                git
              
               commit -m 
              
                "這是
                
                  ${nowtime}
                
                的維護日志,由crontab程序自動創建"
              
              
                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

三、設置crontab程序

  • crontab -e :進行編輯
            
              0 */8 * * * 
              
                cd
              
               /root/QIANGGUO/QIANGGUO/
              
                ;
              
              
                bash
              
               linux_crontab/scripts/QGNews_maintain.sh`,每天的8點整、16點整、24點整會執行維護程序。

            
          
  • crontab -l :檢查
  • systemctl restart crond :讓crond任務生效。

四、github地址

  1. https://github.com/chinaltx/QIANGGUO
  2. 最后說一下思路:
  • 這幾天寫好rest風格的后臺接口。
  • 再用python的GUI寫一個桌面應用,這個桌面應用可以拿到每天最新的新聞數據,然后自動調用瀏覽器去執行(使用自動化測試框架實現),并且不會重復觀看,除此之外就是一些搜索功能。
  • 再之后就是把學習強國網頁版的整套api拿下來,通過提交請求的方法去告訴服務器我看了這篇文章,這樣就可以把這一套程序移植到微信公眾號上了。
  • 新手,邊學邊開發,還請急需這種程序的童鞋多多包容…

更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論