cron 작업 및 해당 경로로 실행되는 모든 스크립트 목록을 가져옵니다.

cron 작업 및 해당 경로로 실행되는 모든 스크립트 목록을 가져옵니다.

스크립트나 터미널 명령을 찾고 있습니다.모든 스크립트 나열(경로를 사용하는 것이 좋습니다) cron, cron.daily를 통해 정기적으로 실행합니다. 나는 스크립트 기간에 대한 필터를 찾는 것이 아니라 모든 스크립트의 목록을 찾고 있습니다(그러나 일부 관리자는 그러한 필터를 원할 수도 있습니다).

목적:정기적으로 실행되는 모든 스크립트를 기록하여 디버깅이나 문제 해결, 업데이트, 새 시스템으로의 이동이 쉽고 효율적으로 이루어지도록 하세요.

답변1

루트가 아닌 사용자가 cron에서 실행하는 모든 스크립트의 파일 이름과 스크립트 유형을 찾으려면(사용자 인식 없음):

find /var/spool/cron/crontabs/ -type f ! -name 'root' \
  -exec awk '!/^[[:blank:]]*(#|$)/ {print $6}' {} + | 
    xargs -d'\n' file | grep -i script
/home/cas/scripts/fetch.sh:               Bourne-Again shell script, ASCII text executable
/usr/local/sbin/backup-postgres.sh:       Bourne-Again shell script, ASCII text executable

루트가 아닌 사용자(ID 사용자)가 cron에서 실행하는 모든 실행 파일(바이너리 및 스크립트)을 찾으려면 다음을 수행하십시오.

find /var/spool/cron/crontabs/ -type f ! -name 'root' \
  -execdir awk '!/^[[:blank:]]*(#|$)/ {print FILENAME"\t"$6}' {} + |
  sed -e 's:^./::'
cas   /home/cas/scripts/fetch.sh
postgres      /usr/local/sbin/backup-postgres.sh

물론 이 두 가지 모두 루트로 실행되어야 합니다. 루트만이 모든 사용자의 crontab을 읽을 수 있습니다.

참고: crontab은 시스템의 다른 디렉터리에 있을 수 있습니다. cron 데몬에 대한 설명서를 확인하세요.

관련 정보