Rat's

PyOne一键安装脚本 for CentOS 7/Debian 8+/Ubuntu 16+
说明:PyOne最近凭着离线下载(完成并自动上传至Onedrive)和绑定多网盘的功能被越来越多的人使用,如果你还...
扫描右侧二维码阅读全文
30
2018/11

PyOne一键安装脚本 for CentOS 7/Debian 8+/Ubuntu 16+

说明:PyOne最近凭着离线下载(完成并自动上传至Onedrive)和绑定多网盘的功能被越来越多的人使用,如果你还不知道PyOne是何物的可以查看该教程→点击查看。作者更新也勤奋,所以得支持一下,之前博主发过基于宝塔的手动安装教程和Docker安装教程,查看:手动安装Docker安装。不过由于宝塔的Mongodb很容易出错,有些小白也不会解决,而Docker也不支持OpenVZ,所以博主写了个一键脚本,这里分享下。

脚本说明

#脚本会一键安装PyOne所需要的Mongodb、Redis、Aria2等环境,域名使用Caddy反代,自动配置SSL证书。

#本脚本使用的Aria2为某大佬编译的多线程版本,其特点可以将下载速度最大化优化,博主已配置完毕,如服务器性能不足,可将线程自行调整。
方法:修改配置文件/root/.aria2/aria2.conf,线程参数split=64,请自行调整。

#Aria2已添加了BT-Trackers服务器,并定时自动更新服务器地址。

#脚本使用systemctl替换了程序所使用的supervisord进程守护,所以程序的重启等命令会和官方文档上的不一样,详细的使用命令可以看文章后面。

#选择域名访问的,需要提前让解析生效,不然脚本会自动断开,因为后面需要签发SSL证书,ip必须为服务器ip。

更新

【2020.05.21】
修复安装问题,重新支持CentOS 7系统,安装有问题可以留言。
【2020.02.14】
由于程序模块改动,手动改了下,不过只限于Debian 9、10,Ubuntu 18.04、18.10、19.04系统安装使用
【2019.9.28】
新增Debian 10,升级MongoDB版本到4.0,有问题可以留言。
【2019.6.27】
修复部分CentOS 7安装出错的问题,并新增Ubuntu系统,已在Vultr的Ubuntu 16.04、18.04、18.10、19.04上测试通过
【2019.2.23】
鉴于有人需要3.0版本,现已增加安装3.0版本选项,多个选择,并使用的3.0最后一个版本。
【2019.2.16】
修改脚本部分安装步骤,使其支持PyOne4.0
【2019.1.31】
修复部分系统安装启动pyone失败的问题
【2018.11.30】
修复PyOne刷新不出文件夹/文件的问题。

安装

系统要求:CentOS 7Debian 8+Ubuntu 16+,建议Debian 9,且为刚安装好的系统,尽量不要用精简版系统。

使用命令:

wget -N --no-check-certificate https://www.moerats.com/usr/shell/PyOne/PyOne.sh
bash PyOne.sh

根据需求选择是否使用域名访问,然后输入域名和Aria2密匙即可。
请输入图片描述

安装完成后,如果打不开网站的,可以使用命令一起查看下各程序状态。

#使用域名访问的
systemctl status aria2 mongod redis-server pyone caddy
#使用IP访问的
systemctl status aria2 mongod redis-server pyone

如果有显示Active:inactive的,可以留言说下具体程序和系统。反之如果都为running,可以检查下防火墙端口,比如阿里云,谷歌云等,还需要在服务器管理面板上开放34567端口才行。

相关命令

#以下程序均已配置开机自启,所以就不说开机自启命令了。

#Redis使用命令
启动:systemctl start redis-server
重启:systemctl restart redis-server
停止:systemctl stop redis-server
状态:systemctl status redis-server

#Mongodb使用命令
启动:systemctl start mongod
重启:systemctl restart mongod
停止:systemctl stop mongod
状态:systemctl status mongod

#Aria2使用命令
启动:systemctl start aria2
重启:systemctl restart aria2
停止:systemctl stop aria2
状态:systemctl status aria2

#Caddy使用命令(使用域名的才会安装Caddy)
启动:systemctl start caddy
重启:systemctl restart caddy
停止:systemctl stop caddy
状态:systemctl status caddy

#PyOne使用命令
启动:systemctl start pyone
重启:systemctl restart pyone
停止:systemctl stop pyone
状态:systemctl status pyone

相关目录

PyOne程序目录:/root/PyOne
Caddy配置文件目录:/root/.caddy
Aria2配置文件目录:/root/.aria2

相关说明

#关于操作说明
由于更换了原程序进程守护,所以网站右上角的重启网站按钮已失效,请在SSH客户端使用systemctl restart pyone命令重启程序。

#关于离线下载
Aria2配置文件的下载路径为/root/Download,但该程序自带的离线下载不调用配置文件,所以使用本程序离线下载的目录为/root/PyOne/upload。

