작업을 주기적으로 자동으로 수행해주는 명령어는 cron과 at이 있다.
cron은 주기적으로 같은 작업이 반복.(굉장히 많이 씀)
at은 딱 한번만 작업함.(별로 안씀)
리눅스에서는 데몬이라는 프로세스가 나를 대신해서 작업을 해주는데, cron이라는 작업을 해주는 데몬을 crond라고 한다.
주기적으로 해야 할 작업 목록을 crontab이라는 파일이라고 함.
누가 crontab을 수정했는지 알려면 "/var/spool/cron/사용자이름" 에 가보면 알 수 있다.
● crontab 수정
# crontab -e
또는
# vi /etc/crontab
또는
# vi /etc/crontab
위 명령어를 치면 crontab파일이 열리는데 그 안에 작업 목록을 적어준다.
"분 시(24시각제) 일 월 요일 작업"의 순서로 적어준다.
예) 30 10 * * * /etc/a.sh 는 매일 매달 매요일 10시 30분에 /etc/a.sh에 들어있는 작업을 수행한다.(a.sh라는 스크립트 파일에 반드시 실행권한이 있어야 함)
a.sh 스크립트 파일 안에 rm -fr /tmp/* 라는 줄이 있었다고 가정하면, 매일 매달 매요일 10시 30분에 tmp디렉토리 밑의 내용을 모두 삭제하는 작업이 수행된다.
마찬가지로 tar -xcvf /data/a.tar.gz /etc/ 라고 하면, /etc/밑의 파일들을 data디렉토리 밑에 a.tar.gz라는 이름으로 압축하는 작업이 수행된다.
● crond 데몬 재시작(crontab파일을 수정한 후에는 재시작을 해줘야 함)
# /etc/init.d/crond stop
# /etc/init.d/crond start
또는
# service crond restart
# /etc/init.d/crond start
또는
# service crond restart
[과제] 매일 새벽 02:00에 /etc 디렉토리를 압축해서 /data/해당날짜.tar.gz 로 만드는 cron작업을 수행하라.
(단, 해당날짜형식은 4자리년도2자리월2자리일.tar.gz 즉 20100701.tar.gz)
1. 실습을 위해 /data와 /etc/cron.test 디렉토리를 생성한다.
2. /etc/crontab 파일 안에 매일 새벽 02:00에 할 작업을 예약한다.
3. 해당 시간에 수행할 스크립트를 /etc/cron.test 디렉토리 안에 생성하고 실행권한을 부여한다. 그리고 crond 데몬을 재시작한다.
- 수행할 스크립트명 : myBackup.sh
#!/bin/sh
tar cvzf /data/$(date +%Y%m%d).tar.gz /etc
tar cvzf /data/$(date +%Y%m%d).tar.gz /etc
4. 제대로 작업이 수행되었는지 2시 이후에 결과를 확인해본다.
'운영체제 > 리눅스' 카테고리의 다른 글
[리눅스] 프로세스와 데몬 (0) | 2010.07.02 |
---|---|
[리눅스] 파이프와 필터 그리고 리다이렉션 (0) | 2010.07.02 |
[리눅스] 아파치 웹서버 소스 컴파일(Source compile)로 설치 (0) | 2010.07.01 |
[리눅스] 파일 검색 (0) | 2010.07.01 |
[리눅스] 파일의 압축과 묶기 (0) | 2010.07.01 |