前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux下搭建E5SubBot为365 E5续期(含数据库安装过程)

Linux下搭建E5SubBot为365 E5续期(含数据库安装过程)

作者头像
雨落凋殇
发布2020-12-14 17:05:37
1.7K0
发布2020-12-14 17:05:37
举报
文章被收录于专栏:雨落凋殇

前言

前段时间使用E5SubBot来对365 E5进行续订,使用后发现E5SubBot项目确实有效。由于之前是使用nohup将程序放在后台运行,程序运行一段时间后会停止。为了解决这个问题,于是自己写了一个shell脚本,然后配合计划任务就解决了这个问题,事后发现自己又绕了弯路,用systemd服务不是更好吗?

不过自己写过的东西还是记录一下,直接删了又感觉没意义了,下面是我最开始写的脚本。

代码语言:javascript
复制
#!/bin/bash
pid=`ps -aux | grep E5SubBot | grep -v 'grep' | awk '{print $2}'`
if [ "$pid" != "" ];then
 echo "running ..."
else
 echo "$(date '+%Y/%m/%d %H:%M:%S'):no run,starting..." >> /root/e5cron.log
 echo "no run"
 cd /root/e5sub/ && nohup /root/e5sub/E5SubBot >> /root/e5sub/e5sub-$(date +%Y%m%d%H%M%S).log &
fi

接着配合计划任务,每两个小时执行一次自己写的shell判断是否已经停止运行,如果停止了就启动,没有停止则忽略。

代码语言:javascript
复制
* */2 * * * /root/e5bot.sh

然而上述方法并不是一个完美的方案,后来我将使用计划任务的方案改为了systemd服务的方式运行,我使用的服务器的操作系统是Centos 7,具体的过程如下。

安装过程

以下是我在Centos 7操作系统中的具体安装过程。

访问E5SubBot项目地址

E5SubBot项目Github地址:https://github.com/iyear/E5SubBot/releases

选择合适的版本

根据自己服务器的具体情况选择对应版本进行下载。这里我选择的是E5SubBot_Linux_64bit的版本,目前大多数服务器使用的均为此版本。

代码语言:javascript
复制
wget https://github.com/iyear/E5SubBot/releases/download/v0.2.1/E5SubBot_Linux_64bit.tar.gz

解压文件

将刚下载下来的文件进行解压。

代码语言:javascript
复制
tar xvf E5SubBot_Linux_64bit.tar.gz 

得到如下四个文件,而我们需要使用的是E5SubBot这个二进制文件。

代码语言:javascript
复制
LICENSE
README.md
README_zhCN.md
E5SubBot

创建文件夹并移动文件

将解压出来的文件E5SubBot移动到对应目录下。

代码语言:javascript
复制
# 创建文件夹
mkdir /opt/e5sub
# 移动文件
mv E5SubBot /opt/e5sub/E5SubBot
# 给文件添加执行权限
chmod a+x /opt/e5sub/E5SubBot

安装MYSQL数据库

如果你已经安装了数据库,请进入下一步。这里我选择的是MYSQL5.7,如果你的服务器内存过小,可以使用MYSQL5.6或者选择使用远程MYSQL。

代码语言:javascript
复制
# 下载安装MYSQL源
wget http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
rpm -ivh mysql57-community-release-el7-10.noarch.rpm
# 安装数据库
yum install -y mysql-community-server

选择其他版本数据库:

代码语言:javascript
复制
# 如果不使用mysql57请在以下地址选择对应的版本的rpm
# https://repo.mysql.com/yum/
# 也可以执行下面命令查询所有可用版本
yum repolist enabled | grep mysql
# 禁用当前使用的57版本
yum-config-manager --disable mysql57-community
# 选择启用使用56版本
yum-config-manager --enable mysql56-community
# 最后在执行安装
yum install -y mysql-community-server

启动mysql数据库:

代码语言:javascript
复制
systemctl start mysqld.service

获取MYSQL的默认密码:

代码语言:javascript
复制
# 获取mysql自动生成的密码
grep password /var/log/mysqld.log 

