用树莓派做下载机

由于树莓派3B对USB3.0兼容性不好,容易出现掉盘,博主暂时没找到解决方法,不推荐用树莓派挂USB3.0接口的硬盘。用USB2.0接口硬盘的可以试一试。

 

一、硬件配置

树莓派3,3.5寸硬盘+硬盘盒,路由器

博主将树莓派连到路由器上,再将移动硬盘接到树莓派上。由于树莓派上的sd卡空间较小,下载产生的临时文件也存在移动硬盘中。

二、自启动配置

学校宿舍每天都会断电,而博主买的硬盘盒断电后还要按一下按钮才会启动硬盘,而下载软件amule启动后若检测不到下载目录就会更改下载目录,所以用先启动硬盘再启动amuled的方案。

不需要手动按开关的童鞋,可以使用自启动服务或自启动脚本。

1.使用udev在插入硬盘时运行脚本

在/etc/udev/rules.d目录下编写规则,可以启动脚本

ACTION=="add",ENV{ID_MODEL}=="HE-G3000", RUN+="/home/pi/mysh/mydisk.sh"

2.shell脚本创建后台

由于udev运行该sh脚本时,硬盘还未挂载(连sda都看不到),这时不方便运行amule,用sleep等待会导致硬盘挂载失败。

可行的方法是用这个脚本创建一个后台脚本,后台脚本检测到下载目录后启动amuled

mydisk.sh脚本如下:

#!/bin/sh
nohup sh /home/pi/mysh/startamule.sh >/home/pi/mysh/shlog.log 2>&1 &

创建后台脚本的命令nohup格式为

nohup command &

使用该格式时还需将标准输出设置到其他位置,比如>nohup.out,博主设置的位置是>/home/pi/mysh/shlog.log

还需要将标准错误输出设置到其他位置,2>&1就是将标准错误输出到与标准输出相同的位置上。

3.后台脚本启动amule和transmission

startamule.sh脚本:

#!/bin/sh
myPath="/media/pi/share/amule"
while [ ! -d "$myPath" ]; do
    echo "waiting"
    sleep 1
done
ps aux | grep transmission-daemon | grep -v grep
if [ $? -eq 0 ];then
    echo "transmission already start"
else
    echo "start transmission"
    su pi -c transmission-daemon
fi
ps aux | grep amuled | grep -v grep
if [ $? -eq 0 ];then
    echo "amuled already start"
else
    echo "start amuled"
    su pi -c "amuled -f"
fi

启动脚本后,每秒检查一次硬盘是否挂载上。检测到硬盘后,判断amule和transmission的进程是否存在,若不存在则启动下载程序。

不过上述代码并不可靠,建议改为以启动服务的方式运行程序。

4.自动关机

sudo crontab -e

添加如下规则

50 22 * * * /sbin/shutdown -h now

  

 

参考资料

树莓派VNC分辨率设置 http://shumeipai.nxez.com/2013/08/31/custom-display-resolution-raspberry-pie.html

树莓派挂载硬盘方式 http://shumeipai.nxez.com/2013/09/08/raspberry-pi-to-mount-the-removable-hard-disk.html?variant=zh-cn

定时运行任务 http://ju.outofmemory.cn/entry/68682

amule启动方案 http://xdavidx.blog.163.com/blog/static/19966109520091861025599/

插入U盘时运行脚本的方法 http://bbs.chinaunix.net/thread-1920594-1-1.html

udev介绍 http://www.cnitblog.com/luofuchong/archive/2007/12/18/37831.html

nohup命令后台运行脚本 http://blog.csdn.net/chs_jdmdr/article/details/7553074

posted @ 2017-03-04 09:32  阿拉果  阅读(1027)  评论(0编辑  收藏  举报