侧边栏壁纸
博主头像
贯耳症博主等级

瓜虫冬匕ing……

  • 累计撰写 67 篇文章
  • 累计创建 49 个标签
  • 累计收到 774 条评论

目 录CONTENT

文章目录

群晖小技巧:通过任务计划执行脚本

贯耳症
2022-06-22 / 5 评论 / 0 点赞 / 1,428 阅读 / 661 字
温馨提示:
本网站有 CDN 缓存,一般刷新 3 次左右即可获取最新页面。

出门在外,如果家里的群晖突然断电或遭遇其他情况重启了,那么恢复对自建服务的访问就变成了一个棘手的问题,比如FRP内网穿透服务。

当然像这些服务是可以配置成系统自启服务的,但最近我发现有一次更新系统后我之前配置的FRP服务就不见了,估计是系统更新时把系统服务目录的文件给覆盖了,所以这种方法并不稳定。

其实最稳定的就是群晖的网页了,只要群晖开机就可以访问,虽然不能直接执行SSH命令,但可以间接通过任务计划执行预先配置好的脚本。

以启动FRP服务为例,点击新增 - 触发的任务 - 用户定义的脚本。

常规选项卡中填写任务名称,用户账号使用root身份,事件选择开机事件。

切换到任务设置选项卡,在用户定义的脚本输入相关命令即可。

如果脚本运行失败,还可以通过保存脚本输出结果来排错。

通过这种方式,我们就可以在任何能够访问到群晖网页的情况下执行我们预定义的脚本了。


启动服务并非终点,某些情况下可能需要调整服务的配置文件,这时就需要先关闭服务后再启动。

以FRP服务为例,首先查看正在运行的服务的进程号

对于将要设计的脚本而言,4530这个进程号是唯一需要的内容,因此通过以下命令获取:

将上面的命令拆分,就可以应用到其他服务上。通过|grep frp获取与frp相关的进程,通过|grep frpc.ini获取实际运行的脚本对应的进程,最后通过|grep -v grep|awk '{print $2}'获取输出结果第二列的值。

有了上述基础,这个关闭服务的脚本就可以很轻松地写出来了:

#!/bin/sh

PID=`ps -ef |grep frp|grep frpc.ini|grep -v grep|awk '{print $2}'`
if [ x"$PID" != x"" ]; then
  kill $PID
fi

以上内容参考Linux .sh脚本 启动、停止、重启、状态 Jar包

最后为这个脚本添加执行权限,SSH命令行测试没有问题之后,将其添加到任务计划中即可。

0

评论区