接下来你应该会看到如下的一段文本,其中t;uY?tk&S2bT就是你的密码:

代码语言:javascript
复制
2020-12-10T06:38:17.070043Z 1 [Note] A temporary password is generated for root@localhost: t;uY?tk&S2bT

登录数据库:

代码语言:javascript
复制
mysql -uroot -p'密码'

由于MYSQL57默认密码策略,密码过于简单不能设置:

代码语言:javascript
复制
-- 使用以下SQL查询当前密码验证策略
mysql> show variables like 'validate_password%';
-- 设置MYSQL密码验证策略为low
mysql> set global validate_password_policy=0;

创建e5sub数据库:

代码语言:javascript
复制
-- 创建e5sub数据库,并设置编码
mysql> CREATE DATABASE `e5sub` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';

创建角色,分配权限:

代码语言:javascript
复制
-- 创建e5sub用户,并设置密码
mysql> CREATE USER `e5sub`@`localhost` IDENTIFIED BY 'e5sub';
-- 将e5sub数据库的所有权限授权给e5sub用户
mysql> GRANT all ON `e5sub`.* TO `e5sub`@`localhost`;
-- 刷新权限
mysql> FLUSH PRIVILEGES;

数据表不需要自己创建,E5SubBot在启动时会自动创建数据表。

配置E5Subbot

在/opt/e5sub目录下创建一个config.yml文件,配置telegram bot和mysql的具体信息。如果不知道如何配置请阅读E5SubBot项目readme.md的Configuration

代码语言:javascript
复制
vim /opt/e5sub/config.yml

配置文件内容如下:

代码语言:javascript
复制
bot_token: 你的TG机器人的TOKEN
notice: "这里可以填写机器人的通知信息"
admin: 填写你tg的id,使其作为管理员
#socks5: 127.0.0.1:1080
errlimit: 15
cron: "1 */1 * * *"
bindmax: 5
mysql:
  host: localhost
  port: 3306 
  user: e5sub
  password: e5sub
  database: e5sub

当然如果你使用的是境内服务器,需要指定socks5属性来使用代理服务器。以下是具体属性的说明。

属性

说明

bot_token

tg机器人的token,可以通过@BotFather进行获取

socks5

[可选]用于指定socks5代理,例如127.0.0.1:1080

notice

公告,在使用/help时显示

admin

管理员tgid,可以通过@userinfobot获取,用于手动执行/task任务和获取总任务执行反馈

errlimit

单个帐户错误的最大数量,当单个账户执行错误到指定次数时自动解除绑定并发送通知,若设置为-1则不限制

bindmax

单个账户最大绑定帐号的数量

cron

调用api的频率,使用cron表达式

mysql

mysql数据库的连接信息

编写Systemd单元文件

使用vim编辑器编辑单元文件。

代码语言:javascript
复制
vim /etc/systemd/system/e5sub.service

将以下内容复制进去。

代码语言:javascript
复制
[Unit]
Description=Telegram E5Sub Bot

[Service]
Type=simple
WorkingDirectory=/opt/e5sub
ExecStart=/opt/e5sub/E5SubBot
Restart=always
RestartSec=30

[Install]
WantedBy=multi-user.target

设置开机自启

systemd单元文件编辑完成后需要重新载入服务配置文件。

代码语言:javascript
复制
systemctl daemon-reload

然后开启服务。

代码语言:javascript
复制
systemctl start e5sub

查看服务状态。

代码语言:javascript
复制
systemctl status e5sub

最后设置服务自启。

代码语言:javascript
复制
systemctl enable e5sub

参考文档

systemd.service — Service unit configuration

E5SubBot#configuration

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020年12月10日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 安装过程
    • 访问E5SubBot项目地址
      • 选择合适的版本
      • 解压文件
      • 创建文件夹并移动文件
      • 安装MYSQL数据库
      • 配置E5Subbot
      • 编写Systemd单元文件
      • 设置开机自启
      • 参考文档
      相关产品与服务
      云数据库 SQL Server
      腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档