用樹莓派搭建家庭NAS下載機
開始
去年雙十一的時候入了樹莓派,抱著試一試的心情,我買了一堆配件準備玩,結果買回來玩了兩天就扔在那裡沒動了。
逼乎上有長者曾經說過:“先想好想要做什麼,再去買東西做。買完東西,問做什麼好的,通常都是[嗶——]。”我認為,這是墜好的。
正好前兩天逛鹹魚,發現了一個同城的二手SATA 160G硬碟,成色還不錯,猶豫再三,剁了手,又去淘寶買了一個硬碟盒
掛載磁碟
經過了艱苦的等待,硬碟盒終於到了,連線電腦測試,速度飛起,100M/s的寫入速度讓我終於感覺到USB3.0的效能,淚流滿面,這大概是我用過最快的USB裝置了。
但是看看樹莓派的USB2.0口和百兆的網口,似乎有點浪費了,不過為了世界和平,就這樣吧……
關於磁碟的掛載,是Linux的基本功。一頓猛查資料後,先找到硬碟在/dev/中的地址,我的sata硬碟是/dev/sda1/,在mnt目錄下新建一個目錄當作掛載點,安卓爪機裡常見的那啥sdcard1之類的目錄就是掛載點了,其實放啥地方起啥名都行,只要能找得到的話……
#新建一個目錄
sudo mkdir /mnt/usbdisk
硬碟是NTFS格式的,其實本來想格式化成linux用的ext4,但是尋思尋思,玩意我哪天閒的沒事需要高速儲存資料又把硬碟拔下來插電腦呢?於是就需要ntfs-3g這個軟體來讓樹莓派可以讀取NTFS格式。
#安裝所需軟體包
sudo apt-get install fuse-utils ntfs-3g
#載入核心模組
modprobe fuse
#編輯fstab讓行動硬碟開機自動掛載
sudo nano /etc/fstab
#在最後一行新增如下內容
/dev/sda1 /mnt/usbdisk ntfs-3g defaults,noexec,umask=0000 0 0
#儲存重啟,即可生效
於是現在就可以通過/mnt/usbdisk訪問硬碟了,高中時候買的那兩本厚厚的(盜版)鳥哥linux私房菜沒白買啊,花了幾周自習看完了,雖然記不住具體是啥,但是還記得系統都能幹啥,還是挺有意義的。
samba
接下來要讓區域網內可以訪問,鳥哥的linux私房菜中重點介紹的samba讓我記得挺清楚,這玩意弄吼了,網內裝置都可以訪問,Exited!
#搞一個桑巴出來
sudo apt-get install samba samba-common-bin
#複製一下配置檔案留個備份
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
#編輯配置檔案
sudo nano /etc/samba/smb.conf
編輯配置檔案的時候,先在上面去掉security = user前面的註釋,來使用使用者進行驗證,禁止匿名登入,雖然是內網但是肯定是要使用者驗證的嘛。
在檔案的最後按照上面的格式寫下自己的配置,配置項都很簡單易懂,不知道比那些一堆一堆英文的文件高到哪裡去了!(大拇指
[name]
comment = Test share
Path = /mnt/usbdisk
valid users = @nekotora
force group = users
create mask = 0660
directory mask = 0771
read only = no
配置好以後重啟一下samba服務
service samba restart or sudo service smbd restart
然後新增一下上面配置的使用者
useradd nekotora -m -G users
給新使用者設定密碼
passwd nekotora
讓samba認識一下這個使用者,並且配置他的samba訪問使用者名稱密碼
smbpasswd -a nekotora
完成!
在windows或者安卓裝置上就能找到樹莓派了,贊贊贊。
實測內網速度還是很令人滿意的,讀取速度能跑滿辣雞樹莓派和他連著交換機的百兆頻寬。總感覺用樹莓派有點浪費了速度OAQ
Aria2
不能下載東西的硬碟和鹹魚有什麼區別!
Aria2是一個命令列下載工具,其他平臺能下啥他都能下,甚至有一些小工具還能讓他支援百度網盤和迅雷離線。
安裝aria2
sudo apt-get install aria2
aria2執行的時候需要兩個檔案,並且需要我們手動配置,一個是配置檔案aria2.conf,儲存配置,另一個是aria2.session,要不每次aria2關閉的時候,之前下載的進度都沒了。為了顯得我的目錄很整齊,我把他放到/home/pi/aria2/目錄下面
cd /home/pi
mkdir aria2
cd aria2
#摸一個空白的aria2s session檔案出來
touch aria2.session
#編輯一下配置檔案
nano aria2.conf
內容如下
#檔案儲存目錄
dir=/mnt/usbdisk/download
#因為垃圾運營商還沒有ipv6,獲取了也沒有,關掉
disable-ipv6=true
#開啟rpc給等會的web管理介面用
enable-rpc=true
rpc-allow-origin-all=true
rpc-listen-all=true
#rpc-listen-port=6800
#允許斷點續傳
continue=true
#進度儲存檔案
input-file=/home/pi/aria2/aria2.session
save-session=/home/pi/aria2/aria2.session
#最大同時下載任務數
max-concurrent-downloads=3
儲存退出
用配置檔案啟動一下測試
sudo aria2c --conf-path=/etc/aria2/aria2.conf
服務很愉快的跑起來了沒有報錯,用Ctrl+C停下來,繼續配置
順便給aria2c做成服務吧,用起來會方便的多
新建一個aria2c的服務
sudo nano /etc/init.d/aria2c
存入一下內容
(反正也看不懂,大概就是系統服務的一種配置格式嗯……)
記得把使用者名稱和位置改成自己的
#!/bin/sh
### BEGIN INIT INFO
# Provides: aria2
# Required-Start: $remote_fs $network
# Required-Stop: $remote_fs $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Aria2 Downloader
### END INIT INFO
case "$1" in
start)
echo -n "Starting aria2c"
sudo -u pi aria2c --conf-path=/home/pi/.aria2/aria2.conf -D
#把上面的兩個pi換成你的使用者名稱
;;
stop)
echo -n "Shutting down aria2c "
killall aria2c
;;
restart)
killall aria2c
sudo -u pi aria2c --conf-path=/home/pi/.aria2/aria2.conf -D
#把上面的兩個pi換成你的使用者名稱
;;
esac
exit
儲存退出,再給個許可權
sudo chmod 755 /etc/init.d/aria2c
來測試一下Are you ok?
sudo service aria2c start
顯示Starting aria2c,ok,ok
讓他開機自己啟動
sudo update-rc.d aria2c defaults
aria2c還沒有管理頁面,我們可以找個好看的web頁面進行管理
Github上有不少這樣的介面,我用的是webui-aria2,看起來比較高檔
想要能訪問web介面的話還需要安個Apache,這個就輕車熟路多了。
sudo apt-get apache2
裝好之後設定好apache2的許可權:
sudo visudo
底部新增這行
www-data ALL=(ALL) NOPASSWD: ALL
Ctrl + O儲存,Ctrl + X退出
然後從git下載web介面
cd /var/www
git clone https://github.com/ziahamza/webui-aria2
現在,開啟樹莓派的地址就能訪問到,點選設定,伺服器設定,填上地址和埠號,提示Successfully就成功了!
新增任務就能開始下載了。
迅雷
然後我就開始下東西,老司機開的車就很好嘛。9FE23BE78F054024F05B59522B75AA6423720E5A
結果發現根本沒速度啊臥槽,於是等了一個下午,才下了幾Kb,我當時就不樂意了。這什麼辣雞!
我用迅雷試著下了一下,這車沒問題啊。
於是求助,老司機凌妹看了看說:“傳統bt不行的”……
哦,原來如此,(英文怎麼說來著),so_da_na!
不行,還是搞套迅雷離線下載吧。
先去迅雷那裡下下來編譯好的迅雷下載程式。
因為不是開源的,迅雷對各種平臺都提供了編譯好的版本,樹莓派用到的是armel_v5te_glibc。
參考迅雷官方的配置說明
下載好之後通過sftp把檔案推倒樹莓派上,為了檔案的整齊,我放倒了/home/pi/xunlei下面。
啟動一下試試看?
/home/pi/xunlei/portal
但是這樣管理不方便,而且想讓他開機啟動,還要把他做成一個服務,加到啟動項裡。
建立服務
sudo nano /etc/init.d/xunlei
和剛才的aria一樣配置一個服務
#!/bin/sh
#
# Xunlei initscript
#
### BEGIN INIT INFO
# Provides: xunlei
# Required-Start: $network $local_fs $remote_fs
# Required-Stop:: $network $local_fs $remote_fs
# Should-Start: $all
# Should-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start xunlei at boot time
# Description: A downloader
### END INIT INFO
do_start()
{
./home/pi/xunlei/portal
}
do_stop()
{
./home/pi/xunlei/portal -s
}
case "$1" in
start)
do_start
;;
stop)
do_stop
;;
esac
最後設定一下開機啟動
sudo update-rc.d xunlei defaults
完成,現在可以再迅雷裡面看到樹莓派並且方便的下載了。在外網也可以控制。
hdparm
最後,還有一個問題沒解決。
那塊硬碟,有沒有事幹的時候都在不停的工作。因為是舊硬碟,在磁碟引數裡已經看到兩個報警了,連續工作時間也達到了500days+
這麼高壽的硬碟24小時工作總感覺有點對不起它。
這就需要一個硬碟自動休眠的東西。
安裝haparm
sudo apt-get hdparm
設定硬碟自動休眠
#立刻讓硬碟休眠,先試試看好不好用
sudo hdparm -Y /dev/sda1
#設定硬碟自動休眠,數值/12 = 分鐘,設定為120就是無操作10分鐘後休眠
sudo hdparm -S 120 /dev/sda1
這樣硬碟沒事的時候就能睡覺了。
當然,還要加到啟動項裡好讓硬碟自動休眠
編輯rc.local
sudo nano /etc/rc.local
在exit 0之前插入休眠硬碟的命令就ok
總結
於是,這樣就折騰好了,在路由器設定中讓樹莓派暴露給外網,在其他地方也能控制他下載東西了。
因為樹莓派和交換機都是百兆網口,能滿速已經不錯了,還是浪費了好多效能,還不如買個小米路由器還送個1t硬碟,但是過程還是挺有趣的,特別是看到桌子上的一堆裝置開始閃著led執行的時候簡直炒雞帥(๑•ั็ω•็ั๑)
最近一直在填坑,偷偷摸魚玩了這些不知道會不會被打。
說起來咱幹活真是不專注,本來想著寫完趕緊繼續填坑,結果想引用幾句位元客棧一篇文章的話,就跑去那裡一邊翻一邊讀以前的文章,結果一看就是兩個小時,最後還是沒找到……又浪費了一個下午OAQ
還有多少時間可以發呆呢?