Rat's

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

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

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

脚本说明

#由于PyOne只支持Python 2.7,而Python版本为2.7的系统只有CentOS 7、Debian 8、9,所以脚本也只支持这3个系统,并在Vultr上测试通过,且CentOS 7和Debian 9使用最佳。

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

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

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

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

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

更新

【2018.11.30】
修复PyOne刷新不出文件夹/文件的问题。

安装

系统要求:CentOS 7Debian 8+,建议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。

如果你觉得本程序离线下载不好用,可研究该教程:https://www.moerats.com/archives/697/

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

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

需要Office365 E3 MSDN 25(带全局管理员)的可去萌咖杂货铺购买→【点击访问
最后修改:2018 年 12 月 01 日 11 : 38 AM

发表评论

101 条评论

  1. 靳旭东

    在后台刷新缓存的时候出现了问题。
    root@vultr:~# python /root/PyOne/function.py UpdateFile
    update A's / file
    update C's / file
    update B's / file
    getting files from url https://graph.microsoft.com/v1.0/me/drive/root/children?expand=thumbnails
    getting files from url https://graph.microsoft.com/v1.0/me/drive/root/children?expand=thumbnails
    getting files from url https://graph.microsoft.com/v1.0/me/drive/root/children?expand=thumbnails
    error:CompactToken parsing failed with error code: 80049217! waiting 180s
    getting files from url https://graph.microsoft.com/v1.0/me/drive/root:/C%23%E5%85%A5%E9%97%A8%E4%B9%8B%E5%BA%93%E5%AD%98%E7%AE%A1%E7%90%86%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%8F%91%E8%A7%86%E9%A2%91%E6%95%99%E7%A8%8B:/children?expand=thumbnails
    getting files from url https://graph.microsoft.com/v1.0/me/drive/root:/IDM%206.28%2B%E7%BB%BF%E5%8C%96%E8%A1%A5%E4%B8%81:/children?expand=thumbnails
    getting files from url https://graph.microsoft.com/v1.0/me/drive/root:/ss%E6%90%AD%E5%BB%BA:/children?expand=thumbnails
    getting files from url https://graph.microsoft.com/v1.0/me/drive/root:/Windows%20Server%202008%20R2%20%E6%A0%87%E5%87%86%E7%89%88%2B%E4%BC%81%E4%B8%9A%E7%89%88%2B%E6%95%B0%E6%8D%AE%E4%B8%AD%E5%BF%83%E7%89%88%2BWeb%E7%89%88%202018.04:/children?expand=thumbnails
    getting files from url https://graph.microsoft.com/v1.0/me/drive/root:/win%E6%BF%80%E6%B4%BB:/children?expand=thumbnails
    all thread stop!
    getting files from url https://graph.microsoft.com/v1.0/me/drive/root/children?expand=thumbnails
    error:CompactToken parsing failed with error code: 80049217! waiting 180s
    getting files from url https://graph.microsoft.com/v1.0/me/drive/root/children?expand=thumbnails
    error:CompactToken parsing failed with error code: 80049217! waiting 180s
    getting files from url https://graph.microsoft.com/v1.0/me/drive/root/children?expand=thumbnails
    error:CompactToken parsing failed with error code: 80049217! waiting 180s

    1. Rat's
      @靳旭东

      API抽风吧。

      1. 靳旭东
        @Rat's

        我直接把服务器重置然后用一键脚本又装了一遍然后就好了

      2. 靳旭东
        @Rat's

        我直接重置了服务器又用一键脚本搞了一边就好了,找不到问题用这方法包治百病。

        1. Rat's
          @靳旭东

          是的,有时候重装是最好的解决办法。

  2. LOCMJJ

    请教大佬 caddy反代pyone后怎么添加一个 robots.txt文件?
    我不想让搜索引擎收录我的网盘。想用 robots.txt禁止。

    1. Rat's
      @LOCMJJ

      貌似不能用robots.txt禁止,等作者加这个功能,估计快有了,你可以先把不想被收录的文件放进一个带密码的文件夹。

  3. sdshdv

    装好之后显示这个:
    pyone.service - pyone
    Loaded: loaded (/etc/systemd/system/pyone.service; enabled; vendor preset: disabled)
    Active: failed (Result: start-limit) since Fri 2018-12-07 18:53:37 CST; 24s ago
    Process: 30815 ExecStart=/bin/bash -c cd /root/PyOne && -w4 -b 0.0.0.0:34567 run:app (code=exited, status=127)
    Main PID: 30815 (code=exited, status=127)

    Dec 07 18:53:37 host.localdomain systemd[1]: pyone.service: main process exited, code=exited, status=127/n/a
    Dec 07 18:53:37 host.localdomain systemd[1]: Unit pyone.service entered failed state.
    Dec 07 18:53:37 host.localdomain systemd[1]: pyone.service failed.
    Dec 07 18:53:37 host.localdomain systemd[1]: pyone.service holdoff time over, scheduling restart.
    Dec 07 18:53:37 host.localdomain systemd[1]: start request repeated too quickly for pyone.service
    Dec 07 18:53:37 host.localdomain systemd[1]: Failed to start pyone.
    Dec 07 18:53:37 host.localdomain systemd[1]: Unit pyone.service entered failed state.
    Dec 07 18:53:37 host.localdomain systemd[1]: pyone.service failed.
    求解是怎么回事,用的是搬瓦工的centos7,纯净系统

    1. sdshdv
      @sdshdv

      第二次安装显示这个;
      Dec 07 18:51:41 host.localdomain systemd[1]: pyone.service: main process exited, code=exited, status=127/n/a
      Dec 07 18:51:41 host.localdomain systemd[1]: Unit pyone.service entered failed state.
      Dec 07 18:51:41 host.localdomain systemd[1]: pyone.service failed.
      Dec 07 18:51:41 host.localdomain systemd[1]: pyone.service holdoff time over, scheduling restart.
      Dec 07 18:51:41 host.localdomain systemd[1]: start request repeated too quickly for pyone.service
      Dec 07 18:51:41 host.localdomain systemd[1]: Failed to start pyone.
      Dec 07 18:51:41 host.localdomain systemd[1]: Unit pyone.service entered failed state.
      Dec 07 18:51:41 host.localdomain systemd[1]: pyone.service failed.
      Dec 07 18:51:41 host.localdomain systemd[1]: [/etc/systemd/system/pyone.service:9] Executable path is not absolute, ignoring: cd /root/PyOne

      1. Rat's
        @sdshdv

        我用瓦工KVM Centos 7 bbr系统测试的时候好像没问题,你这问题貌似出现在Pyone的systemctl配置文件ExecStart参数命令执行绝对路径上面,也许不是,我得上你服务器看看才行,不过还是建议你直接换Debian 9试试。

  4. 小财神

    Complete!
    --2018-12-06 23:08:16-- http://download.redis.io/releases/redis-5.0.2.tar.gz
    Resolving download.redis.io (download.redis.io)... 109.74.203.151
    Connecting to download.redis.io (download.redis.io)|109.74.203.151|:80... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 1952989 (1.9M) [application/x-gzip]
    Saving to: ‘redis-5.0.2.tar.gz’

    21% [==============================> ] 416,232 --.-K/s eta 15m 35s

    就没反应了
    1. 小财神
      @小财神

      换Debian 9安装成功

      1. Rat's
        @小财神

        卡住大概网络问题,一般没有什么问题是换系统解决不了的。

  5. Jacob

    怎么样才能做到链接标明什么哪个文件夹哪个文件呢?现在都是乱码

    1. Rat's
      @Jacob

      程序问题可以问下作者 。

      1. Jacob
        @Rat's

        不是,我指的应该是伪静态…用作者那个脚本是伪静态

        1. Rat's
          @Jacob

          作者那个应该是Aria2脚本吧,我到时候看看。

  6. 别跟我翻脸

    签发的证书是三个月到期,到期后能自动续签吗?

    1. Rat's
      @别跟我翻脸

      按理说是自动续期的。

  7. Jacob

    6800端口打不开怎么办?

    1. Rat's
      @Jacob

      哪里打不开?直接在浏览器是打不开的,需要配合面板。

  8. Adee

    caddy的目录好像不对 想改端口没找到

    1. Rat's
      @Adee

      看文章说明,使用域名才会安装Cadddy。

  9. Adee

    怎么改端口呢?

    1. Rat's
      @Adee

      改PyOne的运行端口吗?你试着修改这个文件/etc/systemd/system/pyone.service,然后重启PyOne。

  10. 马健平

    这个一键安装的aria2怎么访问

    1. Rat's
      @马健平

      直接在后台设置密匙就可以了,单独使用的话,地址:ip:6800,密匙用你设置的。

  11. Ben

    大佬,有没有可以同步各个网盘的工具啊?

    1. Rat's
      @Ben

      百度一下AirExplorer。

      1. Ben
        @Rat's

        谢谢,等会看看。但是有没有可以用在Linux的呢?

        1. Rat's
          @Ben

          暂没发现能同时同步这么多网盘的工具

  12. 一个人

    大佬 能帮忙看下更新问题吗? 我试着更新下脚本 提示如下错误 谢谢

    [root@PyOne ~]# git pull
    fatal: Not a git repository (or any of the parent directories): .git
    [root@PyOne ~]# sh update.sh
    sh: update.sh: No such file or directory
    [root@PyOne ~]# .git pull
    -bash: .git: command not found
    [root@PyOne ~]# git init pull
    Initialized empty Git repository in /root/pull/.git/
    [root@PyOne ~]# sh update.sh
    sh: update.sh: No such file or directory
    [root@PyOne ~]# git init
    Initialized empty Git repository in /root/.git/
    [root@PyOne ~]# git pull
    fatal: No remote repository specified. Please, specify either a URL or a
    remote name from which new revisions should be fetched.
    [root@PyOne ~]# systemctl restart pyone
    [root@PyOne ~]# git pull
    fatal: No remote repository specified. Please, specify either a URL or a
    remote name from which new revisions should be fetched.
    [root@PyOne ~]#

    1. Rat's
      @一个人

      我昨天这样更新没啥问题,不知道你有没有删掉一些文件,直接重新手动安装PyOne,命令一起复制运行:
      rm -rf /root/PyOne
      git clone https://github.com/abbeyokgo/PyOne.git
      cd /root/PyOne
      pip install -r requirements.txt
      cp config.py.sample config.py
      systemctl restart pyone

  13. 小弟

    大佬 我装了个debian8.9
    PyOne一键脚本 for Debian 8+ 、CentOS 7
    1、使用IP访问
    2、使用域名访问(请提前解析好域名并生效)———————————————————————————————————————
    请输入数字 [1-2]:1
    请输入你的Aria2密钥:fdffddfgf
    Ign http://mirrors.cloud.aliyuncs.com jessie InReleaseIgn http://mirrors.cloud.aliyuncs.com jessie/updates InRelease
    Hit http://mirrors.cloud.aliyuncs.com jessie-updates InRelease
    Hit http://mirrors.cloud.aliyuncs.com jessie Release.gpg
    Ign http://mirrors.cloud.aliyuncs.com jessie/updates Release.gpg
    Ign http://mirrors.aliyun.com jessie InRelease
    Ign http://mirrors.aliyun.com jessie/updates InRelease
    Hit http://mirrors.aliyun.com jessie-updates InRelease
    Get:1 http://mirrors.aliyun.com jessie Release.gpg [2,420 B]
    Ign http://mirrors.aliyun.com jessie/updates Release.gpg
    Hit http://packages.dotdeb.org jessie InRelease
    Get:2 http://packages.dotdeb.org jessie/all Sources [50.3 kB]
    Get:3 http://packages.dotdeb.org jessie/all amd64 Packages [265 kB]
    Ign http://packages.dotdeb.org jessie/all Translation-en_US
    Ign http://packages.dotdeb.org jessie/all Translation-en
    100% [Waiting for headers] [Waiting for headers]

    一直停在这边咋办呢 我是使用root用户操作的

    1. Rat's
      @小弟

      网络问题,等待会,或者Ctrl+c断开,然后重新运行。要是一直这样的话,我再告诉你解决方法。

      1. 小弟
        @Rat's

        等了 我等了一个多小时 最后他还说依赖安装失败

  14. Anson

    对了,用了两三天,感觉OD的上传比GD也慢太多了吧,OD上传比bt本身下得还慢,目测50mbps都不到

    1. Rat's
      @Anson

      可能是上传方式不一样吧,我用oneindex自带的上传时候,感觉上传很快,不过就是容易出问题。你可以试下这个上传https://www.moerats.com/archives/697/,很稳,然后修改下线程数。

  15. HA

    没有办法能让aira2多bt上传一会咩~我想让他bt下载百分百的时候就开始上传网盘,同时不影响bt自己的上传,aria2的on download complete好像只能检测到bt完全下载完毕,哎,想多做会好人

    1. Rat's
      @HA

      这个没试过,你可以去官方网站上研究下配置文件参数,说不定有惊喜。

  16. kbrx93

    问下博主,这个图片灯箱效果是 typecho 插件吗

    1. Rat's
      @kbrx93

      基本上都是主题自带的,我不怎么喜欢用插件。

  17. 999

    你好,为什么装完后 要加:34567 才能访问呢?

    1. Rat's
      @999

      因为程序在34567端口上运行。

  18. Neworld

    博主后台无法修改PyOne的后台管理密码,保存后一直是默认的

    1. Rat's
      @Neworld

      这时候你需要一个重启操作,比如systemctl restart pyone或者reboot。

      1. Neworld
        @Rat's

        嗯嗯搞定了

  19. lexo

    博主,瓦工centos7安装完后发现redis没安装成功

    1. Rat's
      @lexo

      这个貌似对瓦工的C7有点小问题,已修复,你再试试。

      1. 芥末
        @Rat's

        我也是瓦工的centos7,redis还是安装不上

        1. Rat's
          @芥末

          为了瓦工C7,我专门把redis换成了编译安装,还测试通过了的,你是BBR系统还是?安装不上有什么提示没

          1. 芥末
            @Rat's

            我是ovz的主机 难道跟这个有关系?

            1. Rat's
              @芥末

              这个不是很清楚,没日志信息,加上我没瓦工 OVZ,所以不好测试,你换Debian 9系统看看。

              1. 芥末
                @Rat's

                Emmmm,面板里没有Debian 9,是只KVM版本的有吗?我今晚再在C7跑一遍 看看具体提示。

                1. Rat's
                  @芥末

                  Debian 8也行,OVZ现在没啥玩头啊。

                  1. 芥末
                    @Rat's

                    买主机的时候不懂,随便选了一个。年付,现在后悔死。将就用吧

                    1. Rat's
                      @芥末

                      用完了,就换KVM吧,博客置顶都是KVM。

                      1. locyoo
                        @Rat's

                        我用的就是搬瓦工的KVM,centos7.5,没有问题

                        1. Rat's
                          @locyoo

                          是没问题,我专门争对瓦工C7调整了下。

  20. 灯火阑珊

    发现PyOne程序一个bug。我通过离线下载功能保存视频文件时,若默认名称过长,则无法读取该视频,但重新修改一个名称后,就恢复正常了。
    https://i.loli.net/2018/11/30/5c014ee32c92f.png
    https://i.loli.net/2018/11/30/5c014efbc8e16.png

    1. 灯火阑珊
      @灯火阑珊

      但又好像不是文件名过长的问题,通过离线下载保存的都不能读取视频(能看到新增的这个文件),更新缓存后恢复正常。

      1. Rat's
        @灯火阑珊

        这程序文件变动后,需要几分钟自行更新缓存,或者手动更新,后者是立即生效的。

  21. Xb

    您好,杂货铺遇到了支付问题

    1. Rat's
      @Xb

      等萌咖大佬修复吧。

      1. xb
        @Rat's
        该评论仅登录用户及评论双方可见
  22. Jacob

    我是魔鬼吧……第一次弄好了没问题,装Bbr 55R出问题重装后,现在装密钥填了重启aria2还是没有保存上……

    1. Rat's
      @Jacob

      55R可能会涉及到防火墙啥的,就会影响程序打不开。

    2. Jacob
      @Jacob

      可以了可以了,所有命令都重启一遍……

      1. Jacob
        @Jacob

        不过离线下载添加了没反应还是

        1. Rat's
          @Jacob

          注意缓存问题。

          1. Jacob
            @Rat's

            有点怀疑人生,刚刚可以的把任务删掉了,现在测试添加任务又是没反应,博主能帮我看看吗?折腾了一下午弄好这个那个出问题,弄好这个又到那里出问题……还有手动上传也没反应

            1. Rat's
              @Jacob

              我使用一切正常,你可以问下作者,只能说这东西不适合折腾。

          2. Jacob
            @Rat's

            嗯嗯,原来要等久一点,没问题了,可以离线了

  23. 黑人问号

    geting file from dir /root/Download
    get 1 files from dir /root/Download
    check filename
    check repeat file
    Traceback (most recent call last):
    File "/root/PyOne/function.py", line 1517, in <module>
    eval(func+str(tuple(args)))
    File "<string>", line 1, in <module>
    File "/root/PyOne/function.py", line 884, in UploadDir
    parent_id=parent['id']
    TypeError: 'NoneType' object has no attribute '__getitem__'

    上传出现问题

    1. Rat's
      @黑人问号

      这个程序问题吧,多传几次看看,在ssh客户端用命令。

      1. 黑人问号
        @Rat's

        ssh里面的pyone命令不知道怎么敲。

        1. Rat's
          @黑人问号

          这个问题好像是数据库出现了问题,你百度下清空Mongodb数据库的方法,或者直接用这个上传教程https://www.moerats.com/archives/697/。

  24. 黑人问号

    请问能设置脚本检查已经安装Caddy则跳过安装吗?

    1. Rat's
      @黑人问号

      这个为新系统准备的脚本,你可以先自己编辑脚本,删掉caddy安装那一排代码,然后再运行。

  25. Jacob

    我发现基本设置那里密钥那里保存了没用

    1. Rat's
      @Jacob

      保存后需要重启Aria2。

      1. Jacob
        @Rat's

        果然,感谢,重启了文件管理那里的离线正常了

  26. Jacob

    博主你好,安装好后打开域名是Aria2NG的页面,但是显示不完整,连接成功但是用不了,右上角有英文和左边的添加下载那些字体没有。
    然后就是文件管理那里的离线下载也是没反应,也不提示添加任务成功,再来就是后面打开域名是跳到网盘界面,进不去Aria2NG界面了,加上6080也进不去,所以现在用别人的面板下载……

    1. Rat's
      @Jacob

      这个脚本没安装Aria2NG啊。你运行脚本的系统是刚安装好的新系统吗?

      1. Jacob
        @Rat's

        是的,刚装好

        1. Rat's
          @Jacob

          你清空浏览器缓存看看,这脚本没装过Aria2NG。

  27. sooele

    怎么好的东西。必须支持。

  28. Mr.Fu

    One的目录刷新不出来。
    全量更新了几次都不行。。

    1. Rat's
      @Mr.Fu

      用下命令刷新试试,python /root/PyOne/function.py UpdateFile。

      1. 灯火阑珊
        @Rat's

        我也是遇到这个问题,下命令无效。可能是一键脚本哪里有点问题吧。还有就是这篇文章设置为了隐藏,博主是在修复一键脚本吗?

        1. Rat's
          @灯火阑珊

          是的,隐藏了,我先找下原因,看是不是出在了Mongodb。

      2. Mr.Fu
        @Rat's

        我就是用命令的。
        不行。不知道是什么原因了。。

        1. Rat's
          @Mr.Fu

          等我检查下原因。

  29. commander

    请问一下,这个脚本安装好后,Aria2 web离线的文件会被存放到服务器的那个位置,然后这个文件会被上传到OneDrive的那个位置。通过Aria2离线的任务成功后,上传到OneDrive的速度是不是和服务器的网速有关

    1. Rat's
      @commander

      放到服务器/root/PyOne/upload目录,然后你在哪个目录下点击离线下载按钮,最终就会上传到哪个目录下,网速和硬盘读取有关。

      1. 黑人问号
        @Rat's

        用了你的脚本装了ARIA2,下载目录是/root/Download/, 有点奇怪,我并没做过更改。

        1. Rat's
          @黑人问号

          对,我好像是设置的/root/Download/,晚上我改下

      2. commander
        @Rat's

        利用aria2下载的文件就不会自动上传到onedrive对吗,只有通过文件管理器离线的才会上传到对应文件夹,是这个意思嘛?
        本人发现从文件管理器添加离线后,当前页面没有任何反应,也没有提示任务是否添加成功。

        1. Anson
        2. Rat's
          @commander

          我检查下问题。

  30. K

    棒~