⽤N1搭建家⽤NAS
久闻N1⼤名,去年冬天⼊⼿了⼀台⽤来做电视盒⼦表现很不错。最近有想写博客的想法,就想再来⼀台⽤以做博客的服务器。但当N1到⼿后发觉没有公⽹IP,盒⼦也就只能⼯作在局域⽹,⽆法通过公⽹访问博客。所以转换思路⽤hexo写博客挂在GitHub Pages上也是不错的。那N1呢?没有公⽹IP索性就刷成Armbian,在Arm Linux上搭建家⽤NAS吧(顺带Linux也可以跑⼀些python脚本)。
⼀.降级并刷⼊Armbian
Armbian是适⽤与Arm平台的嵌⼊式Debian,是⼀个Arm Linux常见的硬件载体有各种pi(⽐如树莓派、⾹橙派)
1.降级
N1连接⽹络,在盒⼦上⽤⿏标连续点击版本号开启ADB,开启后打开降级⼯具选在2-N1降级按照提⽰输⼊相应IP,降级成功后就先不⽤管。如果失败就多试⼏次。
补充:如果没有USB双公头线,那么将⽆法通过webpad降级⼯具的功能3)触发U盘启动。
替代⽅法是下载adb⼯具,然后执⾏如下2个命令,即可确保⽀持U盘启动:
adb connect 斐讯IP
adb shell reboot update
2.刷⼊Armbian
写⼊U盘
降级成功后拔掉盒⼦电源,往U盘中写⼊Armbian系统,⽤烧录⼯具进⾏写⼊。写⼊后将
meson-gxl-s905d-phicomm-n1-xiangsm.dtb
放进U盘中dtb⽬录下,在dtb同级⽬录下修改uEnv.ini为
dtb_name=/dtb/meson-gxl-s905d-phicomm-n1-xiangsm.dtb
其余配置不⽤改。dtb为引导⽂件,引导不同的硬件配置以不同的⽅式启动Armbian,此处修改为N1的dtb是为了引导N1启动系统。
dtb⽂件作⽤的描述是,使⽤dtb可以减少linux内核版本的数量。同⼀份linux 内核代码可以在多个板卡上运⾏,每个板卡可以使⽤⾃⼰的dtb⽂件
百度dtb解释
启动并配置
然后插⼊U盘接通N1电源(不要在N1开机状态下插⼊U盘,安卓系统会往U盘⾥写⼀些东西,后会出现⼀些异常)插上⽹线,然后在windows⽤xshell或其它终端⽤ssh登陆N1的Armbian系统,登陆格式为
ssh root@ip(N1在⽹络下的ip,可以去路由器查看) -p 22(端⼝,如果不⾏请⽤ScanPort扫描出端⼝)
密码为1234,进去系统后会询问⼀次密码再次输⼊即可。输⼊后,会提⽰修改密码,修改即可,按照提⽰创建新⽤户照着提⽰做就⾏。armbian-config命令进⼊配置
选择Personal
修改时区为Asia/Chongqing或Shanghai
修改Mirror为清华源,hostname可以根据⾃⼰喜好修改主机名
连接WiFi
python菜鸟教程100输⼊nmtui配置WiFi(⾮必须步骤,可选),选择第⼆项Activate a connection进⼊后连接WiFi即可,若出现扫描不出WiFi可能是U盘内容出错,重新写U盘从头再做⼀遍。
apt换源
默认apt官⽅源因为⼀些原因速度较慢,所以换源采⽤清华源。输⼊vim /etc/apt/sources.list,更换⾥⾯内容为
deb mirrors.tuna.tsinghua.edu/ubuntu-ports/ bionic main restricted universe multiverse
#deb-src mirrors.tuna.tsinghua.edu/ubuntu-ports/ bionic main restricted universe multiverse
deb mirrors.tuna.tsinghua.edu/ubuntu-ports/ bionic-security main restricted universe multiverse
#deb-src mirrors.tuna.tsinghua.edu/ubuntu-ports/ bionic-security main restricted universe multiverse
deb mirrors.tuna.tsinghua.edu/ubuntu-ports/ bionic-updates main restricted universe multiverse
#deb-src mirrors.tuna.tsinghua.edu/ubuntu-ports/ bionic-updates main restricted universe multiverse
deb mirrors.tuna.tsinghua.edu/ubuntu-ports/ bionic-backports main restricted universe multiverse
#deb-src mirrors.tuna.tsinghua.edu/ubuntu-ports/ bionic-backports main restricted universe multiverse
修改apt源,输⼊vim /etc/apt/sources.list.d/armbian.list,修改内容为
deb mirrors.tuna.tsinghua.edu/armbian bionic main bionic-utils bionic-desktop
之后执⾏
apt update
apt upgrade
写⼊emmc(可选)
如果不写⼊emmc系统会⼀直处于U盘中,写⼊的话可以脱离U盘。
nand–sata-install
命令写⼊U盘,完成后输⼊halt关机,再次开机拔掉U盘就可以正常进⼊系统。
其余配置
建议更换sh为zsh,apt install zsh再去下载oh-my-zsh,vim ~/.zshrc修改主题为ys
⼆.安装OMV并配置SMB
1.安装OMV
OMV全称OpenMediaVault,⼀款开源NAS系统。
SMB换句话说,就是⼀个围绕局域⽹共享存储⽂件或⽂件夹的⼀个服务。
SMB概念:
SMB(全称是Server Message Block)是⼀个协议名,它能被⽤于Web连接和客户端与服务器之间的信
息沟通。SMB最初是IBM的贝瑞·费根(Barry Feigenbaum)研制的,其⽬的是将中的本地⽂件接⼝“中断13”改造为。
⼀条命令安装OMV5
wget -O - github/OpenMediaVault-Plugin-Developers/installScript/raw/master/install | sudo bash
安装成功后可以浏览器进⼊盒⼦IP,账户默认admin,密码默认为openmediavault。此处安装的OMV开机⾃动启动。
2.配置SMB
挂载U盘
共享⽂件夹
选择刚才挂载的U盘,填⼊名称⾃动⽣成⽂件夹,按照需求配置权限。
SMB添加共享⽂件夹
如图操作,选择刚才⽣成的共享⽂件夹按照需求配置权限。
⾄此,SMB成功。
成功后即可在局域⽹内管理⽂件。
三.配置⼀些定时脚本
有了SMB功能后,得益于 Linux的强⼤,我们可以⽤python写⼀些脚本定时执⾏。
若⽤python3执⾏脚本,应使⽤pip3安装某些可能⽤的包,apt下应该这样安装
sudo apt install python3-pip
pip安装成功后就可以安装⼀些python的包了
pip3 install numpy(包名)
crontab是Linux的定时任务,输⼊crontab -e即可编辑定时任务
参数列表:
-
e : 执⾏⽂字编辑器来设定时程表,内定的⽂字编辑器是 VI,如果你想⽤别的⽂字编辑器,则请先设定 VISUAL 环境变数来指定使⽤那个⽂字编辑器(⽐如说 setenv VISUAL joe)
-r : 删除⽬前的时程表
-l : 列出⽬前的时程表
从左到右定时任务格式为
* * * * *
- - - - -
| | | | |
| | | | +----- 星期中星期⼏ (0 - 7) (星期天为0)
| | | +---------- ⽉份 (1 - 12)
| | +--------------- ⼀个⽉中的第⼏天 (1 - 31)
| +-------------------- ⼩时 (0 - 23)
+------------------------- 分钟 (0 - 59)
⽐如说我要在每天的00:00执⾏某个python脚本可以
crontab详细请参照菜鸟教程
贴吧⾃动签到python脚本,签到成功发送邮件
import smtplib
import requests
import re
from email import encoders
from import MIMEText
from email.mime.base import MIMEBase
from email.mime.multipart import MIMEMultipart
from datetime import date
class AutoSign:
def __init__(self, d=[]):
#d[0]存放cookie
#d[1]要发送的邮箱
m = self.signin(d[0])
if len(d) == 2:
mail = d[1]
self.send2mail([
'',#发送邮件的发送邮箱
'',#发送邮箱的授权码
mail
], m)
def send2mail(self, s=[], m=''):
receivers = []
sender = s[0]
passWord = s[1]
receivers.append(s[2])
msg = MIMEMultipart()
today = day())
msg['Subject'] = today+'贴吧⾃动签到'
msg['From'] = '贴吧⾃动签到'
msg_content = m
msg.attach(MIMEText(msg_content, 'plain', 'utf-8'))
try:
#QQsmtp服务器的端⼝号为465或587
s = smtplib.SMTP_SSL("smtp.qq", 465)
s.set_debuglevel(1)
s.login(sender, passWord)
#给receivers列表中的联系⼈逐个发送邮件
for item in receivers:
msg['To'] = to = item
s.sendmail(sender, to, msg.as_string())
print('Success!')
s.quit()
print("All emails have been sent over!")
except smtplib.SMTPException as e:
print("Falied,%s", e)
def signin(self, cookie):
s = ''
print('*' * 30 + '百度贴吧签到⼩助⼿' + '*' * 30)
# 例如 cookie = 'xxxxxxxxxxx'
url = 'tieba.baidu/'
headers = {
'Cookie': cookie,
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36' }
html = (url, headers=headers).text
tieba = re.findall(r'forum_name":"(.*?)"', html)
tieba = tieba[:int(len(tieba) / 2)]
print('正在进⾏贴吧签到...')
num = 0
k = 0
for i in tieba:
i = i.replace('\\\\', '\\').encode(
'latin-1').decode('unicode_escape')
url = 'tieba.baidu/sign/add'
form = {'ie': 'utf-8',
'kw': i, # 要签到的贴吧名
'tbs': '9da208cc747e7b5b1519730458'}
html = requests.post(url, data=form, headers=headers).json()
if html['no'] == 1101:
k += 1
print('[' + i + '吧]:' + '亲,此贴吧您之前已经签过了哦!')
t = str(int(k/10))+str(k % 10)+' . [ '+i+' 吧] : '
s += "{}已签,⽆须再签".format(t.ljust(30))
s += '\n'
if html['error'] == '' or html['no'] == 0:
k += 1
print('[' + i + '吧]:' + '签到成功!')
t = str(k)+' . \t[ '+i+' 吧] :\t'
s += ("{}: 签到成功".format(t.ljust(30)))
s += '\n'
num += 1
print('\n')
r = '本次签到情况: '+str(num)+" / "+str(k)
s = r+"\n\n"+s
# print(s)
return s
if __name__ == '__main__':
user = AutoSign([
'',#贴吧账户cookie,浏览器获取
''#接收签到信息邮箱
])
本⽂参考链接
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论