2016-09-02 5 views
0

일주일에 한 번 텍스트 파일에 df -g의 출력을 쓰는 스크립트를 작성하고 있습니다. 내 스크립트는 여기에 있습니다. 작동해야한다고 생각하지만, ./check_space.sh를 입력하여 루트로 실행하려고 할 때마다 다음 오류가 표시됩니다. ./check_space.sh : 13 행 : 예기치 않은 토큰 근처에서 구문 오류가 발생했습니다. done' ./check_space.sh: line 13: done '슬립이 거기에 왜 df -g cronjob을 텍스트 파일로 출력

#!/bin/bash 
#this script will run every week to grab a df -g and output it to a file. 
#times to sleep 
     #10080 = 1 week 

#date command 
NOW=$(date +"%m.%d.%y") 

while true, do 
df -g > /sds/app/force/custom/dumplogs/harddisk/$NOW.log 

#sleep 10080 
done 

원래 나는 화면 세션에서이 스크립트를 실행하는 생각, 즉,하지만 빠르게는 일주일에 한 번 크론로 실행하는 것이 더 될 것이라고 결정했다.

+0

다음을 확인하십시오. http://www.shellcheck.net/ – Cyrus

답변

1

문제는 true 뒤에 쉼표로 인해 발생합니다. 올바른 구문은 세미콜론 (while true; do)입니다. 하지만 처음에는 while 루프가 필요하지 않습니다. 다음과 같은 뭔가가 충분합니다 :

#!/bin/bash 

NOW=$(date +"%m.%d.%y") 
df -g > /sds/app/force/custom/dumplogs/harddisk/$NOW.log 

나는 또한 쉽게 날짜를 기준으로 정렬 할 수 있도록, 당신은 날짜 형식으로 %Y-%m-%d을 사용하는 것이 좋습니다 수 있습니다.