내 컴퓨터에서 예약된 모든 크론 작업 목록을 얻으려면 어떻게 해야 합니까?

내 컴퓨터에서 예약된 모든 크론 작업 목록을 얻으려면 어떻게 해야 합니까?

내 시스템 관리자가 내 컴퓨터에 여러 크론 작업을 설정했습니다. 정확히 언제 예정되어 있는지 알고 싶습니다. 이 목록을 어떻게 얻을 수 있나요?

답변1

대부분의 Cron의 경우(예:빅시-크론- Debian/Ubuntu 기본값, Cronie - Fedora 기본값, Solaris Cron...) 다음을 통해 현재 사용자에 대해 예약된 cron 작업 목록을 얻을 수 있습니다.

$ crontab -l

또는 다른 사용자를 통해

# crontab -l -u juser

모든 사용자의 crontab을 얻으려면 모든 사용자를 반복하고 이 명령을 호출할 수 있습니다.

또는 스풀 파일을 찾을 수 있습니다. 일반적으로 /var/spool/cronvcron과 같은 디렉터리에 저장됩니다.

/var/spool/cron/crontabs

모든 사용자에 대한 모든 구성이 포함된 crontab - 루트 사용자 외에도 루트 사용자는 다음 위치에 있는 시스템 전체 crontab을 통해 작업을 구성할 수도 있습니다.

/etc/crontab

그리고절친한 친구.d(Fedora/CentOS의 기본값) 시스템 cron 작업을 위한 스타일 구성 디렉터리 도 있습니다 .

/etc/cron.d

(언제나 그렇듯이 이 .d디렉토리는 다른 패키지에 속하는 구성 항목의 유지 관리를 단순화합니다.)

편의를 위해 대부분의 배포판에서는 링크/저장 스크립트가 정기적으로 실행되는 디렉터리도 제공합니다. 예:

/etc/cron.daily
/etc/cron.hourly
/etc/cron.monthly
/etc/cron.weekly

이러한 스크립트는 일반적으로 run-parts시스템 crontab의 항목을 통해 또는 다음을 통해 적시에 실행됩니다.나크론.

그리고체계(예: Fedora, CentOS 7...) 정기적인 작업 실행은 다음을 통해 구성할 수도 있습니다.타이머 장치. 활성화된 시스템 타이머는 다음을 통해 표시될 수 있습니다.

$ systemctl list-timers

루트가 아닌 사용자는 타이머가 구성된 사용자 systemd 인스턴스를 실행할 수 있습니다. 예를 들어, Fedora에서는 현재 로그인한 각 사용자에 대해 기본적으로 사용자 systemd 인스턴스가 시작됩니다. 다음을 통해 식별할 수 있습니다.

$ ps aux | grep 'systemd[ ]--user'

이러한 사용자 타이머는 다음을 통해 나열될 수 있습니다.

$ systemctl --user list-timers

명령을 실행하는 또 다른 방법은 list-timers타이머 장치 파일(모드: ) 및 해당 기호 링크에 대한 일반 시스템 및 사용자 시스템 구성 디렉터리를 검색하는 것입니다.*.timer

$ find /usr/lib/systemd/ /etc/systemd -name '*.timer'
$ find /home '(' -path '/home/*/.local/share/systemd/user/*' \
              -o -path '/home/*/.config/systemd/*' ')' \
      -name '*.timer'  2> /dev/null

(일반 서비스 장치와 마찬가지로 올바른 시스템 구성 디렉터리에 심볼릭 링크를 생성하여 타이머 장치를 활성화합니다.)

또한보십시오:

답변2

Linux 시스템 설정 방법에 따라 다음을 확인할 수 있습니다.

  • /var/spool/cron/*(사용자 crontab)
  • /etc/crontab(시스템 전체 crontab)

또한 많은 배포판에는 다음이 포함됩니다.

  • /etc/cron.d/* 이러한 구성은 동일한 구문을 갖습니다./etc/crontab

  • /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly,/etc/cron.monthly

이는 디렉터리 이름에 따라 매시간, 매일, 매주 또는 매월 실행되는 실행 파일이 포함된 단순한 디렉터리입니다.

게다가 at jobs(확인 /var/spool/at/*), anacron( /etc/anacrontab/var/spool/anacron/*) 및 아마도 내가 잊어버린 다른 항목을 가질 수 있습니다.

답변3

특정 사용자의 모든 크론을 나열합니다.

crontab -u 사용자 이름 -l;

모든 사용자에 대한 모든 cron 나열

슈퍼유저로 실행

#!/bin/bash
#List all cron jobs for all users
for user in `cat /etc/passwd | cut -d":" -f1`;
do 
crontab -l -u $user;
done

답변4

모든 cron 작업을 나열할 수 있습니다(저는 출력의 위치를 ​​나열하기 위해 more를 사용합니다).

sudo sh -c 'more /etc/crontab /etc/cron.d/* /var/spool/cron/crontabs/* 2>/dev/null' | less

또는 코멘트 없이:

sudo sh -c 'more /etc/crontab /etc/cron.d/* /var/spool/cron/crontabs/* 2>/dev/null' \
   | grep "^\s*[^#]"

crontab에는 cron.hourly, Daily, Weekly 및 Monthly에서 스크립트를 실행하기 위한 항목이 있습니다. 다음을 나열할 수 있습니다.

ls /etc/cron.hourly /etc/cron.daily /etc/cron.weekly /etc/cron.monthly

관련 정보