介绍
作为一名系统管理员,实现任务自动化是一项核心职责。at 和 cron 工具是 Linux 上调度任务的基础工具。在本挑战中,你将练习使用 at 调度一次性作业,并使用 cron 调度周期性作业。
使用 at 调度一次性任务
at 命令用于调度在未来某个特定时间执行一次的命令。
任务
- 使用
at命令调度一个在一分钟后运行的任务。 - 验证该任务是否创建了包含指定内容的文件。
要求
- 调度一个从现在起一分钟后运行的任务。
- 该任务必须执行命令
echo "This is a scheduled task" > /home/labex/project/scheduled_task.txt。 - 任务执行后,文件
/home/labex/project/scheduled_task.txt必须存在,并且包含文本This is a scheduled task。
示例
任务执行后,/home/labex/project/scheduled_task.txt 的内容应为:
This is a scheduled task
提示
- 使用时间规格
now + 1 minute来调度任务。 - 输入
at命令后,你将进入一个新的提示符界面。输入你的命令并按回车键。 - 要保存作业并退出
at提示符,请按Ctrl+D。
使用 cron 调度周期性任务
cron 守护进程用于按定期的时间间隔执行预定命令。你可以使用 crontab 命令管理你的调度任务。
任务
- 创建一个每分钟运行一次命令的 cron 作业。
- 验证 cron 作业是否创建并更新了日志文件。
要求
- 使用
crontab -e命令编辑当前用户的 crontab。 - 添加一个 cron 作业,执行命令
echo "This is a recurring task" >> /home/labex/project/recurring_task.log。 - 该作业必须配置为每天、每小时的每一分钟运行。
- 文件
/home/labex/project/recurring_task.log应该被创建,并且每分钟都会追加新的文本。
示例
在 cron 作业运行几分钟后,/home/labex/project/recurring_task.log 的内容应类似于:
This is a recurring task
This is a recurring task
This is a recurring task
提示
crontab -e命令会在文本编辑器(通常是vi)中打开你的 crontab 文件。- 每分钟运行一次的 cron 作业格式为
* * * * * command_to_run。 - 如果编辑器是
vi,按i进入插入模式,输入你的内容,按Esc退出插入模式,然后输入:wq并按回车键保存并退出。
总结
在本挑战中,你学习了如何在 Linux 系统上实现任务自动化。你练习了使用 at 命令调度未来执行的一次性作业,并通过编辑 crontab 使用 cron 设置了周期性任务。这些是任何系统管理员管理日常维护和其他自动化流程的必备技能。



