之前看了Linux的基本操作。这一篇笔记中,我们来看一下关于把脚本爬虫部署到Linux服务器上面的做法。
1. 配置Linux环境:
首先是要把Linux上面的环境配好,比如Redis / Python3 / Requsts库/ Redis库。总之需要的依赖都要配好。
2. 上传代码和Json文件:
对于Mac系统,直接由SCP(SSH Copy)命令来upload东西。对于windows,我们在创立SSH连接的时候就需要Xshell这样的代理,之前已经说过。
在Xshell的条件下,我们需要在Linux系统中装lrzsz即可。这里的Yum(Yellow dog Updater, Modified)跟python中的pip是类似的,都是软件包管理器。
之后就直接把windows里面的文件拖到X'shell界面里即可。 很方便而且很帅,Xshell的优势之一。同时也可以Copy/Paste代码,这也是Xshell的优势之一。
下载就是 sz 文件名
3. 把脚本做成自启动服务:
pm2依赖(很好的方法,并且方便于最终的管理)
这种方法主要是依赖于封装好的pm2包来做的。这里在安装pm2的基础上,只需要掌握简单的pm2指令即可。
1) 安装pm2:
在Linux中使用
其中,npm(NodePackageManager)是NodeJs包管理工具。而pm2作为Node进程管理器,自然要用这个指令。(可能之前还要安装npm)
2) 加入进程:
$ pm2 start scipt.py --interpreter python3 (解释器参数一定要加上)
$ pm2 save 保存当前列表状态
$ pm2 startup 将pm2加入开机启动
这时候就可以看到其实进程已经加入pm2 List而且可以开机启动。
3) 相关指令
$ pm2 start app.js # 启动app.js应用程序
$ pm2 start app.js --name="api" # 启动应用程序并命名为 "api"
$ pm2 start app.js --watch # 当文件变化时自动重启应用
$ pm2 list # 列表 PM2 启动的所有的应用程序
$ pm2 monit # 显示每个应用程序的CPU和内存占用情况
$ pm2 show [app-name] # 显示应用程序的所有信息
$ pm2 logs # 显示所有应用程序的日志
$ pm2 logs [app-name] # 显示指定应用程序的日志
$ pm2 flush 清洗数据
$ pm2 stop all # 停止所有的应用程序
$ pm2 stop 0 # 停止 id为 0的指定应用程序
$ pm2 restart all # 重启所有应用
$ pm2 delete all # 关闭并删除所有应用
$ pm2 delete 0 # 删除指定应用 id 0
$ pm2 save # 保存当前应用列表
$ pm2 startup # 创建开机自启动命令
这里也看一下后台运行脚本的方法:
nohup python3 -u script.py > log.log 2>&1 &
把日志定向写到 log.log。 后面的2是说把错误日志定向写到&1,就是说同一个文件,即log.log。 最后的&是后台运行的意思
4. 一台服务器到多台服务器
在百度云控制台上面制作镜像文件,用镜像文件给n台主机重装系统
5. 打包下载
这里用python脚本来做打包。其实就是说把这些乱七八糟的文件按一定的规律(5000个一个包)压缩进包里,其实并没有压缩多少大小,因为图片的信息密度很大,本来就是压缩过的了。具体脚本如下。