리눅스 / crontab 사용법

cron & crontab

cron은 특정 시간에 특정 작업을 수행하게 하는 시스템 대몬이다. 백업, 캐시 메모리 비우기 등 주기적으로 어떤 작업을 해야할 때 유용하다.

crontab은 시간과 작업을 적은 텍스트 파일이다. 사용자별로 파일이 존재한다. cron은 모든 사용자의 crontab 파일을 찾아서, 적혀진 일정대로 작업을 수행한다.

작업 목록 보기

예약 작업 목록을 보고 싶다면 다음과 같이 명령한다. 사용자의 crontab 파일의 내용이 출력된다.

# crontab -l

작업 삭제하기

예약 작업을 모두 삭제하고 싶다면(crontab 파일 내용을 다 지우고 싶다면) 다음과 같이 명령한다.

# crontab -r

작업 수정하기

예약 작업을 만들거나 수정하고 싶다면 다음과 같이 명령한다. crontab 파일이 없다면 새로 만들고, 있다면 그 파일을 연다.

# crontab -e

작업 추가하기

형식

작업을 추가하는 형식은 다음과 같다.

minute hour day month weekday command
  • minute : 0 - 59
  • hour : 0 - 23
  • day : 1 - 31
  • month : 1 - 12
  • weekday : 0 - 6 (0 : 일요일)
  • command : 수행하려는 작업 명령어

특수한 값

  • *는 범위 내의 모든 값이다.
    예를 들어 minute의 값으로 *가 있다면 매분, hour의 값으로 *가 있다면 매시간을 뜻한다.
  • 쉼표로 구분된 숫자는 각각의 값이다.
    예를 들어 minute의 값으로 10,20이 있다면 10분과 20분을 뜻한다.
  • -기호로 연결된 숫자는 범위이다.
    예를 들어 hour의 값으로 2-10이 있다면 2시부터 10시까지를 뜻한다.
  • minute의 값으로 */10이 있다면 10분마다, hour의 값으로 */6이 있다면 6시간마다를 뜻한다.

예제

  • 매분, 매시간, 매일, 매월, 매요일, 즉 1분마다 /root/backup.sh를 실행하시오.
* * * * * /root/backup.sh
  • 0분, 4시, 매일, 매월, 매요일, 즉 매일 4시에 /root/backup.sh를 실행하시오.
0 4 * * * /root/backup.sh
  • 0분, 4시, 매일, 매월, 월요일부터 금요일, 즉 평일 4시에 /root/backup.sh를 실행하시오.
0 4 * * 1-5 /root/backup.sh
  • 10분 간격, 4시, 매일, 매월, 매요일, 즉 매일 4시, 4시 10분, 4시 20분, 4시 30분, 4시 40분, 4시 50분에 /root/backup.sh를 실행하시오.
*/10 4 * * * /root/backup.sh
같은 카테고리의 다른 글

Ubuntu 16.04 / SASS 설치하는 방법

우분투 16.04에 SASS를 설치하는 방법은 두 가지가 있습니다. 방법 1 apt install ruby-sass 방법 2 apt install ruby gem install sass 설치되었는지 확인하는 방법 sass -v SASS 버전이 출력되면 제대로 설치된 것입니다. Sass 3.4.23 (Selective Steve) 참고 최신 버전의 SASS를 사용하고 싶다면 방법 2로 설치합니다.

Rocky Linux 9 / Apache / Virtulahost 만드는 방법

Rocky Linux 9 / Apache / Virtulahost 만드는 방법

하나의 서버에서 여러 사이트를 운영할 수 있다. Rocky Linux 9에서 Apache 웹서버로 구현하는 방법을 정리한다. Selinux가 활성화되어 있으면 작동하지 않고, 별도의 설정이 필요하다. 여기서는 Selinux를 끄고 진행한다. 목표 하나의 서버에서 두 개의 사이트를 운영한다. http://aaa.manualfactory.net로 접속하면 Welcome to AAA!, http://bbb.manualfactory.net으로 접속하면 Welcome to BBB!를 출력한다. DNS 설정 aaa.manualfactory.net. bbb.manualfactory.net 모두 같은 IP로 가도록 설정한다. 폴더와 파일 생성 /home/aaa ...

CentOS 8 / 원격 데스크톱으로 연결하는 방법

CentOS 8 / 원격 데스크톱으로 연결하는 방법

