diff --git a/aria2.sh b/aria2.sh index c030ccb..2fb7689 100644 --- a/aria2.sh +++ b/aria2.sh @@ -3,13 +3,13 @@ # https://github.com/P3TERX/aria2.sh # Description: Aria2 One-click installation management script # System Required: CentOS/Debian/Ubuntu -# Version: 2.4.2 +# Version: 2.4.3 # Author: Toyo # Maintainer: P3TERX # Blog: https://p3terx.com #============================================================= -sh_ver="2.4.2" +sh_ver="2.4.3" PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH aria2_conf_path="/root/.aria2" @@ -220,11 +220,11 @@ Install_aria2() { Service_aria2 Read_config aria2_RPC_port=${aria2_port} - echo -e "${Info} 开始设置 iptables防火墙..." + echo -e "${Info} 开始设置 iptables 防火墙..." Set_iptables - echo -e "${Info} 开始添加 iptables防火墙规则..." + echo -e "${Info} 开始添加 iptables 防火墙规则..." Add_iptables - echo -e "${Info} 开始保存 iptables防火墙规则..." + echo -e "${Info} 开始保存 iptables 防火墙规则..." Save_iptables echo -e "${Info} 开始创建 下载目录..." mkdir -p ${download_path} @@ -254,14 +254,13 @@ Set_aria2() { echo -e " ${Green_font_prefix}1.${Font_color_suffix} 修改 Aria2 RPC 密钥 ${Green_font_prefix}2.${Font_color_suffix} 修改 Aria2 RPC 端口 - ${Green_font_prefix}3.${Font_color_suffix} 修改 Aria2 文件下载位置 - ${Green_font_prefix}4.${Font_color_suffix} 修改 Aria2 密钥 + 端口 + 文件下载位置 + ${Green_font_prefix}3.${Font_color_suffix} 修改 Aria2 下载目录 + ${Green_font_prefix}4.${Font_color_suffix} 修改 Aria2 密钥 + 端口 + 下载目录 ${Green_font_prefix}5.${Font_color_suffix} 手动 打开配置文件修改 ———————————— ${Green_font_prefix}0.${Font_color_suffix} 重置/更新 Aria2 完美配置 " - read -e -p "(默认: 取消):" aria2_modify - [[ -z "${aria2_modify}" ]] && echo "已取消..." && exit 1 + read -e -p " 请输入数字 [0-5]:" aria2_modify if [[ ${aria2_modify} == "1" ]]; then Set_aria2_RPC_passwd elif [[ ${aria2_modify} == "2" ]]; then @@ -275,7 +274,9 @@ Set_aria2() { elif [[ ${aria2_modify} == "0" ]]; then Reset_aria2_conf else - echo -e "${Error} 请输入正确的数字(0-5)" && exit 1 + echo + echo -e " ${Error} 请输入正确的数字" + exit 1 fi } Set_aria2_RPC_passwd() { @@ -288,34 +289,38 @@ Set_aria2_RPC_passwd() { else aria2_passwd_1=${aria2_passwd} fi - echo -e "请输入要设置的 Aria2 RPC 密钥(旧密钥为:${Green_font_prefix}${aria2_passwd_1}${Font_color_suffix})" - read -e -p "(默认密钥: 随机生成 密钥请不要包含等号 = 和井号 #):" aria2_RPC_passwd + echo -e " + ${Tip} Aria2 RPC 密钥不要包含等号(=)和井号(#),留空为随机生成。 + + 当前 RPC 密钥为: ${Green_font_prefix}${aria2_passwd_1}${Font_color_suffix} +" + read -e -p " 请输入新的 RPC 密钥: " aria2_RPC_passwd echo [[ -z "${aria2_RPC_passwd}" ]] && aria2_RPC_passwd=$(date +%s%N | md5sum | head -c 20) if [[ "${aria2_passwd}" != "${aria2_RPC_passwd}" ]]; then if [[ -z "${aria2_passwd}" ]]; then echo -e "\nrpc-secret=${aria2_RPC_passwd}" >>${aria2_conf} if [[ $? -eq 0 ]]; then - echo -e "${Info} 密钥修改成功!新密钥为:${Green_font_prefix}${aria2_RPC_passwd}${Font_color_suffix}(因为找不到旧配置参数,所以自动加入配置文件底部)" + echo -e "${Info} RPC 密钥修改成功!新密钥为:${Green_font_prefix}${aria2_RPC_passwd}${Font_color_suffix}(配置文件中缺少相关选项参数,已自动加入配置文件底部)" if [[ ${read_123} != "1" ]]; then Restart_aria2 fi else - echo -e "${Error} 密钥修改失败!旧密钥为:${Green_font_prefix}${aria2_passwd}${Font_color_suffix}" + echo -e "${Error} RPC 密钥修改失败!旧密钥为:${Green_font_prefix}${aria2_passwd}${Font_color_suffix}" fi else sed -i 's/^rpc-secret='${aria2_passwd}'/rpc-secret='${aria2_RPC_passwd}'/g' ${aria2_conf} if [[ $? -eq 0 ]]; then - echo -e "${Info} 密钥修改成功!新密钥为:${Green_font_prefix}${aria2_RPC_passwd}${Font_color_suffix}" + echo -e "${Info} RPC 密钥修改成功!新密钥为:${Green_font_prefix}${aria2_RPC_passwd}${Font_color_suffix}" if [[ ${read_123} != "1" ]]; then Restart_aria2 fi else - echo -e "${Error} 密钥修改失败!旧密钥为:${Green_font_prefix}${aria2_passwd}${Font_color_suffix}" + echo -e "${Error} RPC 密钥修改失败!旧密钥为:${Green_font_prefix}${aria2_passwd}${Font_color_suffix}" fi fi else - echo -e "${Error} 新密钥与旧密钥一致,取消..." + echo -e "${Error} 与旧配置一致,无需修改..." fi } Set_aria2_RPC_port() { @@ -328,15 +333,17 @@ Set_aria2_RPC_port() { else aria2_port_1=${aria2_port} fi - echo -e "请输入要设置的 Aria2 RPC 端口(旧端口为:${Green_font_prefix}${aria2_port_1}${Font_color_suffix})" - read -e -p "(默认端口: 6800):" aria2_RPC_port + echo -e " + 当前 RPC 端口为: ${Green_font_prefix}${aria2_port_1}${Font_color_suffix} +" + read -e -p " 请输入新的 RPC 端口(默认: 6800): " aria2_RPC_port echo [[ -z "${aria2_RPC_port}" ]] && aria2_RPC_port="6800" if [[ "${aria2_port}" != "${aria2_RPC_port}" ]]; then if [[ -z "${aria2_port}" ]]; then echo -e "\nrpc-listen-port=${aria2_RPC_port}" >>${aria2_conf} if [[ $? -eq 0 ]]; then - echo -e "${Info} 端口修改成功!新端口为:${Green_font_prefix}${aria2_RPC_port}${Font_color_suffix}(因为找不到旧配置参数,所以自动加入配置文件底部)" + echo -e "${Info} RPC 端口修改成功!新端口为:${Green_font_prefix}${aria2_RPC_port}${Font_color_suffix}(配置文件中缺少相关选项参数,已自动加入配置文件底部)" Del_iptables Add_iptables Save_iptables @@ -344,12 +351,12 @@ Set_aria2_RPC_port() { Restart_aria2 fi else - echo -e "${Error} 端口修改失败!旧端口为:${Green_font_prefix}${aria2_port}${Font_color_suffix}" + echo -e "${Error} RPC 端口修改失败!旧端口为:${Green_font_prefix}${aria2_port}${Font_color_suffix}" fi else sed -i 's/^rpc-listen-port='${aria2_port}'/rpc-listen-port='${aria2_RPC_port}'/g' ${aria2_conf} if [[ $? -eq 0 ]]; then - echo -e "${Info} 端口修改成功!新端口为:${Green_font_prefix}${aria2_RPC_port}${Font_color_suffix}" + echo -e "${Info} RPC 端口修改成功!新端口为:${Green_font_prefix}${aria2_RPC_port}${Font_color_suffix}" Del_iptables Add_iptables Save_iptables @@ -357,11 +364,11 @@ Set_aria2_RPC_port() { Restart_aria2 fi else - echo -e "${Error} 端口修改失败!旧端口为:${Green_font_prefix}${aria2_port}${Font_color_suffix}" + echo -e "${Error} RPC 端口修改失败!旧端口为:${Green_font_prefix}${aria2_port}${Font_color_suffix}" fi fi else - echo -e "${Error} 新端口与旧端口一致,取消..." + echo -e "${Error} 与旧配置一致,无需修改..." fi } Set_aria2_RPC_dir() { @@ -374,43 +381,41 @@ Set_aria2_RPC_dir() { else aria2_dir_1=${aria2_dir} fi - echo -e "请输入要设置的 Aria2 文件下载位置(旧位置为:${Green_font_prefix}${aria2_dir_1}${Font_color_suffix})" - read -e -p "(默认位置: ${download_path}):" aria2_RPC_dir + echo -e " + 当前下载目录为: ${Green_font_prefix}${aria2_dir_1}${Font_color_suffix} +" + read -e -p " 请输入新的下载目录(默认: ${download_path}): " aria2_RPC_dir [[ -z "${aria2_RPC_dir}" ]] && aria2_RPC_dir="${download_path}" mkdir -p ${aria2_RPC_dir} echo - if [[ -d "${aria2_RPC_dir}" ]]; then - if [[ "${aria2_dir}" != "${aria2_RPC_dir}" ]]; then - if [[ -z "${aria2_dir}" ]]; then - echo -e "\ndir=${aria2_RPC_dir}" >>${aria2_conf} - if [[ $? -eq 0 ]]; then - echo -e "${Info} 位置修改成功!新位置为:${Green_font_prefix}${aria2_RPC_dir}${Font_color_suffix}(因为找不到旧配置参数,所以自动加入配置文件底部)" - if [[ ${read_123} != "1" ]]; then - Restart_aria2 - fi - else - echo -e "${Error} 位置修改失败!旧位置为:${Green_font_prefix}${aria2_dir}${Font_color_suffix}" + if [[ "${aria2_dir}" != "${aria2_RPC_dir}" ]]; then + if [[ -z "${aria2_dir}" ]]; then + echo -e "\ndir=${aria2_RPC_dir}" >>${aria2_conf} + if [[ $? -eq 0 ]]; then + echo -e "${Info} 下载目录修改成功!新位置为:${Green_font_prefix}${aria2_RPC_dir}${Font_color_suffix}(配置文件中缺少相关选项参数,已自动加入配置文件底部)" + if [[ ${read_123} != "1" ]]; then + Restart_aria2 fi else - aria2_dir_2=$(echo "${aria2_dir}" | sed 's/\//\\\//g') - aria2_RPC_dir_2=$(echo "${aria2_RPC_dir}" | sed 's/\//\\\//g') - sed -i 's/^dir='${aria2_dir_2}'/dir='${aria2_RPC_dir_2}'/g' ${aria2_conf} - sed -i "/^downloadpath=/c\downloadpath='${aria2_RPC_dir_2}'" ${aria2_conf_path}/*.sh - sed -i "/^DOWNLOAD_PATH=/c\DOWNLOAD_PATH='${aria2_RPC_dir_2}'" ${aria2_conf_path}/*.sh - if [[ $? -eq 0 ]]; then - echo -e "${Info} 位置修改成功!新位置为:${Green_font_prefix}${aria2_RPC_dir}${Font_color_suffix}" - if [[ ${read_123} != "1" ]]; then - Restart_aria2 - fi - else - echo -e "${Error} 位置修改失败!旧位置为:${Green_font_prefix}${aria2_dir}${Font_color_suffix}" - fi + echo -e "${Error} 下载目录修改失败!旧位置为:${Green_font_prefix}${aria2_dir}${Font_color_suffix}" fi else - echo -e "${Error} 新位置与旧位置一致,取消..." + aria2_dir_2=$(echo "${aria2_dir}" | sed 's/\//\\\//g') + aria2_RPC_dir_2=$(echo "${aria2_RPC_dir}" | sed 's/\//\\\//g') + sed -i 's/^dir='${aria2_dir_2}'/dir='${aria2_RPC_dir_2}'/g' ${aria2_conf} + sed -i "/^downloadpath=/c\downloadpath='${aria2_RPC_dir_2}'" ${aria2_conf_path}/*.sh + sed -i "/^DOWNLOAD_PATH=/c\DOWNLOAD_PATH='${aria2_RPC_dir_2}'" ${aria2_conf_path}/*.sh + if [[ $? -eq 0 ]]; then + echo -e "${Info} 下载目录修改成功!新位置为:${Green_font_prefix}${aria2_RPC_dir}${Font_color_suffix}" + if [[ ${read_123} != "1" ]]; then + Restart_aria2 + fi + else + echo -e "${Error} 下载目录修改失败!旧位置为:${Green_font_prefix}${aria2_dir}${Font_color_suffix}" + fi fi else - echo -e "${Error} 新位置文件夹不存在,请检查!新位置为:${Green_font_prefix}${aria2_RPC_dir}${Font_color_suffix}" + echo -e "${Error} 与旧配置一致,无需修改..." fi } Set_aria2_RPC_passwd_port_dir() { @@ -520,7 +525,7 @@ View_Log() { } Clean_Log() { [[ ! -e ${aria2_log} ]] && echo -e "${Error} Aria2 日志文件不存在 !" && exit 1 - >${aria2_log} + echo >${aria2_log} echo -e "${Info} Aria2 日志已清空 !" } crontab_update_status() { @@ -531,23 +536,23 @@ Update_bt_tracker_cron() { check_crontab_installed_status if [[ -z $(crontab_update_status) ]]; then echo - echo -e "确定要开启 ${Green_font_prefix}自动更新 BT-Tracker${Font_color_suffix} 功能吗?(可能会增强 BT 下载速率)[Y/n] \c" + echo -e " 是否开启 ${Green_font_prefix}自动更新 BT-Tracker${Font_color_suffix} 功能?(可能会增强 BT 下载速率)[Y/n] \c" read -e crontab_update_status_ny [[ -z "${crontab_update_status_ny}" ]] && crontab_update_status_ny="y" if [[ ${crontab_update_status_ny} == [Yy] ]]; then crontab_update_start else - echo && echo " 已取消..." && echo + echo && echo " 已取消..." fi else echo - echo -e "确定要关闭 ${Red_font_prefix}自动更新 BT-Tracker${Font_color_suffix} 功能吗?[y/N] \c" + echo -e " 是否关闭 ${Red_font_prefix}自动更新 BT-Tracker${Font_color_suffix} 功能?[y/N] \c" read -e crontab_update_status_ny [[ -z "${crontab_update_status_ny}" ]] && crontab_update_status_ny="n" if [[ ${crontab_update_status_ny} == [Yy] ]]; then crontab_update_stop else - echo && echo " 已取消..." && echo + echo && echo " 已取消..." fi fi } @@ -742,6 +747,7 @@ case "$num" in Update_bt_tracker_cron ;; *) - echo "请输入正确数字 [0-12]" + echo + echo -e " ${Error} 请输入正确的数字" ;; esac