run-parts – run scripts or programs in a directory
:: 특정디렉토리내에 스크립트나 프로그램을 실행시키는 명령어로 사전식(directory)….즉 알파벳 순서대로 정렬시켜서 실행하는 명령어로 주로 cron 서비스와 함께 이용됩니다.
테스트용도로 사용하고 있는 서버중 유독 Ubuntu 운영체제에서만 cron 활용 디렉토리에서 직접작성한 스크립트만 실행하지 않는일이 생겼다.
다행히 원인은 man 페이지만으로도 충분히 문제는 풀렸다.
# man run-parts
………………………….. |
/etc/cron.hourly 안에 .sh 파일형태로 저장한게 문제가 되었던거다.
※ 실행스크립튼 대/소문자, 숫자, 밑줄, 하이픈만 가능
/etc/cron.hourly# ls test_script.sh # run-parts --list /etc/cron.hourly/ --> 아무런 리스트가 출력되지 않는다. /etc/cron.hourly# ls test_script.sh # run-parts --list /etc/cron.hourly/ /etc/cron.hourly/test_script.sh
또 한가지 CentOS / RHEL 계열에서는 특이점이 없었다.
똑같이 CRON 으로 run-parts 명령어를 이용하고 있음에도….여기서는 잘실행되고 있는것이다.
CentOS 에서는 .sh 파일도 출력이된다. 이건 run-parts 에서 지원하는 옵션이 서로 다른걸 봐서는 운영체제에서 지원하는 run-parts 버전문제로 보여진다.
OS : CentOS 7.X
# run-parts --list /etc/cron.hourly/ /etc/cron.hourly/0anacron /etc/cron.hourly/test_script.sh # run-parts Usage: run-parts [--list | --test] <dir>
OS : Ubuntu 16.04
# run-parts --help Usage: run-parts [OPTION]... DIRECTORY --test print script names which would run, but don't run them. --list print names of all valid files (can not be used with --test) -v, --verbose print script names before running them. --report print script names if they produce output. --reverse reverse execution order of scripts. --exit-on-error exit as soon as a script returns with a non-zero exit code. --lsbsysinit validate filenames based on LSB sysinit specs. --new-session run each script in a separate process session --regex=PATTERN validate filenames based on POSIX ERE pattern PATTERN. -u, --umask=UMASK sets umask to UMASK (octal), default is 022. -a, --arg=ARGUMENT pass ARGUMENT to scripts, use once for each argument. -V, --version output version information and exit. -h, --help display this help and exit.