目录
一、cron计划任务
Cron 是一个用于在 Unix 和类 Unix 操作系统中安排周期性任务的工具。通过 Cron,用户可以指定在特定的时间执行特定的命令或脚本。下面是一个示例说明如何使用 Cron 安排周期性任务:
假设我们有一个脚本 backup.sh
,用于备份系统中的重要数据到远程服务器。我们希望每天凌晨 3 点执行这个备份任务。
-
编写备份脚本:
创建一个名为
backup.sh
的脚本,内容类似于以下示例:#!/bin/bash # 备份文件到远程服务器 rsync -avz /path/to/data/ user@remote-server:/backup/location/
-
请确保将
/path/to/data/
替换为实际要备份的数据路径,以及user@remote-server:/backup/location/
替换为远程服务器的用户名和备份目标路径。 -
设置 Cron 任务:
使用
crontab -e
命令编辑当前用户的 Cron 任务列表,并添加以下行:0 3 * * * /path/to/backup.sh
这行表示每天凌晨 3 点执行
/path/to/backup.sh
脚本。每个字段的含义如下:0
:分钟(0 到 59)3
:小时(0 到 23)*
:每月的某一天(1 到 31)*
:月份(1 到 12)*
:星期几(0 表示星期日,1 表示星期一,依此类推)
因此,
0 3 * * *
表示每天凌晨 3 点。 -
保存并退出编辑器。
如果使用
crontab -e
命令打开的是默认编辑器,通常可以按Ctrl + X
,然后按Y
保存并退出。 -
验证 Cron 任务:
你可以使用
crontab -l
命令查看当前用户的 Cron 任务列表,以确保新任务已经添加。
这样就设置好了一个每天凌晨 3 点执行备份任务的 Cron 任务。Cron 还支持更复杂的时间规则,例如每周执行、每月执行等。
二、at一次性任务
at
是一个用于在 Unix 和类 Unix 系统中安排一次性任务的命令。通过 at
,用户可以指定在特定的时间执行特定的命令或脚本。以下是一个示例说明如何使用 at
安排一次性任务:
假设我们希望在下个小时执行一个简单的命令,例如输出一条消息到文件中。
-
创建任务脚本或命令
在这个例子中,我们不需要创建脚本文件,只需准备一个简单的命令。例如,我们想要将一条消息写入到文件中,可以使用
echo
命令:echo "Hello, this is a scheduled task." > /path/to/output.txt
请将
/path/to/output.txt
替换为实际的输出文件路径。 -
安排一次性任务
使用
at
命令安排任务,指定要执行任务的时间。例如,假设当前时间是 10:30 AM,我们希望任务在 11:00 AM 执行:at 11:00 AM
这将启动一个新的
at
会话,并在提示符下等待输入要执行的命令或脚本。在提示符下输入要执行的命令或脚本,然后按下Ctrl + D
键保存并退出。例如:echo "Hello, this is a scheduled task." > /path/to/output.txt
这将在下一个小时的 11:00 AM 执行指定的命令。
-
验证任务安排
你可以使用
atq
命令来查看当前计划中的at
任务列表,以确保任务已经安排。atq
这会列出当前计划中的
at
任务列表及其编号。 -
等待执行
等待指定的时间,任务将在指定时间执行。
这样就设置好了一个一次性任务,它会在下个小时执行一次,执行的命令会将一条消息写入到指定的文件中。at
还支持更复杂的时间规则,例如相对时间(例如,"in 1 hour"),以及日期时间的格式。