소개
리눅스에는 일정한 간격으로 프로세스를 실행하는 데 사용되는 cron이라는 데몬이 있습니다.
스크립트가 실행되도록 시스템의 특정 폴더를 검사하는 것입니다. 예를 들어 /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly 및 /etc/cron.monthly라는 폴더가 있습니다. / etc / crontab이라는 파일도 있습니다.
기본적으로 관련 폴더에 스크립트를 배치하여 규칙적으로 실행되도록 할 수 있습니다.
예를 들어 CTRL, ALT 및 T를 눌러 터미널 창을 열고 다음의 ls 명령을 실행하십시오.
ls / etc / cron *
매시간, 매일, 매주 및 매월 실행되는 프로그램 또는 스크립트 목록이 표시됩니다.
이 폴더의 문제점은 다소 모호하다는 것입니다. 예를 들어, 매일 스크립트가 하루에 한 번 실행되지만 스크립트는 해당 날짜에 실행될 시간을 제어 할 수 없습니다.
그것이 crontab 파일이 들어오는 곳입니다.
crontab 파일을 편집하면 원하는 날짜와 시간에 스크립트 나 프로그램을 실행할 수 있습니다. 예를 들어 오후 6시에 매일 밤 파일을 백업하고 싶을 수도 있습니다.
권한
crontab 명령을 사용하려면 사용자가 crontab 파일을 편집 할 수있는 권한이 있어야합니다. 기본적으로 crontab 권한을 관리하는 데 사용되는 두 개의 파일이 있습니다.
- /etc/cron.allow
- /etc/cron.deny
/etc/cron.allow 파일이 있으면 crontab 파일을 편집하려는 사용자가 해당 파일에 있어야합니다. cron.allow 파일이 없지만 /etc/cron.deny 파일이 있으면 사용자는 해당 파일에 존재해서는 안됩니다.
두 파일이 모두 존재하면 /etc/cron.allow는 /etc/cron.deny 파일을 겹쳐 씁니다.
두 파일이 모두 존재하지 않으면 사용자가 crontab을 편집 할 수 있는지 여부에 따라 시스템 구성에 따라 다릅니다.
루트 사용자는 항상 crontab 파일을 편집 할 수 있습니다. su 명령 을 사용 하여 루트 사용자로 전환하거나 sudo 명령 을 사용하여 crontab 명령을 실행할 수 있습니다.
Crontab 파일 편집
권한이있는 각 사용자는 고유 한 crontab 파일을 만들 수 있습니다. cron 명령은 기본적으로 여러 crontab 파일의 존재를 확인하고 모두 실행합니다.
crontab 파일이 있는지 확인하려면 다음 명령을 실행하십시오.
crontab -l
crontab 파일이 없으면 "no crontab for
crontab 파일을 만들거나 편집하려면 다음 명령을 실행하십시오.
crontab -e
기본적으로 기본 편집기가 선택되어 있지 않으면 사용할 기본 편집기를 선택하라는 메시지가 표시됩니다. 개인적으로 나는 사용하기에 상당히 직선적이며 터미널에서 실행되므로 나노 를 사용하는 것을 좋아합니다.
열리는 파일에는 많은 정보가 있지만 중요한 부분은 주석 섹션이 끝나기 직전의 예입니다 (주석은 #로 시작하는 줄로 표시됩니다).
# mh dom mon dow 명령
0 5 * * 1 tar -zcf /var/backups/home.tgz/ home /
crontab 파일의 각 행에 맞는 6 가지 정보가 있습니다.
- 명령이 실행되는 날의 분 (m)
- 명령이 실행되는 시간 (h)
- 명령 실행 날짜 (돔)
- 명령을 실행할 달 (월)
- 명령이 실행되는 요일 (다우)
- 명령
명령을 제외한 각 항목에 대해 와일드 카드 문자를 지정할 수 있습니다. 다음 예제 crontab 줄을보십시오.
30 18 * * * tar -zcf /var/backups/home.tgz/ home /
위의 명령어가 말하는 것은 30 분, 18 시간 그리고 어느 날, 매일, 매월, 매일은 홈 디렉토리를 / var / backups 폴더로 압축 하고 압축 하는 명령을 실행합니다.
매시간 30 분에 명령을 실행하려면 다음 명령을 실행할 수 있습니다.
30 * * * 명령
오후 6시 이후에 매분마다 명령을 실행하려면 다음 명령을 실행할 수 있습니다.
* 18 * * 명령
따라서 crontab 명령 설정에주의해야합니다.
예를 들면 :
* * * 1 * 명령
위의 명령은 1 월에 매주 매일 매시간마다 실행됩니다. 나는 그것이 당신이 원하는 것이라고 의심합니다.
1 월 1 일 오전 5시에 명령을 실행하려면 crontab 파일에 다음 명령을 입력하십시오.
0 5 1 1 * 명령
Crontab 파일을 제거하는 방법
대부분의 경우 crontab 파일을 제거하고 싶지는 않지만 crontab 파일에서 일부 행을 제거하고자 할 수 있습니다.
그러나 사용자의 crontab 파일을 제거하려면 다음 명령을 실행하십시오.
crontab -r
이렇게하는 더 안전한 방법은 다음 명령을 실행하는 것입니다.
crontab -i
이 질문에 "너 괜찮 니?"라고 묻습니다. crontab 파일을 제거하기 전에.