用于计算 crontab 中活动 cron 作业数量的命令

用于计算 crontab 中活动 cron 作业数量的命令

问题陈述

我有 5 个 Solaris 机器,有些有 Solaris 10,有些有 Solaris 9。
它们的 crontab 中都有很多 cronjobs。

我想知道可用的活动 cronjobs 的数量,所以我手动计算定时任务

现在我正在寻找一个命令 [我正在使用的 bash shell] 来计算活动 cronjobs 的数量。

我已经尝试过crontab -l|wc -l,但我的 crontab 包含许多注释行,这些注释行也与我的命令一起计数。 定时任务

我尝试过的

crontab -l|wc -l

我期待什么

用于计算活动 cronjob 数量(不包括注释行)的 bash shell 命令。

答案1

您需要删除所有不以数字(分钟)开头的内容。但要实现这一点,请先删除所有前导空格。这将消除注释、空行、变量赋值等。

crontab -l 2>/dev/null | sed 's/^ *//;/^[*@0-9]/!d' | wc -l

答案2

crontab -l | grep -v '^#'

简单的。

号码?

crontab -l | grep -v '^#' | wc -l

或者

crontab -l | grep -c -v '^#'

(最后一个受到此处答案的启发)。

这将为您提供计划的 cron 作业(数量),而不是活动的 cron 作业,这可能意味着当前正在运行的作业。

答案3

为什么要删除字符?请尝试以下操作:

$ crontab -l | grep -c "^[0-9*]"

答案4

你可以这样做:

PATH=`getconf PATH`:$PATH # needed on Solaris to get POSIX compliant versions
                          # of the basic Unix utilities

crontab -l | LC_ALL=C grep -c '^[[:blank:]]*[0-9@*]'

即计算以 ASCII 十进制数字 或*或开头的行@(Solaris 目前不支持后者cron,但其他一些实现支持),前面有 0 个或多个空格(在 C 语言环境中,即 SPC 或 TAB)。

相关内容