문제 설명
나는 5대의 Solaris 시스템을 가지고 있는데, 일부는 Solaris 10을, 일부는 Solaris 9를 사용하고 있습니다.
그들은 모두 crontab에 많은 cronjob을 가지고 있습니다.
사용 가능한 활성 cronjob 수를 알고 싶어서 수동으로 계산합니다.예약 된 일들.
이제 활성 cronjob 수를 계산하는 명령 [내가 사용하는 bash 쉘]을 찾고 있습니다.
나는 이것을 시도했지만 crontab -l|wc -l
내 crontab에는 내 명령과 함께 계산되는 많은 주석 줄이 포함되어 있습니다.
내가 시도한 것
crontab -l|wc -l
내가 기대했던 것
활성 cronjob 수를 계산하는 Bash 쉘 명령입니다(주석 행 제외).
답변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 '^#'
(마지막 것은 여기의 답변에서 영감을 얻었습니다).
그러면 현재 실행 중인 작업을 의미하는 활성 크론 작업 대신 예약된 크론 작업(번호)이 제공됩니다.
답변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 10진수 또는 (Solaris는 현재 후자를 지원하지 않지만 일부 다른 구현에서는 지원함)로 *
시작 하고 0개 이상의 공백(C 로케일에서는 SPC 또는 TAB)이 앞에 오는 행을 계산합니다.@
cron