실습> 사용자 크론 설정
크론 종류 : 사용자 크론
사용자 : user1
시간 : 1분 마다 실행
명령어 : date
사용자 크론이 저장되는 경로 : /var/spool/cron
사용자 크론을 등록하는 파일 : /usr/bin/crontab (-rwsr-xr-x. 1 root root)
date 명령어를 1분 마다 실행해서 /tmp/date2.txt 파일에 시간을 저장하는 사용자 크론을 설정한다.
1. 사용자 생성
[root@localhost ~]# useradd user1
[root@localhost ~]# passwd user1
[root@localhost ~]# su - user1
2. 사용자 크론 등록
crontab -e 로 실행하면 /tmp 디렉터리에 임시파일이 랜덤으로 생기고 이 파일을 vi 편집기가 편집하게 된다.
아래 예제는 /tmp/crontab.4k51vt 파일명으로 랜덤으로 설정된 것이다.
크론 설정을 하고 vi 편집기를 저장하고 종료하면 사용자 크론 등록을 완료한 것이다..
[user1@localhost ~]$ crontab -e
# date 명령어를 1분 마다 실행해서 /tmp/date2.txt 파일에 저장한다.
* * * * * date >> /tmp/date2.txt

요일은 0부터 시작, 일요일이다. * 대신 범위 안의 숫자를 넣어 구체적인 주기를 정할 수 있다.
숫자와 * 외에도 다른 특수기호와 같이 입력할 수 있다.
- / : 매 n 마다 실행
- – : n에서 m까지 실행
- , : n, m에 실행
[user1@localhost ~]$ crontab -l
# date 명령어를 1분 마다 실행해서 /tmp/date2.txt 파일에 저장한다.
* * * * * date >> /tmp/date2.txt
[user1@localhost ~]$ exit
3. 사용자 크론 파일 확인
일반 유저의 파일이 /var/spool/cron 디렉터리에 저장된다.
/usr/bin/crontab 파일이 setuid가 설정되어 있어서 가능하다.
[root@localhost ~]# ls -l /var/spool/cron/
합계 4
-rw-------. 1 user1 user1 118 1월 14 16:54 user1
파일을 확인해보면 아래처럼 저장된 것을 확인할 수 있다.
[root@localhost ~]# cat /var/spool/cron/user1
# date 명령어를 1분 마다 실행해서 /tmp/date2.txt 파일에 저장한다.
| * * * * * date >> /tmp/date2.txt |
4. 파일 확인
1분 마다 date >> /tmp/date2.txt 파일로 잘 저장되는 것을 확인한다.
[root@localhost ~]# ls -l /tmp/date2.txt
-rw-r--r--. 1 user1 user1 66 1월 14 16:56 /tmp/date2.txt
[root@localhost ~]# tail -f /tmp/date2.txt
2021. 01. 14. (목) 16:55:01 KST
2021. 01. 14. (목) 16:56:01 KST
2021. 01. 14. (목) 16:57:01 KST
2021. 01. 14. (목) 16:58:01 KST
2021. 01. 14. (목) 16:59:01 KST
2021. 01. 14. (목) 17:00:01 KST
2021. 01. 14. (목) 17:01:01 KST
:
:
5. 로그 확인
관리자에서 /var/log/cron을 확인한다.
[root@localhost ~]# cat /var/log/cron
:
:(생략)
Jan 14 16:52:57 test2 crontab[103304]: (user1) BEGIN EDIT (user1)
Jan 14 16:53:01 test2 crond[102422]: (*system*) RELOAD (/etc/crontab)
Jan 14 16:54:39 test2 crontab[103304]: (user1) REPLACE (user1)
Jan 14 16:54:39 test2 crontab[103304]: (user1) END EDIT (user1)
Jan 14 16:55:01 test2 CROND[103411]: (user1) CMD (date >> /tmp/date2.txt)
Jan 14 16:56:01 test2 CROND[103467]: (user1) CMD (date >> /tmp/date2.txt)
Jan 14 16:57:01 test2 CROND[103523]: (user1) CMD (date >> /tmp/date2.txt)
Jan 14 16:58:01 test2 CROND[103577]: (user1) CMD (date >> /tmp/date2.txt)
Jan 14 16:59:01 test2 CROND[103630]: (user1) CMD (date >> /tmp/date2.txt)
Jan 14 17:00:01 test2 CROND[103683]: (user1) CMD (date >> /tmp/date2.txt)
Jan 14 17:01:01 test2 CROND[103739]: (root) CMD (run-parts /etc/cron.hourly)
Jan 14 17:01:01 test2 CROND[103741]: (user1) CMD (date >> /tmp/date2.txt)
:
:(생략)
6. 사용자 크론 삭제
user 사용자로 변경해서 등록된 사용자 크론을 확인하고 삭제한다.
[root@localhost ~]# su - user1
[user1@localhost ~]$ crontab -l
# date 명령어를 1분 마다 실행해서 /tmp/date2.txt 파일에 저장한다.
* * * * * date >> /tmp/date2.txt
-r 옵션을 이용해서 사용자가 cron을 설정한 것을 삭제한다.
[user1@localhost ~]$ crontab -r
다시 확인하면 cron에 설정된 내용이 없다. 결국 지워진 것이다.
[user1@localhost ~]$ crontab -l
no crontab for user1
'Linux > Linux 실습' 카테고리의 다른 글
| [Linux] 가상 호스트 설정하기 (0) | 2021.11.09 |
|---|---|
| [Linux] HTTP Method 정리 : GET/POST 방식 (0) | 2021.11.09 |
| yum 프로세스 강제 종료 (0) | 2021.11.06 |
| 쉘 스크립트에서 시그널 전송 막기 (0) | 2021.11.06 |
| PATH 변수에 현재 디렉터리를 설정하는 않는 경우 (0) | 2021.11.06 |