Ubuntu Server / crontab 사용법

cron

cron은 특정 시간에 특정 작업을 수행하게 하는 시스템 대몬입니다. 주기적으로 어떤 작업을 해야할 때 유용합니다.

crontab

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

작업 목록 보기

예약 작업 목록을 보고 싶다면 다음과 같이 명령합니다.

crontab -l

사용자의 crontab 파일의 내용이 출력됩니다.

작업 삭제하기

예약 작업을 모두 삭제하고 싶다면 다음과 같이 명령합니다.

crontab -r

작업 수정하기

예약 작업을 만들거나 수정하고 싶다면 다음과 같이 명령합니다.

crontab -e

crontab 파일이 없다면 새로 만들고, 있다면 그 파일을 엽니다.

작업 추가하기

형식

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

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시간마다를 뜻합니다.

예제

* * * * * /root/backup.sh

매분, 매시간, 매일, 매월, 매요일, 즉 1분마다 /root/backup.sh를 실행하시오.

0 4 * * * /root/backup.sh

0분, 4시, 매일, 매월, 매요일, 즉 매일 4시에 /root/backup.sh를 실행하시오.

0 4 * * 1-5 /root/backup.sh

0분, 4시, 매일, 매월, 월요일부터 금요일, 즉 평일 4시에 /root/backup.sh를 실행하시오.

*/10 4 * * * /root/backup.sh

10분 간격, 4시, 매일, 매월, 매요일, 즉 매일 4시, 4시 10분, 4시 20분, 4시 30분, 4시 40분, 4시 50분에 /root/backup.sh를 실행하시오.

같은 카테고리의 다른 글

Ubuntu Server / 업그레이드 하는 방법

Ubuntu Server / 업그레이드 하는 방법

Ubuntu 새 버전이 나오면 어떻게 업그레이드를 할까? 새로 설치하고 다시 설정하는 게 제일 좋지만, 설정할 게 많다면 바로 업그레이드를 할 수도 있다. 업그레이드는 do-release-upgrade 명령어로 한다. do-release-upgrade -h Usage: do-release-upgrade Options: -h, --help show this help message and exit -V, ...

Ubuntu Server / Apache, PHP, MariaDB 설치하는 방법

Ubuntu Server / Apache, PHP, MariaDB 설치하는 방법

Ubuntu Server에 웹서버 Apache, 웹프로그래밍 언어 PHP, 데이터베이스 MariaDB를 설치하는 방법입니다. 웹서버 운영을 위한 최소한의 설치로, 실제로 서비스할 때는 더 많은 패키지가 필요할 수 있습니다. 설치 Apache, PHP, MariaDB를 설치합니다. php-mysql은 PHP와 MariaDB 연동을 위한 패키지입니다. apt install apache2 mariadb-server php php-mysql MariaDB 설정 다음과 같이 명령하여 몇 가지 설정을 합니다. mysql_secure_installation MariaDB의 root 계정 비밀번호를 입력하라고 ...

Ubuntu Server / 언어 변경하는 방법

Ubuntu Server / 언어 변경하는 방법

현재 언어 확인하기 locale 명령어로 현재 언어가 무엇인지 확인할 수 있습니다. root@ubuntu-1804-server:~# locale LANG=en_US.UTF-8 LANGUAGE= LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_ALL= 언어 변경하기 사용할 언어를 먼저 설치합니다. 한국어를 사용하고 싶다면 다음과 같이 명령합니다. apt-get install language-pack-ko /etc/default/locale을 열고 다음과 같이 만듭니다. LANG=ko_KR.UTF-8 Ubuntu Server 16.04라면 다음과 같이 만듭니다. # File generated by update-locale LANG="ko_KR.UTF-8" LANGUAGE="ko_KR:ko" 테스트하기 새로 로그인하거나 재부팅하면 변경한 언어가 적용됩니다. 의미 없는 문자열을 입력해보거나... root@ubuntu-1804-server:~# 123 123: 명령을 찾을 수 없습니다 locale ...

Ubuntu Server / 메모

Ubuntu Server / 메모