由于本程序离线下载不调用配置文件,所以Aria2多线程可能会发挥不出来,BT服务器也无效,不过会玩的,可以通过修改根目录的aria2.py文件某些参数达到目的,或者直接研究该教程:https://www.moerats.com/archives/697/,使用Aria2面板来离线下载更好,毕竟后者用的脚本比自带离线下载更稳定。

#刷新缓存问题
如果你在后台执行缓存刷新操作,可能短时间不会生效,建议直接在SSH客户端使用python /root/PyOne/function.py UpdateFile命令刷新

最后更多的使用方法(包括程序更新)可以查看该教程→点击查看,除了PyOne启动命令不一样以外,其它都一样,包括上传等命令。

Vultr新用户注册送100美元/16个机房按小时计费,支持支付宝,【点击查看】。
最后修改:2020 年 05 月 21 日 10 : 36 PM

发表评论

416 条评论

  1. withrose

    启动pyone失败 如下提示 麻烦作者帮找找原因谢谢

    [root@server ~]# cd /root/PyOne
    [root@server PyOne]# systemctl status pyone.service
    ● pyone.service - pyone
    Loaded: error (Reason: Invalid argument)
    Active: inactive (dead)

    May 22 00:45:35 server systemd[1]: [/etc/systemd/system/pyone.service:10] Executable...appMay 22 00:45:35 server systemd[1]: pyone.service lacks both ExecStart= and ExecStop=...ng.May 22 00:45:44 server systemd[1]: [/etc/systemd/system/pyone.service:10] Executable...appMay 22 00:45:44 server systemd[1]: pyone.service lacks both ExecStart= and ExecStop=...ng.May 22 00:45:49 server systemd[1]: [/etc/systemd/system/pyone.service:10] Executable...appMay 22 00:45:49 server systemd[1]: pyone.service lacks both ExecStart= and ExecStop=...ng.May 22 01:00:04 server systemd[1]: [/etc/systemd/system/pyone.service:10] Executable...appMay 22 01:00:04 server systemd[1]: pyone.service lacks both ExecStart= and ExecStop=...ng.May 22 01:01:39 server systemd[1]: [/etc/systemd/system/pyone.service:10] Executable...appMay 22 01:01:39 server systemd[1]: pyone.service lacks both ExecStart= and ExecStop=...ng.Hint: Some lines were ellipsized, use -l to show in full.

    1. Rat's
      @withrose

      重装系统重新安装下,我把脚本改了,初步解决了安装问题,重新支持了centos 7,测试了下没啥问题,有问题可以反馈

  2. 铭传

    大佬,Ubuntu19.04,一键安装出现下列报错

    pyone.service - pyone
    Loaded: bad-setting (Reason: Unit pyone.service has a bad unit file setting.)
    Active: inactive (dead)

    May 09 14:48:24 vm176614 systemd[1]: /etc/systemd/system/pyone.service:7: PIDFile= references a path below legacy directory /var/r
    May 09 14:48:24 vm176614 systemd[1]: /etc/systemd/system/pyone.service:9: Executable "w4" not found in path "/usr/local/sbin:/usr/
    May 09 14:48:25 vm176614 systemd[1]: pyone.service: Service has no ExecStart=, ExecStop=, or SuccessAction=. Refusing.
    May 09 14:48:29 vm176614 systemd[1]: /etc/systemd/system/pyone.service:7: PIDFile= references a path below legacy directory /var/r
    May 09 14:48:29 vm176614 systemd[1]: /etc/systemd/system/pyone.service:9: Executable "w4" not found in path "/usr/local/sbin:/usr/
    May 09 14:48:29 vm176614 systemd[1]: pyone.service: Service has no ExecStart=, ExecStop=, or SuccessAction=. Refusing.

    1. Rat's
      @铭传

      systemctl cat pyone你运行这个命令,然后贴出来看看,感觉有东西没打印进去。

      1. 铭传
        @Rat's /etc/systemd/system/pyone.service

        [Unit]
        Description=pyone
        After=network.target
        Wants=network.target

        [Service]
        Type=simple
        PIDFile=/var/run/pyone.pid
        WorkingDirectory=/root/PyOne
        ExecStart= -w4 -b 0.0.0.0:34567 run:app
        RestartPreventExitStatus=23
        Restart=always
        User=root

        [Install]
        WantedBy=multi-user.target

        1. Rat's
          @铭传

          估计命令没写进去,你先看下gunicorn路径,命令:
          command -v gunicorn
          如果输出/usr/bin/gunicorn,再修改/etc/systemd/system/pyone.service文件,更改ExecStart参数,改成:
          /usr/bin/gunicorn -w4 -b 0.0.0.0:34567 run:app
          最后重新加载配置文件:
          systemctl daemon-reload
          启动看看:
          systemctl start pyone

  3. yfavdh

    输入bash PyOne.sh命令时出现下列错误,最后这个http://ip:34567地址也打不开
    ERROR: Command errored out with exit status 1:

    command: /usr/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-5ju9Cs/shelljob/setup.py'"'"'; __file__='"'"'/tmp/pip-install-5ju9Cs/shelljob/setup.py'"'"';

    f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'rn'"'"', '"'"'n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-instal
    l-5ju9Cs/shelljob/pip-egg-info

    cwd: /tmp/pip-install-5ju9Cs/shelljob/ Complete output (5 lines): Generating Description failed, press enter to process anyway, or kill to cancelTraceback (most recent call last): File "<string>", line 1, in <module> File "/tmp/pip-install-5ju9Cs/shelljob/setup.py", line 15, in <module> input( 'Generating Description failed, press enter to process anyway, or kill to cancel' ) EOFError: EOF when reading a line ----------------------------------------

    ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

    1. Rat's
      @yfavdh

      什么系统

      1. 墨岚
        @Rat's

        这个问题其实不是在用本文这个一键脚本的时候出现的,是在用https://abbeyokgo.github.io/pyone-an-zhuang/xia-zai-yuan-ma-yi-jian-an-zhuang/这个一键脚本的时候出现的。

        问题已经解决了,可能是centos7不支持shelljob的0.5.8版本导致的,需要单独安装0.5.7版本,用命令pip install shelljob==0.5.7先指定安装0.5.7版本,再跑一轮一键安装脚本就OK了。

        1. Zhy
          @墨岚

          我所有系统都安装不了shelljob,pip install shelljob==0.5.7 这个能解决

          1. Rat's
            @Zhy

            我花时间试了下,有几个版本需要降级才能安装运行了。

        2. yaoyao
          @墨岚

          非常感谢,救了我一命

        3. Rat's
          @墨岚

          好的,有空我再试试centos 7

      2. 墨岚
        @Rat's

        Centos7用不了?

      3. 墨岚
        @Rat's

        一模一样的错误,Centos7

      4. yfavdh
        @Rat's

        是Debian GNU/Linux 9 (stretch)

        1. Rat's
          @yfavdh

          好的,有时间我再重新测试下安装

  4. m

    centos7安装显示不支持
    目前仅支持Debian 9、10,Ubuntu 18.04、18.10、19.04系统,安装退出

    1. Rat's
      @m

      是的,有依赖变动,作者也不修复了,我随便改了下,勉强可以安装几个系统了,就c7整不来了,直接限制了。

  5. syu

    打开pyone后台管理的离线下载报错 Aria2未验证!请检查Aria2信息!请问如解决?

    1. 铭传
      @syu

      你需要在后台管理里的系统设置最下面的那个aria2设置里面填写以下密钥

    2. syu
      @syu

      HTTPSConnectionPool(host='localhost', port=6800): Max retries exceeded with url: /jsonrpc (Caused by SSLError(SSLError("bad handshake: SysCallError(-1, 'Unexpected EOF')",),))

      1. Rat's
        @syu

        这个报错还没见过,密码填了么?

  6. Magic
    该评论仅登录用户及评论双方可见
    1. Rat's
      @Magic

      访问域名直接提示未备案?这个还没遇到过

  7. 筱兮

    系统是centos7.7,我安装了宝塔界面,错误如下
    pyone.service - pyone
    Loaded: error (Reason: Invalid argument)
    Active: inactive (dead)

    3月 04 23:42:44 iZjbzhbnrerajoZ systemd[1]: [/etc/systemd/system/pyone.service:10] Executable path is not absolute, ignoring: -keventlet -b 0.0.0.0:34567 run:app
    3月 04 23:42:44 iZjbzhbnrerajoZ systemd[1]: pyone.service lacks both ExecStart= and ExecStop= setting. Refusing.
    3月 04 23:42:44 iZjbzhbnrerajoZ systemd[1]: [/etc/systemd/system/pyone.service:10] Executable path is not absolute, ignoring: -keventlet -b 0.0.0.0:34567 run:app
    3月 04 23:42:44 iZjbzhbnrerajoZ systemd[1]: pyone.service lacks both ExecStart= and ExecStop= setting. Refusing.
    3月 04 23:42:44 iZjbzhbnrerajoZ systemd[1]: [/etc/systemd/system/pyone.service:10] Executable path is not absolute, ignoring: -keventlet -b 0.0.0.0:34567 run:app
    3月 04 23:42:44 iZjbzhbnrerajoZ systemd[1]: pyone.service lacks both ExecStart= and ExecStop= setting. Refusing.

    1. Rat's
      @筱兮

      centos 目前用不了。换debian或者ubuntu吧

  8. 鱼干

    啥时候更新CentOS 7的PyOne

  9. 求助:搭建完成后离线下载创建任务下载后上传显示为待机

  10. soulnol

    出现问题:搭建完后出现502 Bad Request
    环境 :谷歌云,使用Ubuntu 16.04系统,已开放所有端口,使用root权限,纯净安装。选择的是域名访问和4.0的pyone。安装完,那3个服务都是active的。
    解决方法:删掉了,重建的Debian 10,运行正常。

    1. Rat's
      @soulnol

      好像ubuntu 18、19可以用