介绍
在本实验中,你将学习如何使用 crontab
命令在 Linux 中调度重复任务。crontab
命令允许你创建、编辑和管理 cron 任务,这些任务是在指定时间间隔自动运行的脚本或命令。你将首先了解 crontab
命令以及如何检查当前的 cron 任务。然后,你将创建一个简单的脚本,并使用 crontab
将其调度为每分钟运行一次。最后,你将学习如何使用 crontab
调度一个重复的备份任务。
在本实验中,你将学习如何使用 crontab
命令在 Linux 中调度重复任务。crontab
命令允许你创建、编辑和管理 cron 任务,这些任务是在指定时间间隔自动运行的脚本或命令。你将首先了解 crontab
命令以及如何检查当前的 cron 任务。然后,你将创建一个简单的脚本,并使用 crontab
将其调度为每分钟运行一次。最后,你将学习如何使用 crontab
调度一个重复的备份任务。
在这一步中,你将学习如何使用 crontab
命令在 Linux 中调度重复任务。crontab
命令允许你创建、编辑和管理 cron 任务,这些任务是在指定时间间隔自动运行的脚本或命令。
首先,让我们检查 labex
用户的当前 crontab 条目:
crontab -l
示例输出:
No crontab for labex.
如你所见,当前 labex
用户没有调度任何 cron 任务。
接下来,让我们创建一个新的 cron 任务,每分钟运行一个简单的脚本。在 ~/project
目录下创建一个名为 hello.sh
的新文件,内容如下:
#!/bin/bash
echo "Hello from cron job!"
使脚本可执行:
chmod +x ~/project/hello.sh
现在,让我们添加一个新的 cron 任务,每分钟运行这个脚本:
crontab -e
这将打开 crontab 编辑器。在文件末尾添加以下行:
* * * * * /home/labex/project/hello.sh
这个 cron 任务将每分钟运行 hello.sh
脚本。
保存并退出 crontab 编辑器。
为了验证 cron 任务是否正在运行,等待一分钟并检查系统日志:
tail -n 5 /var/log/syslog
你应该会在日志中看到 "Hello from cron job!" 的消息。
在这一步中,你将学习如何使用 crontab
命令调度重复任务。
首先,让我们在 ~/project
目录下创建一个名为 backup.sh
的新脚本,用于执行简单的备份操作:
#!/bin/bash
echo "Backing up data to backup.txt"
date >> ~/project/backup.txt
使脚本可执行:
chmod +x ~/project/backup.sh
现在,让我们使用 crontab
调度这个脚本每 5 分钟运行一次:
crontab -e
在 crontab 编辑器中添加以下行:
*/5 * * * * /home/labex/project/backup.sh
这个 cron 任务将每 5 分钟运行一次 backup.sh
脚本。
保存并退出 crontab 编辑器。
为了验证 cron 任务是否正在运行,等待 5 分钟并检查 backup.txt
文件:
cat ~/project/backup.txt
你应该会看到每 5 分钟将当前日期和时间添加到文件中。
在这一步中,你将学习如何管理你的 crontab 条目,包括列出、编辑和删除 cron 任务。
首先,让我们列出 labex
用户的所有当前 crontab 条目:
crontab -l
你应该会看到你在前几步中创建的两个 cron 任务:
* * * * * /home/labex/project/hello.sh
*/5 * * * * /home/labex/project/backup.sh
要编辑 crontab,请使用以下命令:
crontab -e
这将打开 crontab 编辑器,你可以在其中添加、修改或删除 cron 任务条目。
让我们尝试删除 hello.sh
的 cron 任务。在 crontab 编辑器中,找到 * * * * * /home/labex/project/hello.sh
这一行并删除它。保存并退出编辑器。
为了验证 hello.sh
的 cron 任务是否已被删除,再次运行以下命令:
crontab -l
你应该只会看到 backup.sh
的 cron 任务保留下来。
现在,让我们通过在行首添加 #
来禁用 backup.sh
的 cron 任务:
crontab -e
在 */5 * * * * /home/labex/project/backup.sh
这一行的开头添加一个 #
。保存并退出编辑器。
为了验证 backup.sh
的 cron 任务是否已被禁用,运行以下命令:
crontab -l
你应该会看到 backup.sh
的行开头有一个 #
,表示它现在已被禁用。
在本实验中,你学习了如何使用 crontab
命令在 Linux 中调度重复任务。你首先检查了 labex
用户的当前 crontab 条目,发现没有调度任何 cron 任务。接着,你创建了一个名为 hello.sh
的简单脚本,并添加了一个新的 cron 任务,使其每分钟运行一次。为了验证 cron 任务是否正在运行,你检查了系统日志并看到了 "Hello from cron job!" 的消息。然后,你创建了一个名为 backup.sh
的新脚本,用于执行简单的备份操作,并使用 crontab
将其调度为每 5 分钟运行一次。