大佬的github在这 https://github.com/iwestlin/gd-utils
安装
###!!! 安装node.js v12 - 不能用v14,不然会出错
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
sudo apt-get install -y gcc g++ make nodejs
# 下载/进入
cd /data/ && git clone https://github.com/iwestlin/gd-utils
ln -s /data/gd-utils ~/gd-utils && cd ~/gd-utils
# 安装
npm i
配置
团队盘 – 拷贝glone/rclone的SA文件夹
之前搞过如何生成SA文件夹
# 自己修改对应的源目录
cp ~/AutoRclone/accounts/* ./sa/
个人盘
只需要 rclone.conf中的对应的 client_id, client_secret 和 refresh_token 这三个变量,将其分别填入本项目下的 config.js 中。
我就不弄个人盘了
TG Bot配置
参考官方指南: https://core.telegram.org/bots#6-botfather
把token放到 config.js相应的位置当中。
上图的这个DEFAULT_TARGET就是转存的目标目录ID,也可以设置.
到此位置,基本上配置完成。
启动
# 安装进程守护程序pm2
npm i pm2 -g
# 如果你的gd-util服务器和宝塔/nginx的服务器不是同一个,必须用0.0.0.0启动,不然无法从外网访问,只能用127.0.0.1
vi server.js
# const PORT = 23333
# // app.listen(PORT, '127.0.0.1', console.log('http://127.0.0.1:' + PORT))
# app.listen(PORT, '0.0.0.0', console.log('http://127.0.0.1:' + PORT))
# 代码运行后会在服务器上监听23333端口
pm2 start server.js
# 将当前的pm2进程保存 - 未来重启之后可以自动启动
pm2 save
# 查看当前的进程
pm2 list
# 去宝塔/nginx做好反代
# 本地测试
curl 'https://gdutil.ck.mk/api/gdurl/count?fid=124pjM5LggSuwI1n40bcD5tQ13wS0M6wg'
# 如果返回一个表,就是成功了
一些控制指令
# 重启
pm2 restart server.js
# 开启自启
pm2 startup
# 取消开启重启
pm2 unstartup systemd
把TG bot连上
# change to your own website & token
curl -F "url=https://gdutil.ck.mk/api/gdurl/tgbot" 'https://api.telegram.org/bot之前得到的BotToken/setWebhook'
Bot测试
如果出问题
# 通常是进程被干掉了
lsof -i:23333
# 会发现没有进程
# 重启一下就行了
pm2 start /data/gd-utils/server.js
大功告成。
确认sa文件的权限
# 后面那个是folder id - 就是检查这几百个sa.js文件有没有对这个folder有访问权限
./validate-sa.js 1WnDafO8TXIK5w1n9kNPO_sZCm7FV3aLD
有趣的一个失误
我发现重启之后PM2并不运行,出现这样的。
tail -50 /var/log/syslog
# 反馈是"node"找不到
解决方案也很搞,发现把 /etc/systemd/system/pm2-root.service 中PATH行中的”Applications/VMWare OVF Tool:”的这部分删了就行了 – 这是我从本地机考过去之后不小心留在Path中的一段残留物。
删了,重启就好了。