KST 시스템 시간 변경
date 명령을 통해 현재 날짜와 시간을 확인해보면 동부 표준시인 EST 로 설정되어있는 것을 확인할 수 있다. 따라서, 아래와 같이 한국 표준시 KST 로 변경해주는 작업이 필요하다.


ls -al /etc/localtime -> 현재 설정된 표준시 확인
ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime -> 한국 표준시 설정
date -> 한국 표준시 변경 확인
at 명령어
지정한 시간에 원하는 명령을 수행하도록 예약하는 도구이다. 명령 실행 시, 전용 프롬프트가 나타나며 실행할 명령어나 스크립트를 입력할 수 있다. 입력이 완료되면, ctrl + d 로 at 작업을 종료한다.

예약된 작업은 /var/spool/at 디렉토리에 개별 파일로 저장되며, 실행 결과는 /usr/bin/sendmail 을 통해 메일로 전송된다. 또한, /etc/at.allow 와 /etc/at.deny 환경 설정 파일을 통해 at 명령어에 대한 접근 통제가 가능하다.

오후 5:50 에, HELLO? 라는 문구를 출력하는 /backup/at_test1 파일을 생성하는 작업을 예약했다.


빈 디렉토리였던 /backup 에 오후 5:50 이후로, at_test1 이라는 이름의 파일이 생성된 것을 확인할 수 있다.

예약된 작업 번호 3번을 atrm 명령을 통해 삭제하였다.

마찬가지로, 예약된 작업 번호 4번을 at -d 명령을 통해 삭제하였다.
at 명령어는 기본적을 root 계정만 사용하도록 되어있으므로 /etc/at.allow 와 /etc/at.deny 파일을 통해 일반 사용자도 사용할 수 있도록 접근 제어를 할 수 있다.
- /etc/at.allow : at 명령어의 사용을 허가하는 사용자 목록
- /etc/at.deny : at 명령어의 사용을 제한하는 사용자 목록
- /etc/at.allow 파일이 /etc/at.deny 파일보다 우선시된다.
만약, /etc/at.deny 파일이 빈 파일이라면?
리눅스 초기 설치 시에는 /etc/at.allow 파일이 없는 경우가 있다. 해당 경우, /etc/at.deny 파일에 명시되어있는 사용자만 at 명령어의 사용이 제한된다. /etc/at.deny 파일이 비어있다면, 모든 사용자가 at 명령어를 사용할 수 있다.
batch 명령어
시스템 부하율과 연관하여 at 명령을 수행한다.

cron 설정
지정한 시간에 명령어, 프로그램, 작업 등을 실행할 수 있는 서비스이다. at 명령어는 1회성으로 예약할 수 있지만, cron 명령어는 반복적인 주기로 실행 가능하다.

- /etc/crontab : 시스템 전역 사용
- /etc/cron.d : 작업 예약 스크립트 저장소
- /var/spool/cron : 개발 사용자 전용
- run-parts : /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly, /etc/cron.monthly 디렉토리 내의 스크립트 수행
1) /etc/crontab
7개의 필드로 구성되어있는 파일로, 크론 작업을 정의할 수 있다. 계정을 지정하여, 전역적으로 설정할 수 있다.



요일 = 일 0 or 7, 월 1, 화 2, 수 3, 목 4, 금 5, 토 6
* = all (모두)
, = 복수선택 (1, 5)
- = 범위 (1 - 5)
/ = 간격 (*/1)

test.sh 파일의 내용을 다음과 같이 작성해보자. 명령 수행 결과들이 /root/log 파일에 저장될 것이다.


해당 파일을 실행하게 되면, 실행 권한이 없기에 허가 거부되는 것을 확인할 수 있다. 실행 권한을 부여한 후, 해당 파일을 실행하게 되면 다음과 같은 내용이 출력되게 된다. 이제, 이 파일을 cron 을 통해 주기적으로 실행되도록 하자.

/etc/crontab 파일의 하단에 다음과 같은 문구를 추가하여, 1분 간격으로 해당 파일이 수행되도록 하였다.

service crond restart
그 후, cron 데몬을 재시작하면 앞서 설정한 작업이 수행되어 log 파일이 생성된 것을 확인할 수 있다.

tail -f 명령을 통해, log 파일의 내용을 모니터링하게 되면 1분 간격으로 내용이 추가되는 것을 확인할 수 있다.
2) crontab 명령어
/etc/crontab 파일과 달리, 계정을 지정하지 않고 로그인한 계정으로만 수행하는 지역 설정 명령이다.



주기적으로 실행될 user.txt 파일을 생성한다. 단, 계정별로 작업을 예약할 예정이므로 $USER 환경 변수를 사용한다.

다른 사용자의 파일 실행 및 수정이 가능하도록 허가권을 다음과 같이 변경한다.

root 계정에서 1분마다 user.sh 파일을 실행하는 작업을 예약하였다.

마찬가지로, 일반 사용자 계정에서도 1분마다 같은 동작을 수행하는 작업을 예약하였다.

1분마다 각 계정에서 수행되는 내용이 user.txt 파일에 기록되는 것을 확인할 수 있다.

root 계정에서의 작업 내역을 crontab -r 명령을 통해 삭제하면, 일반 사용자 계정의 작업만이 수행되는 것을 확인할 수 있다.

예약된 작업 내역은 계정별로 /var/spool/cron 디렉토리의 하위에 저장된다.
3) run-parts
디렉토리 내의 여러 스크립트를 한 번에 수행하기 위해 사용한다.

/rtest 디렉토리의 하위에 first.sh, second.sh, three.sh 파일을 생성하고 다음과 같이 내용을 작성하였다. /rtest/happy 파일에 내용을 삽입하는 문구가 작성되어 있는 파일들이다.

*주의*
run-parts를 사용하는 경우, 반드시 파일들의 권한을 755 로 지정하여 실행 권한을 부여해주어야 한다.

run-parts 의 수행을 위해서 /etc/crontab 파일에 등록해주는 과정을 거쳐야 한다. 1분 간격으로 /rtest 디렉토리 하위의 파일들이 수행되도록 설정하였다.


cron 데몬을 재시작하고 /rtest 디렉토리 목록을 확인해보면, happy 라는 이름의 파일이 생성된 것을 확인할 수 있다.

tail -f 명령으로 happy 파일을 모니터링하면, 1분 간격으로 /rtest 디렉토리 하위의 모든 파일들이 주기적으로 실행되는 것을 확인할 수 있다.
Window 작업 예약



공부하면서 정리한 내용을 글로 작성하였습니다.
혹시나 잘못된 내용이 있다면 댓글로 알려주시면 감사하겠습니다. :)
'OS > Rocky' 카테고리의 다른 글
[Linux / Rocky] FTP 접속 관련 설정 실습 예제 (3) | 2025.02.16 |
---|---|
[Linux / Rocky] 리눅스 FTP (File Transfer Protocol) 서비스 (0) | 2025.02.11 |
[Linux / Rocky] 리눅스 프로세스 관리 (0) | 2025.01.28 |
[Linux / Rocky] 리눅스 쉘 구동 관련 예제 (0) | 2025.01.26 |
[Linux / Rocky] 관리자 실행 권한 (0) | 2025.01.26 |