快速入门:如何在Linux服务器上跑爬虫
快速入门:在Linux服务器上部署和运行爬虫程序
服务器准备工作
购买一个服务器实例
以阿里云为例,阿里云现在有学生优惠,可以在以下链接领取:https://university.aliyun.com/
然后租一个2核2G的服务器,仅需285元,优惠下来只需0元即可租一年,还多出来15块钱可以缴十几个G的流量钱。
绑定弹性网卡
参考:
绑定弹性网卡的功能:
- 绑定弹性网卡以访问外网
- 获得公网ip,从而可以ssh访问
设置安全组
参考:
服务器设有防火墙,如果需要从本地访问服务器的MongoDB,则会被服务器的防火墙阻拦,因此需要设置安全组,允许访问27017端口。
配置MongoDB
安装MongoDB
主要参照MongoDB手册,为了阅读方便,将关键内容摘抄如下:
1. 导入MongoDB的public key
安装gnupg
和curl
1 | sudo apt-get install gnupg curl |
导入 MongoDB public GPG key
1 | curl -fsSL https://pgp.mongodb.com/server-7.0.asc | \ |
创建MongoDB的列表文件
1 | echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list |
更新软件包列表
1 | sudo apt-get update |
安装最新的稳定版的MongoDB
1 | sudo apt-get install -y mongodb-org |
在systemd下启动MongoDB
1 | sudo systemctl start mongod |
创建管理员
为了防止被攻击,需要设定管理员角色,这样的话访问MongoDB需要账户密码。
1. 启用访问控制
编辑 MongoDB 的配置文件(通常是 etc/mongod.conf
),以启用访问控制。在配置文件中添加或更新以下行:
1 | security: |
这将启用用户认证。
一般情况下服务器进去默认在root,etc和root在同一级文件夹中,访问etc需要先到上一级文件夹再访问
2. 重启 MongoDB 服务
更改配置后,需要重启 MongoDB 服务以应用更改。这通常可以通过以下命令完成(systemd系统下):
1 | sudo systemctl restart mongod |
3. 连接到 MongoDB Shell
使用 MongoDB Shell 连接到数据库:
1 | mongosh |
4. 创建管理员用户
在 MongoDB Shell 中,切换到 admin
数据库并创建一个新用户:
1 | use admin |
将 "myAdmin"
和 "adminPassword"
替换为自己的用户名和密码。
5. 退出并以管理员身份重新登录
退出 MongoDB Shell(使用 exit
命令),然后使用您刚创建的管理员账户重新登录:
1 | mongosh -u <your_user_name> -p <your_password> --authenticationDatabase admin |
tmux
参考:Linux笔记:终端复用与管理工具screen和tmux_tmux和screen-CSDN博客
更多功能参见:终端神器tmux:多任务管理大师
假设已经可以通过ssh连接服务器了,为了保证程序可以在后台运行,需要使用终端复用与管理工具tmux
。
安装tmux
1 | sudo apt install tmux |
常用命令
-
创建一个名为name新会话并进入:
1
tmux new -s name
-
进入一个已经创建了的会话:
1 | tmux a -t name |
-
退出会话:先按
ctrl+b
,然后再按d
-
上下翻页:先按
ctrl+b
,然后再按PgUp
,按q
退出 -
结束会话:
1
tmux kill-session -t name
使用tmux
创建一个会话并在其中运行爬虫程序,这样断开ssh连接后爬虫仍会继续运行。
MongoDB相关问题
错误代码14
1 | × mongod.service - MongoDB Database Server |
没有足够的访问权限
1 | sudo chown -R mongodb:mongodb /var/lib/mongodb |
sudo chown -R mongodb:mongodb /var/lib/mongodb
:- 这条命令会递归地(由
-R
参数指定)更改/var/lib/mongodb
目录的所有权,包括目录内的所有文件和子目录。 mongodb:mongodb
指定了新的所有者和所属组,这里两者都是mongodb
。这表示该目录及其内容的所有者和所属组都更改为mongodb
用户和组。- 这样做确保了运行 MongoDB 服务的用户(通常是
mongodb
用户)有权读取和写入这个目录,这对于 MongoDB 存储数据和日志至关重要。
- 这条命令会递归地(由
sudo chmod -R 700 /var/lib/mongodb
:- 这条命令同样递归地更改
/var/lib/mongodb
目录的权限。 700
是一个八进制数,代表着设置的权限。在这个上下文中,7
表示目录的所有者(mongodb
用户)有读、写和执行(访问)权限;而后面两个0
表示其他用户和组没有任何权限。- 这意味着只有目录的所有者(
mongodb
用户)可以读取、写入和进入该目录,而其他任何用户都无法访问。这是一种安全措施,防止未经授权的访问或修改 MongoDB 的数据。
- 这条命令同样递归地更改