引言
在日常使用各类网站或App 时,我们经常需要执行一些重复性的签到任务,比如每日打卡、积分签到等。手动操作不仅麻烦,还容易忘记。为了解决这个问题,开源项目 DailyCheckin 应运而生——它可以通过简单配置实现多平台自动签到。
然而,对于没有服务器或不想在本地长期运行脚本的用户来说,如何让 DailyCheckin 稳定地在云端执行一直是一个实际问题。传统方案通常依赖 GitHub Actions、VPS 或青龙面板,但这些方式要么存在限制,要么需要一定的维护成本。
本篇文章将带你使用 Claw Cloud 的免费容器实现稳定、可定时执行的自动签到任务。
准备工作
- GitHub帐号(注册时长大于180天)
- 使用GitHub注册 Claw Cloud
注意:只有使用注册时长大于180天的GitHub帐号登录 Claw Cloud 才能获取每月5美元的额度
创建应用
登录 Claw Cloud 后在上方选择合适的地区,然后打开 应用程序面板(App Launchpad)
面板,点击右上角 创建应用程序(Create App)
- 应用程序名称(Application Name)根据个人习惯任意取:DailyCheckin
- 镜像(Image)选择公开(Publish),镜像名称(Image Name)输入
sitoi/dailycheckin:latest
- CPU和内存的用量按需分配,我直接使用默认值(免费套餐的最大可用资源:4个vCPU,8GB RAM)
- 网络(Network)这一栏不用修改,不需要暴露端口
- 高级配置(Advanced Configuration)中命令(Command)和参数(Arguments)均留空,不用填写。不要在命令中填写
dailycheckin
,否则容器会在运行一次后就关闭,后面的定时任务就会失效 - 环境变量(Environment Variables)可以添加一条
TZ=Asia/Shanghai
,设置时区为上海。不过不设置也可以,因为镜像中已经设置了时区为上海 - 配置图(Configmaps)在这里添加配置文件,文件名(File Name)填写
/dailycheckin/config/config.json
,文件内容(File content)即为config.json 配置 – DailyCheckIn教程中提到的config.json
,参照教程中的方法进行配置,配置完成后将整个配置文件中的内容都复制到这里面 - 本地存储(Local Storage)中容量使用默认的1G,挂载路径(Mount Path)为
/dailycheckin/cron
(免费计划最多包括10G)
完成上述配置后别急着部署,查看左侧的预估费用(Estimated Cost),最后一行的总计(Total)显示的价格即为当前项目运行一天所需要花费的费用,请确保该值乘以31天的总费用不超过5美元,否则将会产生额外费用。一切准备就绪后点击右上角的部署应用程序(Deploy Application)
配置定时任务
部署应用程序后你会发现容器处于终止状态(Terminate),这是因为我们没有上传定时文件,日志中显示 crontab: can't open '/dailycheckin/cron/crontab_list.sh': No such file or directory
。滚动到底部找到Pod列表(Pod List),选择最右侧的文件管理器(File Manager),一个文件夹图标的东西,如果没有看到试试向右拖动底部的横向滚动条。
接着我们在桌面创建一个记事本,将以下内容复制到里面去,根据自己的需求进行修改执行的时间,然后保存并且将文件名重命名为 crontab_list.sh
(需开启显示文件后缀名)
##############默认任务##############
# 每 12 小时更新 Pipy 包,如果不需要更新 pypi 包请注释掉下面这行
0 */12 * * * echo "定时任务更新依赖..." && pip install dailycheckin --upgrade --user >> /dailycheckin/logs/update-pypi.log 2>&1
# 每天的 23:50 分清理一次日志
50 23 */2 * * rm -rf /dailycheckin/logs/*.log
##############每日签到一次任务##############
# 每日签到(9:00 执行全部签到)
0 9 * * * cd /dailycheckin && dailycheckin >> /dailycheckin/logs/dailycheckin.log 2>&1
文件管理器的右上角上传(Upload)crontab_list.sh
文件,等待文件上传完毕后关闭文件管理器并点击文件管理器左侧的Restart按钮重启容器,重启容器后就会加载刚刚上传的定时任务,到了指定时间就会进行签到,此时容器的状态已经更改为活跃(Active)