MariaDB / 포트 변경 MariaDB의 기본 접속 포트는 3306입니다. 이를 다른 포트로 변경하고 싶다면 /etc/mysql/mariadb.conf.d/50-server.cnf를 수정합니다. port = 3306 을 찾아서 원하는 포트로 변경한 후 저장합니다. 그리고 MariaDB를 재시작합니다. service mysql restart MariaDB / Can't connect to MySQL server on ... (10061) 다음과 같은 에러를 만났다면... Can't connect to MySQL server on ... (10061) /etc/mysql/mariadb.conf.d/50-server.cnf에 있는 bind-address = 127.0.0.1 를 ...

Ubuntu 16.04 / phpMyAdmin / 특정 IP에서만 접속 가능하게 만드는 방법

Ubuntu 16.04 / phpMyAdmin / 특정 IP에서만 접속 가능하게 만드는 방법

우분투 16.04에서 phpMyAdmin을 패키지로 설치했을 때, 기본 설정은 모든 IP에서 접속 가능입니다. 만약 특정 IP에서만 접속 가능하게 하려면 /etc/apache2/conf-available/phpmyadmin.conf에 다음 코드를 추가합니다. <Directory /usr/share/phpmyadmin> Order deny,allow Deny from all Allow from xxx.xxx.xxx.xxx </Directory> xxx.xxx.xxx.xxx는 접속하려는 IP로 바꿉니다. 여러 IP를 설정하고 싶을 때는 띄어쓰기로 구분합니다. <Directory /usr/share/phpmyadmin> Order deny,allow Deny from all ...

Ubuntu 16.04 / SASS 설치하는 방법

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로 설치합니다.

Ubuntu 16.04 / Apache / javascript 폴더 접근이 안되는 문제 해결하는 방법

Ubuntu 16.04 / Apache / javascript 폴더 접근이 안되는 문제 해결하는 방법

javascript 폴더 접근 불가 우분투(Ubuntu)에서 아파치(Apache)로 웹서버를 운영할 때 이상한 문제가 하나 발생합니다. 사이트 경로에 javascript가 있으면 forbidden 에러가 나는 것입니다. Forbidden You don't have permission to access /javascript/ on this server. 이 문제가 발생하는 이유는 자바스크립트 설정 때문입니다. /etc/apache2/conf-available/javascript-common.conf에 다음과 같은 코드가 있습니다. Alias /javascript /usr/share/javascript/ javascript로 접속하면 /usr/share/javascript/로 연결시키라는 뜻입니다. 사이트 접속자는 /usr/share/javascript/에 접속 권한이 없으므로 forbidden 에러가 ...

Ubuntu 18.04 / 해상도 변경하는 방법

Ubuntu 18.04 / 해상도 변경하는 방법

Ubuntu 18.04 Desktop에서 해상도 변경하는 방법입니다. 바탕화면에서 마우스 우클릭을 합니다. 를 클릭합니다. 왼쪽 메뉴에서 를 클릭합니다. 왼쪽 메뉴에서 를 클릭하고, 오른쪽에서 해상도를 선택합니다. 오른쪽 위의 버튼을 클릭합니다. 를 클릭합니다.

Ubuntu / 시간대(time zone) 설정하는 방법

Ubuntu / 시간대(time zone) 설정하는 방법

현재 서버의 시간대 확인 현재 서버에 설정된 시간대는 date 명령어로 확인할 수 있다. root@jb-dev-01:~# date Mon Dec 3 17:03:06 UTC 2018 시간대 설정 방법 1 - dpkg-reconfigure tzdata 시간대를 설정하고 싶다면 다음과 같이 명령한다. dpkg-reconfigure tzdata 한국이라면 Asia를 선택하고 Seoul을 선택합니다. 시간대 설정 방법 2 - tzselect tzselect 명령으로 설정할 수 있다. 번호를 입력하여 시간대를 정한다. root@ubuntu-1804-server:~# tzselect Please identify ...

Ubuntu Server / 고정 IP 설정하는 방법

Ubuntu Server / 고정 IP 설정하는 방법

Ubuntu Server 20.04, Ubuntu Server 18.04 네트워크 설정 파일은 /etc/netplan 디렉토리 안에 있는 yaml 파일입니다. DHCP로 설치했다면, 설정 파일 내용은 다음과 비슷하게 되어 있습니다. # This is the network config written by 'subiquity' network: ethernets: enp0s3: dhcp4: true version: 2 다음과 같이 수정하고 저장합니다. IP ...