Skip to content
lan-tianxiang edited this page Feb 25, 2021 · 15 revisions

部署环境

  • debian/ubuntu/armbian/OpenMediaVault,以及其他debian系:

    apt update && apt install -y git wget curl nodejs npm perl
    
  • CentOS/RedHat/Fedora等红帽系

    yum update && yum install git wget curl perl nodejs
    

    如果安装源中有nodejs和npm,也安装好,否则请访问 Node.js官网 或者 nodesource@github 查看如何安装。

  • OpenWrt, 需要添加官方软件源, 如果某个软件包已集成在固件中,则可跳过安装。如果你会编译,可以把下面这些包直接编译在固件中。

    opkg update && opkg install git git-http wget curl node node-npm perl
    

    声明:OpenWrt环境千差万别,不保证一定可用,需要根据自己的环境来配置,如果OpenWrt安装了docker,也可以使用docker的方法。

注1:不同系统的包名不一定一样,需保证 node 大版本 >=10,安装好后使用node -vnodejs -v命令可查看版本。

注2:如果是按以上命令安装成功,那应该没问题。如果是nvm安装的或其他方式安装的,请确保安装后的命令在 PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" 中,如不在,请参考#21修改。

克隆脚本

cd至你想存放脚本的路径之后运行一键安装脚本,假如为/home/myid/jd,那么:

以下全文均以此路径/home/myid/jd进行举例,请自行修改为你自己的路径!

以下全文均以此路径/home/myid/jd进行举例,请自行修改为你自己的路径!

以下全文均以此路径/home/myid/jd进行举例,请自行修改为你自己的路径!

git clone https://github.com/lan-tianxiang/jd_shell /home/myid/jd

脚本会自动在/home/myid/jd下克隆下脚本并创建日志文件夹,分别如下:

  • log: 记录所有日志的文件夹,其中跑js脚本的日志会建立对应名称的子文件夹,并且js脚本日志会以年-月-日-时-分-秒的格式命名。

  • scripts: 从 lxk0301/jd_scripts 克隆的js脚本。

  • scripts2: 从 lan-tianxiang/jd_scripts 克隆的js脚本。

修改参数

cd /home/myid/jd/
mkdir config/
cp sample/computer.list.sample config/crontab.list     # 复制computer.list.sample从sample到config目录下crontab.list(此为定时文件)
cp sample/config.sh.sample config/config.sh      # 复制config.sh.sample从sample到config目录下config.sh(此为参数文件)

nano config/config.sh                   # 编辑config.sh,内含详细的注释.如果不习惯,请直接使用可视化编辑器编辑这个文件
nano config/crontab.list                # 编辑crontab.list,内含详细的注释.

注意:

  • 请不要直接修改config.sh.sample!而只修改config.sh

  • config.sh和crontab.list都内含详细的注释,请按照流程编辑后切记保存

  • 参数清单如何修改请仔细阅读config.sh中的注释。

初始化

在编辑好config.sh以及crontab.list这两个文件后,请务必手动运行一次git_pull.sh,不仅是为检查错误,也是为了运行一次npm install用以安装js指定的依赖。

  1. 完成所有信息修改以后,先检查一下git_pull.sh能否正常运行。

    cd /home/myid/jd/
    bash git_pull.sh
    

    若没有报错则直接看下面的定时任务。

    注1:.sh脚本如果没有可执行权限,虽然手动执行可以运行,但定时任务将无法正常运行。

    注2: 首次运行的日志很重要,如果过程中有任何错误,请参考错误提示来解决问题。主要包括两类问题:一是无法访问github,请想办法改善网络;二是git_pull.sh会运行npm install,用来安装js指定的依赖,如果你网络不好,日志中会有提示,请注意观察。如果npm install失败,请尝试手动运行,可按如下操作,如果失败,可运行多次:

    cd /home/myid/jd/scripts
    npm install || npm install --registry=https://registry.npm.taobao.org
    
  2. 看看js脚本的信息替换是否正常。

    cd /home/myid/jd/scripts
    git diff    # 请使用上下左右键、Page Down、Page Up进行浏览,按q退出
    
  3. 然后你可以手动运行一次任何一个以jd_开头并以.sh结尾的脚本(有些脚本会运行很长时间,sh本身不输入任何内容在屏幕上,而把日志全部记录在日志文件中)。

    cd /root/shell
    bash jd_bean_sign.sh
    

    /home/myid/jd/log/jd_bean_sign文件夹下查看日志,查看结果是否正常,如不正常,请从头检查。

定时任务

  1. 编辑定时任务并自己根据你的需要调整,也可以使用其他可视化工具编辑。请注意将crontab.list这个文件中的/root目录替换为自己的目录。

    nano crontab.list
    
  2. 添加定时任务。请注意:以下命令会完整覆盖你当前用户的crontab清单,请务必确认当前用户不存在其他定时任务!!。

    crontab crontab.list
    

说明:

  • crontab.list这个文件必须存放在/home/myid/jd/config下。

  • crond任务日志一般在/var/log/下,不在脚本目录,并且一般可能需要开启日志功能才会有。

  • 第一条定时任务.../git_pull.sh会自动更新js脚本和shell脚本,并完成Cookie、互助码等信息修改,这个任务本身的日志会存在.../log/git_pull.log中。更新过程不会覆盖掉你已经修改好的git_pull.sh文件。"..."指代你的目录。

  • 第二条定时任务.../rm_log.sh用来自动删除旧的js脚本日志,如果你未按下一节自动删除旧日志中操作的话,这条定时任务不会生效。

  • 如果想使用自动增加定时任务的功能(git_pull.shAutoAddCron设置为true),而又不想手动改crontab,那么你的机子必须是北京时间,使用date命令可以查看系统时间。

自动删除旧日志

单个日志虽然小,但如果长期运行的话,日志也会占用大量空间,如需要自动删除,请按以下流程操作:

  1. 将目录下rm_log.sh赋予可执行权限:

    cd /home/myid/jd/
    chmod +x rm_log.sh
    
  2. 该脚本在运行时默认删除30天以前的日志,如果需要设置为其他天数,请修改脚本中的HowManyDays

  3. 定时任务部分的说明修改定时任务。

补充说明

  • 物理机如需多账号并发,需要创建多个jd.sh,然后分别重命名后如jd2.sh后修改内里面config文件地址运行上述命令,然后也复制并重命名config下的config.sh都按下面说明配置一下,并且在制定定时任务时,你配置了多少个jd.sh,那么同一条定时任务就要重复几次(因为.sh脚本文件不一样)。
  • 如果想要重新调整定时任务运行时间,请不要直接使用crontab -e命令修改,而是编辑/home/myid/jd/config/crontab.list这个文件,然后使用crontab /home/myid/jd/config/crontab.list命令覆盖。这样的好处脚本会自动依靠这个文件来增加新的定时任务和删除失效的定时任务。

  • 如果shell脚本有更新,需要你手动复制一份config.sh.sample,并重新修改必须的信息,然后命名为config.sh,流程如下(以docker为例):

    cd /home/myid/jd/
    cp sample/config.sh.sample config/config.sh
    
    # 然后修改config.sh,也可使用其他可视化工具修改
    nano config.sh
    
    # 不要忘记赋予修改后的.sh脚本可执行权限
    chmod +x git_pull.sh
    
  • 如有帮助到你,请点亮 star 。

Clone this wiki locally