[Linux] 쓸만한 리눅스 cron과 간단한 명령

박원균·2021년 11월 1일
0

Linux

목록 보기
2/5
post-thumbnail

키보드 입력

입력 키설명
\C+a라인 처음으로 이동
\C+e라인 끝으로 이동
\C+r역 점진 탐색

Init 명령어

런 레벨의미
0시스템 중단(Halt)
1텍스트 기반의 단일 사용자 모드(single user mode)
2사용되지 않음(사용자가 지정 가능)
3텍스트 기반의 다중 사용자 모드
4사용되지 않음(사용자가 지정 가능)
5X-윈도우 기반의 다중 사용자 모드(로그인도 X-윈도우에서 이루어짐)
6시스템 리부팅

cron

cron은 유닉스 계열 운영체제에서 오랫동안 사용돼 온 작업 스케줄러입니다.
crontab이라는 설정 파일을 통해 수행할 작업과 수행할 일시를 지정하여 사용합니다. RHEL의 cron은 빅시 크론(vixie-cron)이라는 패키지를 사용했으나 버전6 부터는 빅시 크론 대신 cronie라는 패키지가 들어가있습니다.

정기적인 작업은 /etc/anacrontab 파일을 통해 수행합니다.

아래의 각 디렉토리 내용을 토대로 실행합니다.

  • 매일 작업 /etc/cron.daily
  • 주간 작업 /etc/cron.weekly
  • 월간 작업 /etc/cron.monthly

기본 설정된 매일 수행 작업은 서비스의 로그 파일을 정리하는 logrotate
키워드로 매뉴얼을 검색할 수 있게 인덱싱해주는 maktewhatis.cron
명령 등이 있습니다.

crontab

crontabcron이 실행할 명령어와 수행 시간을 지정하는 설정파일의 이름이자 명령어입니다.
crontab option 형식으로 실행하며 자주 사용되는 옵션은 아래와 같습니다

옵션

  • -l 목록보기 : 현재 사용자의 crontab에 등록된 내용을 터미널에 출력합니다.
  • -r 삭제 : 현재 사용자의 crontab에 등록된 내용을 모두 삭제합니다.
  • -e 편집 : 현재 사용자의 crontab을 편집기를 이용해 편집합니다.
?		?		?		?		?
분		시간		일		달		주일
(0-59)		(0-23)		(1-31)		(1-12)		((7|0)-6)

시간과 날짜를 지정하는 필드에 에스터리스트(*)를 지정할 경우 해당 필드의 모든 시간을 실행하겠다는 의미입니다.

crontab 동작 확인

$ service cron status
$ service cron start
$ service cron restart

작업 추가

$ crontab -e # 파일안에 형식에 맞추어 입력

예시

0,3,17-19,40 1-2 * * * ls
# 매일 오전 1시,2시에 매분 정각,3분,17분,18분,19분,40분에 ls 명령어를 실행하는 구문입니다.
# 근데 이렇게 하면 명령어가 출력이 안됩니다. 표준
0 23 * * * mysqldump -u root -p123 --databases mydb mydb1 > /root/mysqldump.sql
# 매일 밤 11시 정각에 mysqldump.sql로 백업합니다.
# mysqlDump.sh
#!/bin/bash
mysqldump -uroot -p123 --databases mydb mydb1 > /root/mysqldump.sql

0 23 * * * /mysqlDump.sh

# 안정성을 보장하기 하기위해서는 스크립트 파일을 생성하고 실행해주는것이 좋습니다.

cron 권한 관리

특정사용자만 cron을 사용하게 하거나 특정 사용자는 cron을 사용하지 못하도록 설정해야 할 때가 있을겁니다. cron은 다음과 같은 식으로 권한을 확인합니다.

  1. 만약 /etc/cron.allow 파일이 있다면 이 파알에 등록된 사용자만 cron을 사용할 수 있습니다.
  2. 만약 /etc/cron.allow이 없고 /etc/cron.deny 파일이 있다면 이 파일에 등록되지 않은 사용자만 cron을 사용할 수 있습니다.
profile
함바라기

0개의 댓글

관련 채용 정보