서버용으로 CentOS를 사용하는 경우 보통 Minimal로 설치하고, 원격 접속은 SSH로 한다. 하지만 하드웨어 사양이 좋아지고 사용의 편리함으로 GUI(Graphical User Interface)를 설치하는 경우도 많아지고 있다. GUI가 설치되어 있다면 SSH보다는 원격 데스크톱으로 관리하는 게 편하다. CentOS에 원격 데스크톱으로 접속하는 방법을 알아본다. 패키지 설치 다음과 같이 명령하여 EPEL(Extra Packages of Enterprise Linux) 저장소를 추가한다. yum install ...

리눅스 / 명령어 / history

리눅스를 쓰다 보면 자주 입력한 명령어를 다시 보고 싶거나, 실수로 종료한 터미널에서 이전 작업 기록이 필요할 때가 있죠. 이럴 때 유용하게 사용할 수 있는 명령어가 바로 history입니다.

리눅스 / 명령어 / scp

scp는 ssh 프로토콜을 이용하여 파일을 송수신하는 명령어이다. local → remote remote → local remote → remote 모두 가능하다. local → remote 파일 복사 # scp a.txt root@192.168.3.211:/temp/a.txt root@192.168.3.211's password: 명령어를 실행한 디렉토리에 있는 a.txt 파일을 192.168.3.211 컴퓨터에 root 계정으로 연결하여 복사한다. 원격 컴퓨터에 /temp 디렉토리가 없으면 복사되지 않는다. 원격 컴퓨터에 /temp 디렉토리가 있으면 a.txt로 복사된다. a.txt 파일이 이미 있다면 덮어쓴다. root 계정의 ...

리눅스 / 명령어 / rdate / 타임서버의 시간과 동기화해주는 명령어

rdate는 서버의 시간과 타임서버의 시간을 동기화해주는 명령어이다. rdate는 설치되어있지 않는 경우가 많으므로, 필요하다면 설치를 해야 한다. CentOS라면 # yum install rdate Ubuntu라면 # apt install rdate 와 같이 명령하여 설치할 수 있습니다. 타임서버의 시간을 확인할 때는 -p 옵션을 사용합니다. 현재 서버의 시간을 변경하지 않는다. # rdate -p time.bora.net 현재 서버의 시간을 타임서버의 시간으로 맞출 때에는 -s 옵션을 ...

Rocky Linux 9 / hostname 변경하는 방법

Rocky Linux 9 / hostname 변경하는 방법

CLI 다음과 같이 명령하면 hostname을 출력한다. hostname 다음과 같이 명령하면 hostname을 rocky로 변경한다. hostnamectl set-hostname rocky GUI 의 Device Name에서 변경한다.

Rocky Linux 8 / 원격 데스크톱으로 연결하는 방법

Rocky Linux 8 / 원격 데스크톱으로 연결하는 방법

패키지 설치 다음과 같이 명령하여 EPEL(Extra Packages of Enterprise Linux) 저장소를 추가한다. dnf install epel-release xrdp 패키지를 설치한다. dnf install xrdp 방화벽 설정 원격 데스크톱이 사용하는 포트는 3389이다. firewall-cmd로 3389 포트를 열어준다. firewall-cmd --permanent --add-port=3389/tcp 방화벽을 다시 로드한다. firewall-cmd --reload 서비스 설정 systemctl 명령어로 xrdp 서비스를 시작한다. systemctl start xrdp 시스템 재부팅 후에도 자동으로 실행되게 하려면 다음과 같이 명령한다. systemctl enable xrdp 재부팅 위와 같이 했을 때 원격 ...

Ubuntu Server 22.04 / vsftpd로 FTP 서버 구축하기

vsftpd vsftpd(Very Secure FTP Daemon)는 유닉스와 리눅스에서 사용할 수 있는 가벼운 FTP 서버입니다. 주요 특징은 다음과 같습니다. Virtual IP configurations Virtual users Standalone or inetd operation Powerful per-user configurability Bandwidth throttling Per-source-IP configurability Per-source-IP limits IPv6 Encryption support through SSL integration 설치 vsftpd는 우분투 패키지에 포함되어 있으므로 다음과 같이 명령하여 설치할 수 있습니다. # apt install vsftpd 방화벽을 사용 중이라면 다음과 같이 명령하여 포트를 ...

리눅스 / 명령어 / systemctl

systemctl은 서비스를 관리하는 명령어이다. 서비스 상태 확인 systemctl status service_name.service 서비스 시작 systemctl start service_name.service 서비스 재시작 systemctl restart service_name.service 서비스 중지 systemctl stop service_name.service 부팅 시 서비스 자동 시작 systemctl enable service_name.service 부팅 시 서비스 자동 시작 해제 systemctl disable service_name.service 서비스 목록 보기 systemctl list-units --type=service