-
CentOS7: at & cron공부합시다!/LInux 2023. 1. 3. 14:13728x90
Linux환경에서 단순 예약 작업은 at으로 주기적인 예약작업은 cron으로 처리를 합니다.
간단하게 살펴 보도록 하겠습니다.
1. at
2. cron
순으로 진행 합니다.
1. at
1.1. 한 번만 실행되는 단순 예약 작업에 사용
1.2. at daemon 설치
1.3. at daemon 시작
# yum install -y at # systemctl start atd
1.3. 작업 설정
1.3.1. 작업 실행 시간 설정
1.3.2. 작업 번호 및 시간, 실행 user 정보 확인
1.3.3. 자세한 작업 내용 확인
# at 12:10 2023-01-03 at> cat > hello.txt << EOF at> hello at> EOF at> <EOT> # EOT는 CTRL + d # at -1 작업번호, 시간, 실행 user # atq at -l 과 동일 #at -c 1 -c 옵션 뒤에 작업번호를 입력하면 자세한 작업 정보를 출력함.
1.3.4. 작업 내용 확인 후 삭제
1.3.5. shell script 작성
# at -d 1 -d 옵션 뒤 작업번호 지정하면 삭제 # atrm 작업번호 at -d 와 동일 vi user.sh #! /bin/bash useradd x echo 'It1' | passwd --stdin x
1.3.6. 작업 실행 시간 지정
1.3.7. 자세한 작업 내용 확인
# at now +3 minutes -f user.sh 지금부터 3분뒤에 -f 지정한 user.sh를 실행하라 # at -l 작업번호 확인 # at -c 2 자세한 작업내용 확인
1.3.8. 작업 실행 후 확인
사용자를 생성하고 passwd를 지정하는 단순한 스크립트 # tail -2 /etc/passwd /etc/passwd파일의 끝 2줄만 실행 # tail -2 /etc/shadow x user의 password 설정 여부 확인
2. cron
2.1. 주기적으로 실행되는 반복 예약 작업에 사용
2.2. crond daemon 설치되어 있기 때문에 확인 작업
2.2.1. cron datemon 실행여부 확인
# systemctl status crond
2.2.2. 설정 파일이 crontab 구성
# vi /etc/crond SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root # For details see man 4 crontabs # Example of job definition: # .---------------- minute (0 - 59) # | .------------- hour (0 - 23) # | | .---------- day of month (1 - 31) # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * user-name command to be executed 01-10/2 * * 1-12/3 * root rm -rf /tmp/* # 1,4,7,10월 매일 매시간 1,3,5,7,9분에 root 권한으로 /tmp디렉토리의 모든 파일 삭제 59 01,06 * * 6,7 root sh /root/backup.sh # 매월 토요일과 일요일 새벽 1시59분과 6시59분에 root 권한으로 sh /root/backup.sh 실행
2.2.3. 두번째 cron작업을 위한 /root/backup.sh 작성
# vi /root/backup.sh #! /bin/bash set $(date) fname='home-$1$2$3$4$5.tar.bz2' tar cfj /backup/$fname /home # /home 디렉토리를 작업을 실행하는 년월일시간분.tar.bz2 압축 및 아카이브 스크립트
2.2.4. 실행 후 파일 생성 확인
# sh backup.sh /root/backup.sh 실행 # ls /backup 파일 생성 확인
cron 부분에서 빠진 내용이 있네요!
반드시 # mkdir /backup 디렉토리를 생성해 주셔야 합니다.Have a nice day!
728x90'공부합시다! > LInux' 카테고리의 다른 글
Rocky9: System Journal (0) 2023.01.13 Rocky9: sudo (0) 2023.01.12 EXT4 & XFS 파일시스템 Quota - 명령어와 설정 파일 비교 (0) 2022.12.21 vsftpd 인증을 Active Directory Domain Controller에서 (0) 2022.12.07 Rocky 9 - WEB Mail Server (RoundCube) - apache, MySQL, PHP, 그리고 RoundCube (0) 2022.11.06