使用 crontab -e 通过 cron 安排扫描任务
在这一步中,我们将使用 cron
安排我们的 scan.sh
脚本自动运行。cron
是类 Linux 操作系统中基于时间的任务调度器。它允许你安排命令或脚本在特定的时间、日期或间隔运行。
要使用 cron
安排任务,我们使用 crontab
命令。crontab -e
命令会在文本编辑器中打开 crontab 文件(在 LabEx 环境中通常是 nano
)。
在你的终端中,输入以下命令:
crontab -e
如果这是你第一次使用 crontab
,系统可能会提示你选择一个编辑器。通过选择相应的数字来选择 nano
。
crontab 文件包含一系列 cron 任务,每个任务占一行。每行由六个字段组成:
分钟 小时 每月的日期 月份 每周的日期 命令
- 分钟:任务将运行的小时中的分钟数(0 - 59)。
- 小时:任务将运行的一天中的小时数(0 - 23)。
- 每月的日期:任务将运行的月份中的日期(1 - 31)。
- 月份:任务将运行的一年中的月份(1 - 12)。
- 每周的日期:任务将运行的一周中的日期(0 - 6,其中 0 是星期日)。
- 命令:要执行的命令。
例如,要每分钟运行一次 scan.sh
脚本,在 crontab 文件中添加以下行:
* * * * * /home/labex/project/scan.sh
这一行的意思是:
*
:每分钟
*
:每小时
*
:每月的每一天
*
:每个月
*
:每周的每一天
/home/labex/project/scan.sh
:要执行的命令(我们脚本的完整路径)
重要提示:在实际场景中,每分钟运行扫描通常不是一个好主意,因为这可能会给网络和目标设备带来压力。在本实验中用于测试目的,每分钟运行一次是可以接受的。
要保存更改,按 Ctrl + X
,然后按 Y
确认,再按 Enter
保存文件。
你应该会看到类似“crontab: installing new crontab”的消息。这意味着 cron 任务已成功安排。
Cron 任务通常在后台运行,不显示任何输出。要查看 scan.sh
脚本的输出,你可以将其重定向到一个文件。例如,要将输出重定向到你 ~/project
目录中名为 scan.log
的文件,你可以将 cron 任务条目修改如下:
* * * * * /home/labex/project/scan.sh > /home/labex/project/scan.log 2>&1
> /home/labex/project/scan.log
部分将标准输出重定向到 scan.log
文件,而 2>&1
将标准错误重定向到同一个文件。