看了很多serv00保活,还是这个最简单高效,亲测好用

不需要 Actions、Vercel,只用 cron jobs,废话不多说,直接上干货。

1、ssh 登录

2、在home目录内创建 password.txt 文件

/home/<username>/password.txt

文件内容就是你的ssh登录密码,以下所有替换为你自己的ssh登录用户名

3、创建 auto-login.sh,内容如下,<服务器地址>替换为分配给你的服务器地址。

sshpass -f password.txt ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -tt <username>@<服务器地址> "exit"

例如:

sshpass -f password.txt ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -tt [email protected] "exit"

4、设置权限

chmod 600 password.txt
chmod +x auto-login.sh

5、添加 cron jobs,即每个月1号和15号的1:19运行,并且重启后也运行。时间可以根据你的喜好调整,每半个月运行一次足够了。

命令行执行:

crontab -e

添加如下内容:

19 1 1 * * /usr/bin/env TZ=Asia/Shanghai /home/<username>/auto-login.sh >/dev/null 2>&1
19 1 15 * * /usr/bin/env TZ=Asia/Shanghai /home/<username>/auto-login.sh >/dev/null 2>&1
@reboot /usr/bin/env TZ=Asia/Shanghai /home/<username>/auto-login.sh >/dev/null 2>&1

保存退出。

以上,结束收工。

94 个赞

我用的那个有tg通知的,没通知的总感觉被kill了都不知道

3 个赞

适合没有tg的同学。

另外,cron jobs 不会被kill啊,又不是常驻内存的。

3 个赞

Cron job会被随机清理掉

5 个赞

用的啥,还有tg通知

2 个赞

几个月了,我的每台机器上都是4、5个job,从未遇到过。也许你的job触发了平台检测机制。不要滥用就好了。

1 个赞

这个贴子

3 个赞

我去看看

1 个赞

顶你

试一下楼主要方法看看

感谢 !

mark 感谢

谢佬

有点东西 试试

1 个赞

我一开始也是用Cron job来进行auto-renew,但是serv00的Cron job经常抽风,遇到不执行的情况,导致进程拥塞。我想其他人使用Github Actions或者Vercel的目的之一可能就是通过外部程序来执行renew操作,并且能够查看执行情况。
请问一下,使用Cron job的话,能查看是否执行了相应计划任务吗?

1 个赞

Cron job 偶尔会清掉,比如最近的s6就经常清

4 个赞

谢谢分享,有时间试下

2 个赞

谢谢

2 个赞

可以。

一种办法,在auto-login.sh中加执行日志。

echo "$(date) - auto login executed" >> ~/auto-login-run.log

其它办法就是查看系统日志,但是在serv00上没有sudo权限,没用。

grep CRON /var/log/syslog
2 个赞

我在s6上的都没被清过,是不是job有违规操作

2 个赞