实现telegram普通账号定时发布信息,定时签到(ps:不是机器人bot)
笔者搭建的是一台初始centos 7服务器
安装环境
OS:centos7
安装方式:编译安装
其他系统的安装教程可以看github项目中README
暂未找到yum源
实现原理:利用telegram-cli模式登陆到服务器端,再做定时任务、发送消息
搭建telegram-cli
yum -y install git
yum update -y nss curl libcurl
git clone --recursive https://github.com/vysheng/tg.git && cd tg
yum -y install lua-devel openssl-devel libconfig-devel readline-devel libevent-devel jansson-devel python-devel gcc
./configure
make
依次运行上述命令后,telegram-cli已经安装完成,可执行文件在当前目录下的bin/telegram-cli
登录Telegram-cli之前需要在https://my.telegram.org/apps
获取pub密钥。我选择创建的application类型为app(这里填什么都行 )
主要是获取 Public keys
用来登陆telegram验证
可以新建一个文件,然后把 public key 的内容复制进去并保存
将Public keys
复制,回到服务器端。执行以下命令,将密钥保存到 mytg-server.pub
文件中。
vi mytg-server.pub
上述操作完毕之后,就可以登录了。
执行命令:
/root/tg/bin/telegram-cli -k mytg-server.pub
提示输入电话号码和验证码,登录就可以了。
登录完毕后可以按ctrl-c
键退出,或者使用命令quit
或safe_quit
退出。
发送消息
执行命令bin/telegram-cli -W
进入命令行模式 格式为(标签 用户或群组名称 内容)
ps:用户群组名称可以用 (Id 用户名 群组名称) 中间有空格
或者#
标识 需要使用_
替换
输入msg @xxx text
即可发送时时消息
可以按ctrl-c
键退出,或者使用命令quit
或safe_quit
退出。
直接发送消息:bin/telegram-cli -W -e "msg <username/channelname> <msg>"
用脚本发送消息
上面是telegram-cli的简单使用 下面使用脚本命令发送消息
编辑一条脚本 vi/root/tg.sh
#!/bin/bash
to=$1
msg=$2
/root/tg/bin/telegram-cli -W -e "msg $to $msg"
调用方式
bash root/tg.sh @xxxx 这是一条测试信息
定时发送消息(crontabs)
脚本写完了 咱们加到定时任务里面去 可以实现每天定时发送消息、早晚签到等
主要是使用crontabs
装不上的自己想想办法,已经安装的可以跳过
yum -y install vim-enhanced.x86_64
yum install crontabs
systemctl enable crond #(设为开机启动)
systemctl start crond #(启动crond服务)
systemctl status crond #(查看状态)
vi /etc/crontab
可以看到:
Example of job definition:
.---------------- minute (0 - 59)
| .------------- hour (0 - 23)
| | .---------- day of month (1 - 31)
| | | .------- month (1 - 12) OR jan,feb,mar,apr ...
| | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
| | | | |
* * * * * user-name command to be executed
分钟(0-59) 小时(0-23) 日(1-31) 月(11-12) 星期(0-6,0表示周日) 用户名 要执行的命令
这是使用定时器的基本意思这里不做过多概述
crontab -e
执行这个命令添加定时器规则 以早9点晚7点为例
0 9 * * * bash /root/zao.sh
0 19 * * * bash /root/wan.sh
crontab -l
查询当前定时器
上面定时器设置好了 我们需要添加定时器脚本可以实现波动性打卡 在9点-9点半内 19点-19点半内 波动性打卡
编辑早脚本 vi/root/zao.sh
#!/bin/bash
#随机数,表示随机一个30以内的数
randNum=$(($RANDOM%30))
echo -e $[randNum]" 9 * * * bash /root/tg.sh 打卡通知群 测试早打卡\n0 19 * * * bash /root/wan.sh"> /root/user
#设置可执行权限
chmod 777 /root/user
#使用crontab 命令添加到定时任务
crontab /root/user
编辑晚脚本 vi/root/wan.sh
#!/bin/bash
#随机数,表示随机一个30以内的数
randNum=$(($RANDOM%30))
echo -e $[randNum]" 19 * * * bash /root/tg.sh 打卡通知群 测试晚打卡\n0 9 * * * bash /root/zao.sh"> /root/user
#设置可执行权限
chmod 777 /root/user
#使用crontab 命令添加到定时任务
crontab /root/user
好了将上面的方法执行下就可以实现telegram 定时发送信息 在时间范围内波动性打卡
因为定时器没有波动的参数,所以想到了执行定时器创建出来一个波动时间定时器,再将以前的定时器覆盖掉,从而实现波动的定时器(模拟真人签到)