年假在家 让Linux自己帮我重新启动 cron

87 阅读3分钟

1 前言

去年年假在家,由于公司有些业务需要用到测试服务器,年假在家,有事情也是需要连接测试服务器的,但是大伙也知道远程控制桌面的软件你是不能保证每天你的电脑都不卡的,或者你不敢保证你的电脑没啥问题。所以我们打开了内网穿透,让公司小伙伴都能通过 SSH 连接到测试服务器,但是这样子问题就来了,测试服务器其实也不是高可用的(其实就是几台电脑主机,性能还没我电脑好),谁也不敢保证它会不会卡掉,或者关机。这个时候关机,就只能人肉回公司打开了,所以为了能有个愉快的不被打扰的年假,我还是决定给测试机弄一个定时任务,让他每天凌晨关一次机,然后重启打开内网穿透和运行所有项目,这样强行保证高可用。

2 环境

  • Linux Ubuntu 20.04.2 LTS x86_64

3 计划任务

3.1 cron概述

在Linux中也有一套很方便管理计划任务 cron后台服务。

cron 是一个用于在预定时间执行任务或命令的后台服务。它允许用户设置定时任务,以便在特定的时间、日期或时间间隔内运行特定的命令。

3.2 cron安装

在大多数基于 Debian 或 Ubuntu 的 Linux 系统上,cron 已经默认安装。

你可以通过以下方法来检查 cron 是否安装在系统上:

sudo service cron status

或者使用 systemctl

sudo systemctl status cron

如果 cron 未安装,你可以使用以下命令安装:

sudo apt-get update 
sudo apt-get install cron

cron重启

sudo service cron restart

或者

sudo systemctl restart cron

3.3 cron使用

3.3.1 编辑用户的 crontab

使用下面的命令来编辑当前用户的 crontab:

crontab -e

这会打开一个文本编辑器,你可以在其中添加定时任务。

3.3.2 添加定时任务

crontab 文件的每一行都表示一个定时任务,其格式如下:

* * * * *  task
  • 第一个 * 代表分钟(0-59)
  • 第二个 * 代表小时(0-23)
  • 第三个 * 代表日期(1-31)
  • 第四个 * 代表月份(1-12)
  • 第五个 * 代表星期几(0-6,0 为星期天)
  • * 可以用来表示 "每一个",例如:
  • * 表示 "每一个",在分钟字段上表示每分钟。
  • */2 表示 "每隔 2",在分钟字段上表示每两分钟。
  • task 实际命令或脚本

例如,在每天凌晨 2 点执行一个脚本:

0 2 * * * /path/to/your/script.sh

3.3.3 定时任务的输出 & 捕获异常

如果你想要捕获任务的输出,可以将输出重定向到文件。例如:

0 2 * * * /path/to/your/script.sh > /path/to/logfile.log 2>&1

这将把脚本的标准输出和标准错误都追加到指定的日志文件中。

3.3.4 查看现有的定时任务

使用以下命令可以查看当前用户的所有定时任务:

crontab -l

3.3.5 移除所有的定时任务:

使用以下命令可以删除当前用户的所有定时任务:

crontab -r

觉得作者写的不错的,值得你们借鉴的话,就请点一个免费的赞吧!这个对我来说真的很重要。૮(˶ᵔ ᵕ ᵔ˶)ა