it-swarm-ko.tech

내 컴퓨터에서 예약 된 모든 cron 작업 목록을 얻는 방법은 무엇입니까?

내 sysadmin이 내 컴퓨터에 많은 cron 작업을 설정했습니다. 몇시에 예정된 일정을 정확히 알고 싶습니다. 그 목록을 어떻게 얻을 수 있습니까?

215
Frank

리눅스 시스템 설정 방법에 따라 다음을 살펴볼 수 있습니다.

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

또한 많은 배포판에는 다음이 있습니다.

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

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

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

그 외에도 직장 (/var/spool/at/* 확인), anacron (/etc/anacrontab/var/spool/anacron/*) 및 내가 잊어 버린 다른 사람을 가질 수 있습니다.

150
jsbillings

대부분의 Crons (예 : Vixie-Cron -Debian/Ubuntu 기본값, Cronie-Fedora 기본값, Solaris Cron ...)를 사용하면 다음을 통해 현재 사용자에 대한 예약 된 cron 작업 목록을 얻을 수 있습니다.

$ crontab -l

또는 다른 사용자를 통해

# crontab -l -u juser

모든 사용자에 대한 crontab을 얻으려면 모든 사용자를 반복하고이 명령을 호출하면됩니다.

또는 스풀 파일을 찾아 볼 수 있습니다. 일반적으로 /var/spool/cron에 저장됩니다 (예 : vcron 다음 디렉토리

/var/spool/cron/crontabs

시스템 전체 crontab을 통해 작업을 구성 할 수있는 루트 사용자를 제외한 모든 사용자의 구성된 crontab을 모두 포함합니다.

/etc/crontab

cronie (Fedora/CentOS의 기본값)을 사용하면 시스템 크론 작업을위한 .d 스타일 구성 디렉토리도 있습니다.

/etc/cron.d

항상 그렇듯이 .d 디렉토리는 다른 패키지의 일부인 구성 항목의 유지 관리를 단순화합니다.

편의상 대부분의 배포판은 링크/저장된 스크립트가 주기적으로 실행되는 디렉토리를 제공합니다.

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

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

Systemd (예 : Fedora, CentOS 7, ...)를 사용하면 타이머 단위 를 통해 주기적 작업 실행을 추가로 구성 할 수 있습니다. 활성화 된 시스템 타이머는 다음을 통해 표시 될 수 있습니다.

$ systemctl list-timers

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

$ 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

(일반 서비스 단위와 마찬가지로 타이머 시스템은 오른쪽 systemd config 디렉토리에 기호 링크를 작성하여 활성화됩니다.)

또한보십시오:

149
maxschlepzig

주어진 사용자에 대한 모든 크론을 나열합니다.

crontab -u 사용자 이름 -l;

모든 사용자의 모든 크론을 나열하려면

슈퍼 유저로 실행

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