그리스 로마 신화 시간의 신 크로노스(Cronus) 에서 유래
시간 기반 작업 스케쥴러
1. 예약 작업 명령어 이용 추가
# cron 설치
# apt-get -y install cron
yum -y install cronie
# cron 실행
systemctl restart crond
# 예약작업 확인(현재 로그인한 유저)
crontab -l
# 예약 작업 추가
# * * * * *
# 분(0-59) 시간(0-23) 일(1-31) 월(1-12) 요일(0-7)(일요일 ~ 토요일) <= 7은 일요일
# ==================================================
# vi 에디터와 같은 형태로 실행됨
# 아래와 같이 입력할 경우 매 분마다 tmp파일 생성
# * * * * * mktemp /tmp/XXXXX
crontab -e
# 예약작업 전부 삭제
crontab -r
# 예약 작업 유저 지정 확인
crontab -u hmwoo -l
# 예약 작업 유저 지정 추가
crontab -u hmwoo -e
# 예약 작업 유저 지정 삭제
crontab -u hmwoo -r
# 예약 작업 삭제시 확인을 하고 삭제
crontab -i -u hmwoo -r
2. 예약 작업 파일 이용 추가
# [작업] [사용자] [명령어] 순으로 작성
# 파일 이름 관계 없이 /etc/cron.d 아래 있으면 실행됨
# 리눅스 부팅 또는 재부팅시에 실행되는 작업
echo "@reboot root mktemp /tmp/XXXXX" > /etc/cron.d/cronjob_boot
# 매년 1월 1일 자정에 실행(0 0 1 1 *)
rm /etc/cron.d/cronjob*
rm -rf /tmp/* /tmp/.*
date -s '2020-12-31 23:59:50'
echo "@yearly root mktemp /tmp/XXXXX" > /etc/cron.d/cronjob_yearly
watch -n 1 ls -la /tmp/
# 매월 초하루 자정에 실행(0 0 1 * *)
rm -rf /etc/cron.d/cronjob*
rm -rf /tmp/* /tmp/.*
date -s '2021-07-31 23:59:50'
echo "@monthly root mktemp /tmp/XXXXX" > /etc/cron.d/cronjob_monthly
watch -n 1 ls -la /tmp/
# 매주 일요일 자정에 실행(0 0 * * 0)
rm -rf /etc/cron.d/cronjob*
rm -rf /tmp/* /tmp/.*
date -s '2021-08-14 23:59:50'
echo "@weekly root mktemp /tmp/XXXXX" > /etc/cron.d/cronjob_weekly
watch -n 1 ls -la /tmp/
# 매일 자정에 실행(0 0 * * *)
rm -rf /etc/cron.d/cronjob*
rm -rf /tmp/* /tmp/.*
date -s '2021-08-22 23:59'
echo "@daily root mktemp /tmp/XXXXX" > /etc/cron.d/cronjob_daily
watch -n 1 ls -la /tmp/
# 매시 정초에 실행(0 * * * *)
rm -rf /etc/cron.d/cronjob*
rm -rf /tmp/* /tmp/.*
date -s '2021-08-22 11:59:50'
echo "@hourly root mktemp /tmp/XXXXX" > /etc/cron.d/cronjob_hourly
watch -n 1 ls -la /tmp/
# 매분 실행
rm -rf /etc/cron.d/cronjob*
rm -rf /tmp/* /tmp/.*
date -s '2021-08-22 11:59:50'
echo "* * * * * root mktemp /tmp/XXXXX" > /etc/cron.d/cronjob_usertime
watch -n 1 ls -la /tmp/
3. Crontab 명령어 사용자 권한 추가
# 파일이 존재하는 경우 cron.allow에 포함된 사용자만 crontab 명령어 사용 가능
ls -ld /etc/cron.allow
# 파일이 존재하는 경우 cron.deny에 포함된 사용자는 crontab 명령어 사용 불가
ls -ld /etc/cron.deny
4. 예약 작업 로그 파일 추가
touch /var/log/cron.log
sed -i "s/^cron\.\*//g" /etc/rsyslog.conf
echo "cron.* /var/log/cron.log" >> /etc/rsyslog.conf
systemctl restart rsyslog
tail -f /var/log/cron.log
'Operating Systems > Linux' 카테고리의 다른 글
[ Linux ] NFS 서버 설치 (0) | 2021.09.25 |
---|---|
[ Linux ] VNC 서버 설치 (0) | 2021.09.23 |
[ Linux ] DHCP 서버 설치 (0) | 2021.08.21 |
[ Linux ] 사용자 관리 및 생성 [임시작성] (0) | 2021.08.15 |
[ Linux ] AWK 활용 (0) | 2021.08.14 |