python'학습강국'작업 자동화 (3) linux의crontab를 이용하여 데이터베이스에 있는 파충류 데이터 자동 유지

전체적인 사고방식: 먼저 프로젝트를 나의 텐센트 클라우드 가상 호스트에 배치한 다음에 이 가상 호스트에 정시 임무를 설정한다.이 시간제 작업의 내용은 셸 스크립트를 실행하는 것입니다. 셸 스크립트의 내용은 이전에 작성한 파충류 프로그램을 실행하여 데이터베이스를 유지하고 출력 결과를git 관련 명령으로push를 창고에 저장하는 것입니다.
기초 지식
1.1 linux 스케줄
  • crontab 프로그램은 클래스unix 시스템에서 지정한 명령을 주기적으로 실행하는 프로그램입니다.
  • 명령 사용법에 대한 간단한 소개
  • #            
    crontab -e
    
    #                
    crotab -l
    
    #  crond,       
    systemctl restart crond
    

    3. crontab 형식 * * * * * user command1.2 셸 프로그래밍
  • 셸 프로그래밍의 기본 문법을 습득해야 한다.
  • linux에서 흔히 볼 수 있는 명령을 파악해야 한다
  • 1.3 github의 사용
  • gihub 창고를linux에 어떻게 배치하는지 나중에 이 글을 쓸 것입니다.
  • 배치 완료 후 일부 파일을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
    

    2. 셸 스크립트 작성
    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
    
  • 셸 스크립트는 linux에 저장됩니다.crontab 폴더에 매일 로그를 QGNews에 저장합니다.maintain_log 디렉토리에 있습니다.
  • 그리고 매일 로그를 별도의 폴더로 저장해야 한다.

  • 2.2 셸 스크립트
    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 [email protected]:chinaltx/QIANGGUO.git
    git pull origin master
    git push -u origin master
    #        push github
    
  • 셸 스크립트를 쓴 후 선진적인 테스트를 기억하세요:bash /root/QIANGGUO/QIANGGUO/linux_crontab/scripts/QGNews_maintain.sh
  • 3. 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 퀘스트를 적용합니다.

  • 4.github 주소
  • https://github.com/chinaltx/QIANGGUO
  • 마지막으로 생각 좀 말해봐요.
  • 요 며칠 동안 rest 스타일의 백엔드 인터페이스를 잘 썼다.
  • python의 GUI로 데스크톱 앱을 작성한다. 이 데스크톱 앱은 매일 최신 뉴스 데이터를 얻은 다음에 브라우저를 자동으로 호출해서 실행할 수 있다(자동화 테스트 프레임워크로 실현된다). 다시 보지 않고 그 외에 검색 기능도 있다.
  • 그 다음에 학습강국 홈페이지 버전의api를 떼어내고 요청을 제출하는 방법으로 서버에 내가 이 글을 보았다고 알려주면 이 프로그램을 위챗 공식 번호에 이식할 수 있다.
  • 초보자, 배우면서 개발, 이런 절차가 급히 필요한 어린이 신발도 많이 포용해주세요...
  • 좋은 웹페이지 즐겨찾기