🦜 如何在威联通NAS中设置定时任务

笔者曾是白群3年多的忠实用户,不过最近实在受不了白裙的渣渣性能,果断入坑了一台白威,不得不说,性能吊打白裙,Docker跑起来舒服多了。笔者的网站实际就是搭建在这台Nas上的,并且使用了Cloudflare做了内网穿透,不过最近发现Cloudflared经常性的无法连接到边缘服务器,导致网站处于掉线状态(网站实际是正常的,只是穿透失联了),用户也就无法正常打开网页了。
Cloudflare网络在国内不是非常稳定,这个相信接触过的朋友多少有些了解,如果发现Cloudflared连不上边缘服务器,一般重启下就会恢复,但是笔者不可能天天盯着它,所以就引出了本文的话题——用定时任务来解决。

威联通

不过,也许是笔者对威联通的系统不熟悉,也许就是没有,反正在WebUI中没找到关于定时任务的功能,而群辉的WebUI中是可以直接在操作界面上添加定时任务的。既然WebUI上没找到,干脆就直接到系统的Cron中增加吧。

写脚本

笔者对编写shell脚本不熟悉,但是对需求很明确,所以这个脚本实际上是ChatGPT帮我写的,脚本如下:

check_and_restart.sh

#!/bin/bash

current_time=$(date +"%Y-%m-%d %H:%M:%S")

# checking
curl --fail https://www.huluohu.com >/dev/null 2>&1
if [ $? -ne 0 ]; then
  echo "${current_time}: Cloudflared is not online. Restarting..."
  # restart cloudflared
  docker restart cloudflared
  if [ $? -ne 0 ]; then
    echo "${current_time}: Failed to restart Cloudflared."
    exit 1
  fi
  echo "${current_time}: Cloudflared restarted successfully."
else
  echo "${current_time}: Cloudflared is online."
fi

脚本很简单,就是用curl检查网站是否正常响应,如果正常就打印个日志,如果异常则重启cloudflared容器。

附上使用ChatGPT写脚本的原始对话:
威联通

踩坑

威联通的QuTS系统是基于Linux定制的,所以也是可以直接在Crontab中增加定时任务的。

首先, 执行以下命令:

crontab -e

然后, 将下面的定时任务增加在最下面,保存并退出

*/5 * * * * /share/documents/scripts/sh/check_and_restart.sh >> /share/documents/logs/cfd.log 2>&1

表示每隔5分钟执行1次脚本,并将日志输出到cfd.log文件中

但是,QuTS有个坑,就是使用crontab -e添加的定时任务会自动消失,即使系统没用重启也会消失!

正确方法

经过一番查找,在QuTS中,用户自定义的定时任务要写到/etc/config/crontab才能持久化。下面是正确的做法:

首先,使用vim编辑/etc/config/crontab

vim /etc/config/crontab

然后,同样将下面的定时任务增加在最下面,保存并退出

*/5 * * * * /share/documents/scripts/sh/check_and_restart.sh >> /share/documents/logs/cfd.log 2>&1

最后,重启crontab,需要执行2条命令

sudo crontab /etc/config/crontab
sudo /etc/init.d/crond.sh restart

等待重启完成,定时任务就添加完成了,看下执行效果:
威联通

原创不易,如果觉得此文对你有帮助,不妨点赞+收藏+关注,你的鼓励是我持续创作的动力!

高等精灵实验室

原创文章,作者:诺多,如若转载,请注明出处:https://www.huluohu.com/posts/345/

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
🪽 掌控数据:使用Docker搭建Cloudreve私有云盘
上一篇 2023年9月6日 08:32
🦩 掌控数据:使用Docker搭建Seafile私有云盘
下一篇 2023年9月7日 08:54

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注