
#!/bin/bash
date
sudo vi /etc/crontab
마지막 줄에 다음 내용 추가
* * * * * yunjae /home/yunjae/240626_cron/time.sh >> /home/yunjae/240626_cron/cron_time.log
sudo tail -f /home/yunjae/240626_cron/cron_time.log
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main(){
int time = 0;
while(1){
sleep(1);
time++;
if (time == 60){
system("date");
time = 0;
}
}
return 0;
}
gcc -o time time.c./time* * * * * command
- - - - -
| | | | |
| | | | +----- 요일 (0 - 6) (0=일요일, 1=월요일, ... , 6=토요일)
| | | +------- 월 (1 - 12)
| | +--------- 일 (1 - 31)
| +----------- 시간 (0 - 23)
+------------- 분 (0 - 59)
간단하고 단순한 작업을 반복해야 하는 경우에는 실행 주기 설정이 편한 cron
처리가 복잡한 프로그램 같은 경우에는 예외처리를 위해 프로그래밍 언어
cron은 터미널에 바로 출력하는 게 어렵고, 로그 파일을 사용해야 한다.
프로그래밍 언어는 자유도가 높아서 cron보다는 프로그래밍 언어를 더 자주 사용할 것 같다.
환경 변수
cron은 일반적으로 사용자 환경 변수를 제한적으로 로드하기 때문에, 스크립트나 명령어가 실행될 환경 변수 설정에 주의해야 함.
절대 경로
cron에서 실행하는 스크립트나 명령어의 경로는 절대 경로로 설정하는 것이 안전함.
권한
cron 작업을 실행할 때 파일 접근 권한이나 실행 권한 등을 확인해야 함.
로그 관리
cron 작업의 로그는 별도의 설정 없이는 표준 출력(stdout) 또는 표준 에러(stderr)에 출력되므로, 로그 관리를 위해 리디렉션을 사용하거나 로깅 설정을 추가해야 함.
무한 루프
실행 주기를 정확히 설정하지 않으면 무한 루프에 빠질 수 있음.
예외 처리
예외 처리를 통해 예상치 못한 상황에서의 오류를 잘 관리해야 함.
시스템 리소스 사용
실행 중인 프로그램이 시스템 리소스를 많이 사용할 수 있으므로, 이를 고려한 설계가 필요함.
동시성
동시에 여러 작업을 실행할 때 발생할 수 있는 동시성 문제를 고려하여 코드를 설계해야 함.