본문 바로가기

리눅스

crontab 명령어

반응형

crontab 명령어(crond)

crontab은 리눅스와 유닉스 기반 시스템에서 주기적으로 작업을 예약 및 관리하기 위한 명령어입니다. crontab을 사용하면 일정한 간격으로 스크립트 또는 명령어를 실행하거나 시스템 작업을 자동화할 수 있습니다.

cron 주기적으로 반복되는 일을 자동적으로 실행될 수 있도록 설정해 놓는 것

데몬 : crond

관련 파일 : /etc/crontab

crontab

문제1) 매월 15일 새벽 3시 1분에 "/home" 디렉터리와 그 하위 디렉토리를 /backup 디렉터리에 백업한다.

crond 데몬(서비스) 상태 확인

[root@centos4 ~]$ service crond status
crond (pid 3133) is running...

monthly 스케줄에 예약

[root@centos4 ~]$ vi /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
#01 * * * * root run-parts /etc/cron.hourly
#02 4 * * * root run-parts /etc/cron.daily
#22 4 * * 0 root run-parts /etc/cron.weekly
#42 4 1 * * root run-parts /etc/cron.monthly
01 3 15 * * root run-parts /etc/cron.monthly
[root@centos4 ~]$ cd /etc/cron.monthly/

[root@centos4 cron.monthly]$ touch abc.sh

[root@centos4 cron.monthly]$ chmod 755 abc.sh

[root@centos4 cron.monthly]$ ls -l
total 8
-rwxr-xr-x 1 root root 278 Feb 22 2005 0anacron
-rwxr-xr-x 1 root root 0 Nov 14 10:56 abc.sh

abc.sh 쉘 프로그램 작성

[root@centos4 cron.monthly]$ vi abc.sh
#!/bin/sh
set $(date)
fname="backup-$2$3.tar.gz"
tar cfz /backup/$fname /home

백업 디렉터리 생성

[root@centos4 cron.monthly]$ mkdir /backup
[root@centos4 cron.monthly]$ service crond restart
Stopping crond: [ OK ]
Starting crond: [ OK ]

[root@centos4 cron.monthly]$

15일 03시 01분에 백업 파일이 생성되었다.

[root@centos4 cron.monthly]$ ls -l /backup/
total 4
-rw-r--r-- 1 root root 108 Jan 15 03:01 backup-Jan15.tar.gz

cron 사용자 제한

1. /etc/cron.deny 만 존재하는경우 모든사용자가 사용가능하고 cron.deny 에 등록된 사용자만 사용불가능.

$ cat /etc/cron.deny

2. /etc/cron.allow 만 존재하는 경우cron.allow 파일에 등록된 사용자만 사용가능.

$ cat /etc/cron.allow
scbyun

 

사용자(scbyun) 전환

1. 스위칭

 su - scbyun

 crontab -e

$ su - scbyun

$ crontab -e

2. crontab 명령

 crontab -u scbyun -e

$ id
uid=0(root) gid=0(root) groups=0(root)

$ crontab -u scbyun -e
MAILTO=""
728x90
반응형