Linux 21 . at, cron

2024. 2. 20. 08:54Linux/CentOS7

오늘은 at와 cron에 대해서 살펴보자

 

 

만약 회사에서 밤 12시에 업데이트가 예정 돼

시스템을 재부팅 해줘야 한다면

그것 때문에 사내에 밤12시까지 대기하기 힘들 것이다.

 

 

그럴때 

at 이라는 명령어를 사용할 수 있다

 

 

at

단기적으로 한번만 예약실행

 

 

먼저 at를 설치해주자

그 다음 at를 실행시켜주자

 

 

예시로 지금으로부터 3분 뒤에

cat 명령어로 hello.txt 파일을 생성하며

내용은 test / test1 / test2 로 하겠다.

다 입력했으면 Ctrl+d 를 눌러주면 된다

 

그럼 끝부분에 작업 번호와 

언제 실행되는지 표시가 된다!

 

작업 리스트를 확인하고 싶다면 

 

at -l 나 atq 를

입력하자 (둘다 똑같다)

 

만약 어떤 작업인지 확인하고 싶다면

at -c (작업번호)

위 사진처럼 조금 난잡하지만 

해당 작업번호가 어떤 작업인지

알려준다.

 

 

만약 작업을 삭제하고 싶다면

at -d (작업번호)

 

이제 작업을 예약해두고 실제로 잘 생성되는지 확인해보자

한 세션을 복제해서 수평으로 분할했다.

위쪽에는 watch -n 2 ls -al

명령어를 입력해

2초마다 ls -al 명령어가 계속 갱신되게 하겠다.

 

그리고 밑에서 at 예약기능을 사용하자

이제 기다려보자

 

42분이 되는 구간부터 즉시 

at.txt 파일이 생성됐다

예약 작업시 꼭 현재시간 기준일 필요는 없다.

위처럼 원하는 시간을 설정할 수도 있다.

 

또한 -f 명령어를 이용해 스크립트를 예약할 수도 있다!

 

 

 

 

cron

주기적인 반복작업 예약실행

 

cron은 따로 설치 작업이 필요없다.

systemctl status crond로 확인해보면

현재도 실행중인 것으로 나온다.

 

cron은

 /etc/crontab

경로에 테이블이 존재한다.

확인해보면 위와 같이 나오는데

각각

(분)(시)(일)(월)(요일)(사용자)(명령어)

위 순서로 아랫줄에 작성해주면 된다!

 

만약 매달 1일 11시59분에 시스템을 리부팅할 수 있도록 작성해보자

위처럼 

59분 23시 1일 *(매달) *(매요일) (root) (reboot)

 

여기서 요일이 모든 요일로 설정 되어 있는데

실제로 모든 요일에 실행되는 것이 아니라

1일의 어떤 요일이든 실행할 수 있게 해주는 것이다.

 

 

또한 매 짝수월 1일,15일에 새벽 00시 01분에 abc.sh 스크립트를 실행해보자

 

(01분) (0시) (1,15일) (2-12/2월) (매요일) (root) (abc.sh)

 

위에서 짝수일을 표현하기 위해서 2-12/2 라는 문구를 작성했는데 이는

2월부터 12월까지 2씩 증가 시킨다는 뜻이다.

고로 홀수월이라면 1-11/2 라고 작성하면 될 것이다!

 

이상으로 at 와 cron에 대해서 알아보았다.

 

'Linux > CentOS7' 카테고리의 다른 글

Linus 23 . HAProxy  (1) 2024.02.25
Linux 22 .quota  (0) 2024.02.22
Linux 20 . NFS 서비스  (0) 2024.02.19
Linux 19 . Mail 서비스  (0) 2024.02.19
Linux 18 . httpd 서비스  (0) 2024.02.19