欢迎光临~
小狗一直在努力~

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

准备脚本

在威联通上新建一个文件夹。

再在这个文件夹下新建两个文件。

分别是

cfd.log

check_and_resatrt.sh

其中check_and_resatrt.sh加入以下内容。

https://pup.0521.uk改为自己的网址。Cloudflared是容器名称,不一样要自行替换。

#!/bin/bash

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

# checking
curl --fail https://pup.0521.uk >/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

增加定时任务

微信图片_20240330170848.png

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

vim /etc/config/crontab

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

微信图片_20240330170914.png

其中/share/documents/scripts/sh/share/documents/logs这两个路径自行替换成刚才创建的文件夹的路径。

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

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

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

等待重启完成,定时任务就添加完成了,打开刚才创建的cfd.log看下执行效果。

如果提示No such file or directory

在Linux下编译运行脚本的时候出现”/bin/bash^M: 坏的解释器: 没有那个文件或目录(bad interpreter: No such file or directory)“这样的错误。

微信图片_20240330171411.png

解决方法:

cd到该脚本文件夹

cd /share/documents/scripts/sh

输入sed -i 's/\r$//' check_tool.sh即可

微信图片_20240330170923.png

其中check_tool.sh为文件名,这里改成自己需要的即可

如本例的

sed -i 's/\r$//' check_and_resatrt.sh

原因: 这个文件在Windows 下编辑过,在Windows下每一行结尾是\n\r,而Linux下则是\n sed -i 's/\r$//' check_tool.sh 会把check_tool.sh中的行尾的\r替换为空白

详细解析: 这跟系统有关。脚本文件在windows下编辑过,windows下每一行的结尾是\n\r,而在linux下文件的结尾是\n,那么你在windows下编辑过的文件在linux下打开看的时候每一行的结尾就会多出来一个字符\r, 用cat-A filename时你可以看到这个\r字符被显示为^M

再次打开cfd.log看下执行效果。

微信图片_20240330171411.png

Cloudflared is online,成功。

from: 在威联通NAS中设置定时任务

未经允许不得转载:一只小狗 » 在威联通NAS中设置定时任务