MacOS 平台开机自动运行 aria2c 脚本

2018年6月25日 9.16k 次阅读 0 条评论 0 人点赞

我个人用的是 MacBook Pro,而且还是一个程序猿,所以平常喜欢折腾这台电脑,最近有个很蛋疼的事情就是迅雷下载很呵呵,就算开了会员下载也那样,同时很多你懂的资源也全部都禁止了,别想错,就是一些有版权的电影是无法下载了。那么作为一个新时代的在习近平同志正确领导下的为了新中国特色社会主义奉献终生的无产阶级程序猿又该如何办呢?

首先你得有个 Chrome 浏览器,为什么呢?国产的不是很好用吗?我想说兄弟,你错过了很多乐趣!!!那么打开 Chrome 的应用商店,找到一款叫做 YAAW for chrome 的扩展,不信你点点链接试试?你肯定打不开,有两个办法解决打不开的问题:第一个,翻越 GFW,怎么翻墙?对不起,我不会告诉你我知道的。第二个,百度搜这个扩展的名字吧,国人写的,在各大论坛都有保存,随便都能下载得到。装完之后,你点击浏览器右边的那个像云一样的那个图标,你就会看到如下图的界面。

会报错对不对?当然会报错,浏览器的这个扩展仅仅只是一个前端,真正实现下载的可不是这货。而是一个叫做 aria2 的命令行工具,这个玩意儿真是很强大,除了那些所谓的 thunder 等专有协议,一般的 http/ftp/magnet 等都是可以搞定的。首先我们得安装这个工具,这里我得提一句,不管你是什么版本的 MacBook,brew 这个包管理工具真的值得拥有。如果你没有,下载一个吧:

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

安装 brew 完毕之后,用它来下载 aria2c 这个下载工具。

$ brew install aria2c

现在,我来教你如何在 macOS 上开机启动一个脚本,没错,现在才是符合这个标题的正文,其实我也不知道用什么名字作为标题,不然就写大而全了。首先我们准备一个 aria2c 的一个配置文件,比如说 aria2.conf 文件,将以下信息保存到这个文件中。

$ cat >> /usr/local/Cellar/aria2/1.33.1/etc/aria2.conf
#用户名
#rpc-user=user
#密码
#rpc-passwd=passwd
#设置加密的密钥
#rpc-secret=secret
#允许rpc
enable-rpc=true
#允许所有来源, web界面跨域权限需要
rpc-allow-origin-all=true
#是否启用https加密,启用之后要设置公钥,私钥的文件路径
#rpc-secure=true
#启用加密设置公钥
#rpc-certificate=/home/name/.config/aria2/example.crt
#启用加密设置私钥
#rpc-private-key=/home/name/.config/aria2/example.key
#允许外部访问,false的话只监听本地端口
rpc-listen-all=true
#RPC端口, 仅当默认端口被占用时修改
#rpc-listen-port=6800
#最大同时下载数(任务数), 路由建议值: 3
max-concurrent-downloads=5
#断点续传
continue=true
#同服务器连接数
max-connection-per-server=10
#最小文件分片大小, 下载线程数上限取决于能分出多少片, 对于小文件重要
min-split-size=10M
#单文件最大线程数, 路由建议值: 5
split=10
#下载速度限制
max-overall-download-limit=0
#单文件速度限制
max-download-limit=0
#上传速度限制
max-overall-upload-limit=0
#单文件速度限制
max-upload-limit=0
#断开速度过慢的连接
#lowest-speed-limit=0
#验证用,需要1.16.1之后的release版本
#referer=*
#文件保存路径, 默认为当前启动位置
dir=/Users/xxxxxx/Downloads
#文件缓存, 使用内置的文件缓存, 如果你不相信Linux内核文件缓存和磁盘内置缓存时使用, 需要1.16及以上版本
#disk-cache=0
#另一种Linux文件缓存方式, 使用前确保您使用的内核支持此选项, 需要1.15及以上版本(?)
#enable-mmap=true
#文件预分配, 能有效降低文件碎片, 提高磁盘性能. 缺点是预分配时间较长
#所需时间 none < falloc ? trunc << prealloc, falloc和trunc需要文件系统和内核支持
file-allocation=prealloc
#不进行证书校验
check-certificate=false

里面有个 xxxxxx,这就是你的主目录的位置,你自己看着修改吧。

既然已经准备好了配置文件,现在我们来让这个 aria2c 的程序开机启动吧,在 Linux 上开机启动很容易,随意写个脚本,然后放到 rc.local 中启动即可,但是 macOS 比你想象的更难驯服。但不管怎样,办法总比困难多。我们无法通过 /etc/rc.local 来让脚本开机启动,那么就想办法满足 macOS 的规矩吧。

$ cat >> ~/Library/LaunchAgents/com.xxxxx.aria2.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.jackieliu.aria2c</string>
    <key>Program</key>
    <string>/usr/local/bin/aria2c</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/local/bin/aria2c</string>
        <string>--conf-path</string>
        <string>/usr/local/Cellar/aria2/1.33.1/etc/aria2.conf</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>
    <true/>
</dict>
</plist>

按照上面的命令生成一个 plist 文件,各个字段很简单,你照着写就好,也没什么需要解释的,一眼能看穿的东西,现在开机 aria2c 会自动启动,并且加载你准备好的配置文件了,重新启动电脑之后点击浏览器,你看看是不是错误不存在了呢?

当你遇到你一个可以下载的资源的时候,点击右键如下图:

菜单里面是不是有一个AIRA2 RPC,不用怀疑,就是他。是不是很方便,百度云盘也是可以通过他来下载的咯,不过还需要安装另外的插件,如果又需要,我下次再补充。