用 Raspberry Pi 做 NAS 和 采集器
引子
在之前
Raspberry Pi Setup一文中介绍了树莓派的初始配置. 这几天乘着还没开学, 就赶紧把树莓派重新跑起来, 虽然悲催的因为网络设定导致我的树莓派无法联网只能强制重刷了… 好在之前在家里就一直用 samba 把重要的脚本都存在了外置盘上, 而已抓取的数据也有早起的备份, 丢失的数据就没办法了..
所以正好相当于重新设定了一遍 NAS 和 diango , 本文做简单介绍, 方便后续查看.
NAS
NAS 全称是: Network-attached Storage. 简单说就是在一个网络组中用来存储数据的地方, 而在这个网路组的所有用户都可以在相应的权限下查看, 编辑.
通常一个低配的 NAS 也要差不多100多刀左右, 当然其读写速度, 性能都是很棒的, 买来即用~ 不过作为穷屌丝一枚, 手头又有几个闲置的移动硬盘和 U 盘. 于是就参考网上的教程用树莓派做个简易的 NAS , 供个人和室友使用还是绰绰有余了~
Samba
想要实现自用的 NAS, 主要依赖的就是 Samba 这个服务了. Samba 是基于 SMB 协议的一个服务. 利用它多平台的特性可以方便的在多平台上进行数据交换. 而自建 NAS 的核心即是: 以树莓派为搭载平台, 将链接其上的闲置硬盘作为共用存储器.
Samba 的安装和配置都很简单:
1 | apt-get install samba samba-common-bin |
其中, 如果希望每次开机自动挂载硬盘到自定义位置, 可以通过修改/etc/fstab
文件来实现:
1 | 在原有基础上添加(修改 `/sda1` 为你的硬盘初始挂载位置): |
在完成设定后, 就需要重启 samba 服务并添加对应用户了. 因为我们开启了security = user
, 所以这里需要给 samba 添加系统用户, 比如默认的 pi 用户, 或者 root. 当然你可以通过useradd
来给系统创建新用户.
创建用户后, 就可以给 samba 添加用户了.
smbpasswd -a username
即可添加用户, smbpasswd -e nas
则启用此用户.
设定好对应用户的 samba 密码后即可通过你的电脑访问你的共享盘了, 你可以通过 connect 到 smb://192.168.x.x
(你的 pi 地址), 然后输入对应的用户名密码即可~
PS. 如果你是用的 NTFS 的硬盘, 那么还需要安装ntfs-3g
来实现对硬盘的读写功能, 如果你用的是 mac 的盘, 那么还需要安装hfsplus
和hfsutils
来实现同样的目的~ 上述都可以通过apt-get
直接安装.
到此, 你的简易 nas 就算是完成了~ 可以享受喽~
采集器
玩 python, 怎么能不写爬虫呢? 哈哈 因为树莓派低功耗, 全天候运行的特性, 作为爬虫可谓是绝佳的好平台 ^_^
支持库安装
首先为了跟随时代潮流, 我选择3.4作为 python 主版本~ 2.7.6作为辅助. 这里可以通过Pythonbrew来实现轻松管理 python 版本的目的. (注: pythonbrew 安装3.4的时候要使用3.4.0这种具体到小版本号的名称安装, 不然会找不到 package 的)
3.4已经自带了pip, 所以就可以不用自己安装了~ 接下来利用 pip 来安装支持库.
1 | pip install django |
到此, 基本库就算是差不多全了.
django
1 | django-admin startproject PROJECT_NAME |
修改 project 里的 settings.py
, 替换 database 的配置(根据你是用的 db 库修改), 添加 APP_NAME 到 INSTALLED_APPS 里.
采集APP
根据自己的情况修改 APP 的 models.py
创建表结构.
同步数据库:
1 | python manage.py migrate |
此外, 记得创建一个 admin user 并且把 admin 的静态文件转移过来~ (需要在 project 的 settings.py 中设定STATIC_ROOT
路径)
python manage.py createsuperuser
python manage.py collectstatic
通过这个就可以登录 django 的 admin 后台了~
采集脚本
接下来就是数据库的填充了~ 这里就得根据自己的情况来写爬虫喽~
supervisor 自启动
supervisor 是很好的系统任务管理工具. 利用它可以更方便的管理我们的 django 以及其他的项目, 如果有的话.
上面安装支持库中已经成功的为 python 3 安装了 supervisor, 所以这里我们就可以直接进入到配置环节了:
1 | [supervisord] |
DONE! 保存这一配置文件到你的任意目录中, 只要记得启动supervisord
的时候利用-c
指定到这一配置文件即可.
nginx 映射
为了让我们能够在局域网的其他机器上直接访问我们的 django, 我们需要把 nginx 映射到我们的 django 去~
最简单的方法就是, 利用proxy_pass http://127.0.0.1:8000;
将80端口直接导向我们的 django server 所在.
1 | server { |
如此, 通过 supervisord -c path_to_supervisor_conf
就可以启动你的 django 了~ 稍等片刻, 你就可以通过访问你的树莓派 ip 看到成功搭建的 django 欢迎页面了~
PS. 如果不喜欢手动加载 supervisor 配置, 也可以把配置文件放到 supervisor 的系统配置目录中, 然后就可以通过supervisord start supervisor_program_name
来启动了~
恩, 就到这里了~ 下一步就是在我的树莓派上搭建一个每天任务跟踪的服务了~ 这个还需要好好想想~ ^_^