728x90
🎯 Ubuntu Server 20.04 T2.micro
👉 nohup이란? https://bkyungkeem.tistory.com/56
👉 vi 명령어 https://bkyungkeem.tistory.com/54
📌 log.sh 만들기
설정파일은 nohup.out 안에 내용이 있을때만 rotation하는 방법으로 진행
⇒ 내용 유무와 상관없이 만들고 싶다면 if구문만 지우고 사용하면 됨
1. 쉘 스크립트 생성 ( 생성 후 i를 누르면 편집 가능)
$ vi log.sh
2. 스크립트 작성
#!/bin/bash
file=/home/ubuntu/dev/nohup.out // nohup.out 경로
date=`date +%Y%m%d_%H%M%S` // 저장할 날짜
filePath=/home/ubuntu/dev/log/log.${date}.out // 저장경로/파일명
// 파일 용량이 0보다 클때 rotation
if [ -s $file ] ; then
cp "$file" "$filePath" // 1. nohup.out 복사
echo "백업완료 cp $file $filePath" // 2. print
cat /dev/null > "$file" // nohup.out의 byte를 0으로
else
echo "백업 없음 $file"
fi
echo "********************************************"
//ESC누르고
:wq // 저장하고 나가기
- if [ 조건 ] ; then [true일 경우] else [전체 false일 경우] fi : shell 스크립트의 if … else 조건문
- 사용 시 주의할 점: " [ 조건 ] "작성 시 대괄호 양 사이에 한 칸씩 공백이 있어야 함 ⇒ 붙여쓸 경우 에러발생
- -s $file
- -s : "$file" 지장한 파일이 존재하고 0 size 파일이 아닌지 체크하는 옵션
- 파일이 있고 사이즈가 0보다 클 경우 true
- filePath=/home/ubuntu/dev/log/log.${date}.out
- /home/ubuntu/dev/log : 파일경로
- log.${date}.out : 파일명
- 디렉토리는 자동으로 생성하지 않기때문에 만들어 줘야함
3. 쉘 스크립트 실행권한 부여
// 실행권한 부여
$ chmod 755 log.sh
3. crontap 등록
log.sh를 특정 시간에 또는 특정 시간마다 실행시켜주는 설정
⇒ crontab 편집기에 cron 표현식을 등록
1. 등록
// crontab 등록,수정
$ crontab -e
// crontab 전체조회
$ crontab -l;
2. 맨 밑줄에 cron표현식 추가
GNU nano 4.8 /tmp/crontab.g1t2FZ/crontab Modified
i# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').
#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h dom mon dow command
59 23 * * * home/ubuntu/dev/log.sh
// 작성 완료 후
// 1. ctl + x
// 2. y
// 3. 엔터
- 59 23 * * * : 매일 23시 59분에 log.sh 실행
📖 참고
- nohup 사용법 및 날짜별로 rotation하는 방법 - https://green-joo.tistory.com/26#--%--nohup%--%EC%-B%A-%ED%--%--%--%EC%-B%-C%--log%--%ED%-C%-C%EC%-D%BC%--%EC%--%-D%EC%--%B-
728x90
'🎯 etc > Linux' 카테고리의 다른 글
[ nohup ] 세션이 끊겨도 서버가 계속 실행되도록 설정 (0) | 2022.12.14 |
---|---|
[ timezone ] 우분투 시간대(timezone) 변경하기 (0) | 2022.12.14 |
[ Shell ] 쉘(Shell) 스크립트 작성방법 및 vi 명령어 (0) | 2022.12.14 |
[ Ubuntu ] 환경변수 설정 (0) | 2022.11.16 |
댓글