리눅스 / 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
같은 카테고리의 다른 글
Rocky Linux 8 / 고정 IP 설정하는 방법

Rocky Linux 8 / 고정 IP 설정하는 방법

보통 Rocky Linux를 설치할 때 IP를 설정하나, 여러 가지 이유로 IP 설정을 다시 해야 하는 경우가 있다. IP를 설정하는 두 가지 방법을 소개한다. TUI 네트워크 설정 파일을 수정하는 것보다는 NetworkManager Text User Interface(nmtui)를 이용하는 게 편하다. nmtui를 실행한다. Edit a connection을 선택한다. 설정하려는 네트워크 카드를 선택한다. 현재 설정이 나오는데... 적절히 설정한다. 다음과 같이 명령하여 반영한다. systemctl restart NetworkManager GUI Settings를 연다. Network에서 ...

CentOS 7 / Webmin / 설치하는 방법

CentOS 7 / Webmin / 설치하는 방법

Webmin은 웹브라우저를 통해 시스템 관리를 하는 툴이다. CentOS라면 아래의 순서로 설치할 수 있다. 저장소 추가 webmin 저장소를 추가한다. vi 등 텍스트 에디터로 저장소 파일을 만들고... # vi /etc/yum.repos.d/webmin.repo 아래의 내용을 추가하고 저장한다. name=Webmin Distribution Neutral #baseurl=http://download.webmin.com/download/yum mirrorlist=http://download.webmin.com/download/yum/mirrorlist enabled=1 키 추가 PGP key를 다운로드하고... # wget http://www.webmin.com/jcameron-key.asc 설치한다. # rpm --import jcameron-key.asc 설치와 설정 webmin을 설치한다. # yum install webmin 10000 포트를 열어준다. # firewall-cmd --add-port=10000/tcp 접속 https://<server-ip>:10000으로 접속한다. 공인 인증서가 없으므로, 웹브라우저에 ...

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 방화벽을 사용 중이라면 다음과 같이 명령하여 포트를 ...

리눅스 / 명령어 / rm / 파일 또는 디렉토리 삭제하는 명령어

rm은 remove의 약자로, 파일 또는 디렉토리를 삭제하는 명령어이다. 파일 삭제하기 abc.txt 파일을 삭제한다. 삭제할 건지 다시 묻는다. y 또는 yes를 입력하면 삭제한다. # rm abc.txt 확장자가 txt인 모든 파일을 삭제한다. 각 파일에 대해서 삭제할 건지 묻는다. # rm *.txt 현재 디렉토리에 있는 모든 파일을 삭제한다. 각 파일에 대해서 삭제할 건지 묻고, 디렉토리가 있다면 삭제할 수 없다는 ...

Ubuntu 18.04 / 빠르게 다운로드하는 방법

우분투 다운로드 우분투 다운로드는 보통 우분투 홈페이지에서 합니다. 상단의 Downloads 메뉴를 클릭하고 안내를 따라가면 됩니다. 그런데, 우분투 홈페이지를 통해 다운로드를 받으면 전송 속도가 느릴 수 있습니다. 만약 너무 느리다면 가까운 미러 사이트에 직접 접속하여 다운로드해보세요. 빠르게 다운로드를 할 수 있습니다. 카카오 서버 한국이라면 카카오 서버가 빠릅니다. 우분투 페이지로 간 다음 원하는 버전을 선택합니다. 데스크톱 이미지와 ...

리눅스 / 스왑 메모리(Swap Memory) 만드는 방법

리눅스 시스템이 메모리를 다 사용하면 프로그램이 멈추는 등 문제가 발생한다. 이때 스왑 메모리(Swap Memory) 늘려서 메모리 부족 문제를 해결할 수 있다. 스왑 파일 만들기 적당한 디렉토리에 적당한 이름의 파일을 적당한 크기로 만든다. 예를 들어 다음과 같이 하면, 루트 디렉토리에 jb-swap이라는 파일을 2G의 크기로 만든다. # fallocate -l 2G /jb-swap root만 읽고 쓸 수 있게 권한 ...

CentOS 7 / Let’s Encrypt에서 무료 SSL 인증서 발급 받는 방법

CentOS 7 / Let’s Encrypt에서 무료 SSL 인증서 발급 받는 방법

CentOS 7에서 Let’s Encrypt 인증서를 발급 받는 방법을 요약합니다. 환경 CentOS 7 Apache Web Server 설치 저장소 추가 yum install epel-release 설치 yum install python-certbot-apache 인증서 발급 abc.com 인증서 발급 certbot --apache -d abc.com abc.com과 www.abc.com 인증서 동시 발급 certbot --apache -d abc.com -d www.abc.com 인증서 갱신 certbot renew Let’s Encrypt 인증서는 90마다 갱신해야 합니다.

리눅스 / 버전 확인하는 방법

리눅스에서 현재 사용 중인 배포판의 버전을 확인하는 방법은 여러 가지가 있습니다. 그 중 두 가지를 소개합니다. hostnamectl 명령어로 확인 hostnamectl 명령어로 리눅스 버전을 확인할 수 있습니다. 아래는 Rocky Linux에서 실행한 결과입니다. # hostnamectl Static hostname: rocky-9-01 Icon name: computer-vm Chassis: ...

리눅스 / 절전 모드 진입 끄는 방법, 노트북 덮개 닫아도 켜져 있게 하는 방법

노트북에 리눅스를 설치했다. 노트북에 설치했지만 용도는 서버용. 그래서 항상 켜져 있어야 한다. 그런데 노트북의 특성인지 일정 시간이 지나면 절전 모드로 들어가고, 노트북 덮개를 닫으면 잠금(?) 상태가 된다. 그래서 서비스가 중지되거나 원격 연결이 되지 않는데... 항상 켜져 있게 하는 방법은 다음과 같다. 절전 모드 진입하기 않게 하는 방법 다음과 같이 명령하면 절전 모드가 해제된다. # ...

Ubuntu 16.04 Server / PHP / 메모리 늘리는 방법

PHP 설정은 php.ini에서 한다. Ubuntu 16.04에서 php.ini의 위치는 /etc/php/7.0/apache2/php.ini 이다. PHP 버전에 따라 7.0은 다른 숫자일 수 있다. 메모리를 늘리기 위해 수정해야 할 것은 memory_limit이다. 기본값은 128M이다. 128을 적절히 변경한다. memory_limit = 128M 변경한 설정이 적용되도록 하려면 웹서버를 다시 시작하거나 다시 로드한다. Apache 웹서버라면 다음과 같이 명령하여 다시 시작할 수 있고, # service apache2 restart 다음과 같이 ...