目录
[使用at 步骤说明](#使用at 步骤说明)
[1. Cron Jobs](#1. Cron Jobs)
[2. Systemd Timers](#2. Systemd Timers)
[3. Anacron](#3. Anacron)
[4. 使用脚本和计划器工具](#4. 使用脚本和计划器工具)
使用at 步骤说明
-
更新包信息:
sudo apt-get update
: 更新包信息,使系统识别最新的软件包。
-
安装
at
命令:sudo apt-get install at
: 在 Debian/Ubuntu 上安装at
。sudo yum install at
: 在 CentOS/RHEL 上安装at
。sudo dnf install at
: 在使用dnf
(如 Fedora) 时安装at
。
-
启动
atd
服务:sudo systemctl start atd
: 启动atd
服务,负责处理at
命令的任务。sudo systemctl enable atd
: 配置使atd
在系统重启后自动启动。
-
安排任务:
echo "python run_pyspark.py" | at 00:30 tomorrow
: 安排在明天的00:30运行任务。echo "python run_pyspark.py" | at 18:00
: 安排在今天的18:00运行任务。echo "python run_pyspark.py > /path/to/logfile.log 2>&1" | at 18:00
: 在今天的18:00运行任务,同时将输出和错误日志记录到指定日志文件中。
-
管理任务队列:
atq
: 查看当前任务队列以获得任务编号。atrm <job_number>
: 取消指定编号的任务。
使用注意事项
- 服务要求 : 确保
atd
服务运行正常。 - 权限要求 : 使用
sudo
仅对需要管理员权限的操作。at
本身不需要sudo
。 - 日志记录: 明确指定日志文件路径以便检查任务执行输出。
这些命令统合使用可以实现根据时间计划任务的执行,但注意每次计划修改后任务可能需重新安排,以确保正确执行。
除了 at
命令,你还有其他方法可以在 Unix/Linux 系统上计划任务。以下是几种常用方案:
1. Cron Jobs
cron
是用于安排周期性任务的工具,适合长期定期任务。例如每日、每周或每月执行的任务。要使用 cron
,可以执行以下步骤:
-
编辑 Cron 表 :
bash复制代码
crontab -e
添加新任务,比如每天00:30执行:复制代码
30 0 * * * shop run run_pyspark.shop
-
日志记录 :如果需要将输出写入日志文件,可以这样:
复制代码
30 0 * * * shop run run_pyspark.shop > /path/to/logfile.log 2>&1
-
查看和管理任务 :
- 查看当前用户的cron任务:
crontab -l
- 删除cron任务:
crontab -r
- 查看当前用户的cron任务:
2. Systemd Timers
systemd
提供了定时器功能,可以创建具备复杂计划规则的任务。适合现代 Linux 系统。
-
创建定时器单元文件 :在
/etc/systemd/system/
中创建你的任务。- 定时器文件
.timer
- 服务文件
.service
,指定要执行的任务。
- 定时器文件
-
启用和启动定时器 :
bash复制代码
sudo systemctl enable your-timer-name.timer sudo systemctl start your-timer-name.timer
3. Anacron
anacron
适合非全天候运行的系统,定期执行不严格要求在特定时间运行的任务。
4. 使用脚本和计划器工具
某些系统上可以利用任务调度工具如 scheduler
、jobber
,它们提供了更高层次的任务管理和计划能力。
选择方法
- 使用
cron
:适用于频繁且定期的任务。 - 使用
at
:适合一次性任务。 - 使用
systemd timers
:现代 Linux 的备选方案,灵活强大。 - 使用
anacron
:确保即使系统关闭过,任务仍能在协议时间执行。
依据需要和系统环境选择合适的方案来执行和管理计划任务。