目录
[使用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:确保即使系统关闭过,任务仍能在协议时间执行。
依据需要和系统环境选择合适的方案来执行和管理计划任务。