[Shell Script] 파일 내용 삭제 , 빈 파일로 만들기

 파일 내용 삭제 , 빈 파일로 만들기


스크립트 시작할 때 기록 파일, 임시 파일을 초기화 하고 싶을 때  사용합니다 . 

#!/bin/sh

#uptime 명령어 기록 파일 정의
uptimelog="uptime.log"

# 널 명령어로 빈파일 초기화

:> $uptimelog   #1

#10초마다 6번, uptime 명령어 실행
for i in 1 2 3 4 5 6   #2
do
    uptime >> $uptimelog   #3
    sleep 10
done




















이 스크립트는 현재 서버 부하 상태를 확인합니다. 로드 평균치를 출력하는 uptime 명령어 출력 결과를 로그 파일에 10초에 6번 , 즉 1분 간 출력합니다 .


 
스크립트 실행 후 uptime.log의 파일을 살펴봅시다 . 




uptime.log 파일내용




스크립트 실행 중에 상태 기록이나 저장하려고 작업파일을 이용하는 프로그램이 많습니다 . 
그때 주의해야 하는것이 이전에 실행 되었을 때 만든 파일이 남아 있거나, 이상 종료해서 작업파일 흔적이 남는것 입니다 . 


그런 문제를 피하기 위해 스크립트에서는 우선 빈 파일을 작성해 환경을 초기화하는 방법을 사용합니다 . 
이 예제 처럼 아무것도 출력하지 않는 :(널 명령어) 를 리다이렉트 하는 법을 간단해서 자주 쓰입니다.


#1은 :(널명령어)을 이용하여 빈파일을 작성하는 부분입니다 . 
여기서는 : 출력 결과를 리다이렉트 합니다 . 
: 은 아무것도 출력하지않으므로 빈파일을 스스로 생성합니다 . 



#2로 uptime 명령어를 반복하기 위해 for문을 사용합니다 . 여기에서는 6번 반복 하므로 1 부터 6까지 목록을 지정합니다 . 




#3에서는 로그 파일에 uptime 명령어 출력결과를 기록합니다 . 
여기에서는 반복마다 내용을 덮어쓰지 않도록 추가 리다이렉트 >> 를 사용합니다 . 
이후 sleep 명령어로 10초간 기다렸다가 uptime 명령어를 실행하기를 6번 반복합니다 .