📜  安排作业 bash - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:09:23.225000             🧑  作者: Mango

概述

bash 是一种流行的 Unix shell 和命令语言,它在 Linux 和 macOS 上广泛使用。在 bash 中,您可以编写脚本来安排作业(任务)并自动化日常工作流程。这可以节省时间和精力,增加生产力。

安排作业

cron

使用 cron 工具可以在指定的时间自动运行作业,无需干预。以下是 cron 格式的表格:

|字段|意义|允许的值| |:--:|:--:|:--:| |分钟|0~59的整数|0-59| |小时|0~23的整数|0-23| |日|1~31的整数|1-31| |月|1~12的整数|1-12| |周几|0~6(0表示周日)|0-6|

要启用 cron,请键入以下命令:

crontab -e

然后可以向 crontab 文件中添加任务,例如:

# 每天晚上10点运行命令
0 22 * * * command
# 每周日清空系统日志
0 0 * * 0 truncate -s 0 /var/log/messages

注意,如果 command 是脚本,请确保它具有可执行权限,否则 cron 无法运行它。

at

at 可以在之后的某个指定时间运行命令。以下是使用 at 的示例:

# 在10分钟后执行一次命令
echo "command" | at now + 10 minutes
# 在明天上午10点运行命令
echo "command" | at 10am tomorrow
systemd.timer

systemd 是一种 Linux 系统管理器,它允许您以更可靠和可预测的方式安排作业。该系统管理器基于 systemd.timer 完成任务。以下是 systemd.timer 的示例:

[Unit]
Description=My Job

[Timer]
OnCalendar=*-*-* 10:00:00
Persistent=true

[Install]
WantedBy=timers.target

此示例将在每天上午10点运行任务,并在系统运行时保持启动。要启用此 systemd.timer,请键入以下命令:

systemctl enable my-job.timer

总结

无论您是需要自动化日常工作流程,还是想用脚本完成某些任务,bash 可以帮助您轻松安排作业。通过 cronatsystemd.timer,您可以在指定的时间自动运行命令、脚本或程序,从而节省时间并提高生产力。