最近接手一个python爬虫,使用aiohttp + beautifulsoup4 + redis简单实现,任务保存在redis中队列,故如果要提高爬取效率可通过部署多个节点实现,现有多台服务器,于是写了如下管理脚本,实现批量更新代码,全部启动,停止等功能
- 一个 startup.sh负责单节点爬虫启动,关闭
- 一个 spiderBuild.sh 负责分发最新代码(scp实现),以及调用startup.sh
- 默认python3环境变量已配置
- 默认项目放于/opt目录
项目结构:
- crawler
- ….
- app.py (爬虫启动入口)
- startup.sh (该节点上启动,停止脚本)
- startup.sh脚本内容,可管理本机爬虫节点,命令为 /opt/crawler/startup.sh start|stop|restart
#!/usr/bin/env sh
#ckconfig: 2345 80 90
#description:start spider server
rootDir=$(dirname "$bin")
export APP_HOME=$rootDir