Ubuntu+Aria2+Aria2Ng+OneIndex

如果是centos或者debian系统,就很多一键脚本了

1、安装OneIndex
先添加域名,然后上传程序文件到网站根目录/www/wwwroot/xx.com,将文件解压出来,并设置config/cache/可读写权限,程序下载:OneIndex.zip

也可以使用命令上传到根目录:

#CentOS系统
yum install git -y

#Debian/Ubuntu系统 #修改为自己域名根目录后再运行
apt-get install git -y
cd /home/wwwroot/
git clone https://github.com/iiiiiii1/Oneindex.git
mv oneindex/* ./
chmod -R 777 config/ cache/

最后打开域名进行安装和绑定OneDrive了,后台地址:https://xx.com/?/admin,默认密码:oneindex。如果你想给域名加上https安全访问,可以通过域名设置配置一下SSL证书。

2、安装Aria2
这里用的逗比的脚本,使用命令:

wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubiBackup/doubi/master/aria2.sh && chmod +x aria2.sh && bash aria2.sh
#备用地址
wget -N --no-check-certificate https://www.moerats.com/usr/shell/Aria2/aria2.sh && chmod +x aria2.sh && bash aria2.sh

安装完成后,如果我们想修改密码、下载文件位置、端口的话,可以使用命令bash aria2.sh,再选择修改配置即可,这里建议使用该脚本配置自动更新BT-Tracker服务器,对下载BT有加成。

3、安装AriaNg
这一步和安装OneIndex差不多,先添加一个域名,不想用域名的可以在添加域名那里填上IP或者IP:端口,然后将AriaNg程序上传到对应的根目录,可以使用命令:

#CentOS系统
yum install unzip -y

#这里以添加IP为例
#Debian/Ubuntu系统
apt-get install unzip -y
cd /home/wwwroot/
wget https://www.moerats.com/usr/down/aria-ng-0.2.0.zip && unzip aria-ng-0.2.0.zip

这时候我们就可以使用IP访问AriaNg界面了,或者IP:端口,这取决于你添加域名的时候填的什么了。

添加rc.local开机自启的方法,把aria2加自启

1、添加rc-local.service

#以下为一整条命令,一起复制运行
cat > /etc/systemd/system/rc-local.service <<EOF
[Unit]
Description=/etc/rc.local
ConditionPathExists=/etc/rc.local
 
[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99
 
[Install]
WantedBy=multi-user.target
EOF

2、新建rc-local文件

#以下为一整条命令,一起复制运行
cat > /etc/rc.local <<EOF
#!/bin/sh -e
# @file /etc/rc.local

exit 0
EOF

3、添加权限并设置开机自启

chmod +x /etc/rc.local
systemctl enable rc-local
systemctl start rc-local.service

检查状态:

systemctl status rc-local.service

返回Active:active信息,则成功。

添加自动启动: 记住添加在exit 0之前

vi /etc/rc.local
aria2c –conf-path=/home/michael/.aria2/aria2.conf -D

OneDrive网盘上传工具

Github地址:https://github.com/MoeClub/OneList/tree/master/OneDriveUploader

1、授权认证
点击右侧URL登录并授权,授权地址→【国际版、个人版(家庭版)】、【中国版(世纪互联)】。

授权后会获取一个localhost开头打不开的链接,这里复制好整个链接地址,包括localhost

2、安装OneDriveUploader

#64位系统下载
wget https://raw.githubusercontent.com/MoeClub/OneList/master/OneDriveUploader/amd64/linux/OneDriveUploader -P /usr/local/bin/
#32位系统下载
wget https://raw.githubusercontent.com/MoeClub/OneList/master/OneDriveUploader/i386/linux/OneDriveUploader -P /usr/local/bin/
#arm架构下载
wget https://raw.githubusercontent.com/MoeClub/OneList/master/OneDriveUploader/arm/linux/OneDriveUploader -P /usr/local/bin/

#给予权限
chmod +x /usr/local/bin/OneDriveUploader

3、初始化配置

#国际版,将url换成你上面复制的授权地址,包括http://loaclhost。
OneDriveUploader -a "url"

#个人版(家庭版),将url换成你上面复制的授权地址,包括http://loaclhost。
OneDriveUploader -ms -a "url"

#中国版(世纪互联),将url换成你上面复制的授权地址,包括http://loaclhost。
OneDriveUploader -cn -a "url"

如果提示Init config file: /path/to/file/auth.json类似信息,则初始化成功。

Aria2自动上传

先在/root/.aria2文件夹新建一个上传脚本,命名oneindexup.sh

nano /root/.aria2/oneindexup.sh

1、OneIndex上传
先在/root/.aria2文件夹新建一个上传脚本,命名oneindexup.sh

nano /root/.aria2/oneindexup.sh

上传脚本代码如下:

#!/bin/bash

GID="$1";
FileNum="$2";
File="$3";
MaxSize="15728640";
Thread="3";  #默认3线程,自行修改,服务器配置不好的话,不建议太多
Block="20";  #默认分块20m,自行修改
RemoteDIR="";  #上传到Onedrive的路径,默认为根目录,如果要上传到MOERATS目录,""里面请填成MOERATS
LocalDIR="/www/download/";  #Aria2下载目录,记得最后面加上/
Uploader="/usr/local/bin/OneDriveUploader";  #上传的程序完整路径,默认为本文安装的目录
Config="/root/auth.json";  #初始化生成的配置auth.json绝对路径,参考第3步骤生成的路径


if [[ -z $(echo "$FileNum" |grep -o '[0-9]*' |head -n1) ]]; then FileNum='0'; fi
if [[ "$FileNum" -le '0' ]]; then exit 0; fi
if [[ "$#" != '3' ]]; then exit 0; fi

function LoadFile(){
  if [[ ! -e "${Uploader}" ]]; then return; fi
  IFS_BAK=$IFS
  IFS=$'\n'
  tmpFile="$(echo "${File/#$LocalDIR}" |cut -f1 -d'/')"
  FileLoad="${LocalDIR}${tmpFile}"
  if [[ ! -e "${FileLoad}" ]]; then return; fi
  ItemSize=$(du -s "${FileLoad}" |cut -f1 |grep -o '[0-9]*' |head -n1)
  if [[ -z "$ItemSize" ]]; then return; fi
  if [[ "$ItemSize" -ge "$MaxSize" ]]; then
    echo -ne "\033[33m${FileLoad} \033[0mtoo large to spik.\n";
    return;
  fi
  ${Uploader} -c "${Config}" -t "${Thread}" -b "${Block}" -s "${FileLoad}" -r "${RemoteDIR}" -skip
  if [[ $? == '0' ]]; then
    rm -rf "${FileLoad}";
  fi
  IFS=$IFS_BAK
}
LoadFile;

编辑好上传脚本后,可以检测下脚本编码是否正确,比如我脚本路径为/root/upload.sh,使用命令:

bash /root/upload.sh

如果无任何输出,则正确,跳过这一步。继续看下面

反之输出类似$'r': command not found错误,则需要转换下编码格式,具体步骤如下。

先安装dos2unix

#CentOS系统
yum install dos2unix -y

#Debian/Ubuntu系统
apt install dos2unix -y

再转换编码:

#后面为脚本路径
dos2unix /root/upload.sh

没问题的话授权:

chmod +x /root/.aria2/oneindexup.sh

最后在配置文件aria2.conf里加上一行

on-download-complete=/root/.aria2/oneindexup.sh,可以直接使用命令:

echo "on-download-complete=/root/.aria2/oneindexup.sh" >>/root/.aria2/aria2.conf
#重启Aria2
service aria2 restart

添加oneindex 定时刷新
crontab -e

添加以下命令到crontab(注意修改one文件的目录)
*/10 * * * * php /home/wwwroot/default/one.php cache:refresh