以给定间隔重复执行 Linux 命令
Linux 是一款强大的操作系统,提供各种命令行工具来执行各种任务。其中一项经常需要执行的任务是以给定间隔重复执行命令。此功能出于多种原因可能很有用,例如监视系统性能、运行计划任务和执行备份。
在本文中,我们将探讨如何在 Linux 中以给定间隔重复执行命令。我们将讨论实现此目的的各种方法,包括使用 cron 实用程序、watch 命令和 sleep 命令。
使用 Cron 重复执行命令
cron 实用程序是类 Unix 操作系统(包括 Linux)中的基于时间的作业调度程序。它允许用户通过将任务计划为在指定间隔运行来自动执行各种任务。要使用 cron 实用程序重复执行命令,请按照以下步骤操作 -
步骤 1 - 通过运行以下命令打开 crontab 文件 -
$ crontab -e
这将在您的默认文本编辑器中打开 crontab 文件。
步骤 2 - 通过指定要重复的命令以及要运行的间隔来添加新的 cron 作业。例如,如果您想每 5 分钟运行一次 ls 命令,请将以下行添加到 crontab 文件中 -
*/5 * * * * ls
上述 cron 表达式指定应每 5 分钟运行一次 ls 命令。五个星号分别表示以下字段 -
第一个字段表示命令应运行的分钟(0-59)。
第二个字段表示命令应运行的小时(0-23)。
第三个字段表示命令应运行的月份中的日期(1-31)。
第四个字段表示命令应运行的月份(1-12)。
第五个字段表示命令应运行的星期几(0-6,其中 0 为星期日)。
步骤 3 - 保存并关闭 crontab 文件。
以上示例将每 5 分钟运行一次 ls 命令。您可以修改 cron 表达式以满足您的需求。
使用 Watch 命令重复执行命令
watch 命令是一个实用程序,允许用户重复运行命令并在终端上实时显示输出。要使用 watch 命令重复执行命令,请按照以下步骤操作 -
步骤 1 - 打开终端并键入以下命令 -
$ watch -n <interval> <command>
将 <interval> 替换为您希望命令重复的时间间隔(以秒为单位)。将 <command> 替换为您要重复的命令。
例如,如果您想每 5 秒运行一次 top 命令,请键入以下命令 -
$ watch -n 5 top
上述命令将每 5 秒运行一次 top 命令,并在终端上显示输出。
步骤 2 - 要停止 watch 命令,请按 Ctrl+C。
watch 命令可用于监视系统性能或监视长时间运行命令的输出。
使用 Sleep 命令重复执行命令
sleep 命令是一个实用程序,它使 shell 等待指定时间,然后再执行下一个命令。要使用 sleep 命令重复执行命令,请按照以下步骤操作 -
步骤 1 - 打开终端并键入以下命令 -
$ while true; do <command>; sleep <interval>; done
将 <command> 替换为您要重复的命令。将 <interval> 替换为您希望命令重复的时间间隔(以秒为单位)。
例如,如果您想每 5 秒运行一次 date 命令,请键入以下命令 -
$ while true; do date; sleep 5; done
上述命令将每 5 秒运行一次 date 命令。
步骤 2 - 要停止命令,请按 Ctrl+C。
sleep 命令可用于执行备份或运行其他计划任务。
以下是一些在给定间隔重复执行 Linux 命令的其他提示和示例 -
使用 at 命令
at 命令是一个实用程序,允许您安排命令在特定时间运行。要使用 at 命令以给定间隔重复执行命令,请按照以下步骤操作 -
步骤 1 - 打开终端并键入以下命令 -
$ echo "<command>" | at now + <interval>
将 <command> 替换为您要重复的命令。将 <interval> 替换为您希望命令重复的时间间隔(以分钟或小时为单位)。
例如,如果您想每 30 分钟运行一次 ls 命令,请键入以下命令 -
$ echo "ls" | at now + 30 minutes
上述命令将每 30 分钟运行一次 ls 命令。
步骤 2 - 要停止命令,请使用 atq 命令列出作业,然后使用 atrm 命令删除作业。
使用 Bash 脚本
您还可以使用 bash 脚本以给定间隔重复执行命令。为此,请按照以下步骤操作 -
步骤 1 - 打开文本编辑器并创建一个新文件。键入以下代码 -
#!/bin/bash while true do <command> sleep <interval> done
将 <command> 替换为您要重复的命令。将 <interval> 替换为您希望命令重复的时间间隔(以秒为单位)。
例如,如果您想每 5 秒运行一次 date 命令,请键入以下代码 -
#!/bin/bash while true do date sleep 5 done
步骤 2 - 使用 .sh 扩展名保存文件,例如 repeat_command.sh。
步骤 3 - 通过运行以下命令使脚本可执行 -
$ chmod +x repeat_command.sh
步骤 4 - 通过键入以下命令运行脚本 -
$ ./repeat_command.sh
上述命令将运行 bash 脚本,该脚本将以给定间隔运行指定的命令。
组合命令
您还可以组合多个命令并在给定间隔运行它们。例如,要每 5 分钟运行一次 free 命令和 df 命令,请键入以下命令 -
$ while true; do free; df; sleep 300; done
上述命令将每 5 分钟运行一次 free 命令和 df 命令。
结论
以给定间隔重复执行 Linux 命令对于各种任务可能很有用,包括监视系统性能、运行计划任务和执行备份。在本文中,我们探讨了实现此目的的各种方法,包括使用 cron 实用程序、watch 命令和 sleep 命令。每种方法都有其优点和缺点,因此请选择最适合您需求的方法。
请记住,在终端中运行命令时始终要谨慎,并在执行命令之前确保您了解每个命令的作用。通过本文获得的知识,您现在可以轻松地在给定间隔重复执行 Linux 命令。