스크립트가 있습니다
#Check the disk space before backups are taken
echo "Checking Disk Space"
df -H | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5 " " $1 }' | while read output;
echo $output
space=$(echo $output | awk '{ print $1}' | cut -d'%' -f1 )
partition=$(echo $output | awk '{ print $2 }' )
if [ $space -ge 90 ] && ["$partition" == "/tmp"];
then
echo "Running out of space \"$partition ($space%)\" on ($hostname) as of "`date +%D-%l`")" | mail -s "Alert: Almost out of disk space $space%"
exit 1
else
echo "Taking Backups"
cd $mixB
# tar command
cd $profiles
# mysqldump command
echo "Doing a git pull"
# git stuff
echo "Finishing touches"
# stuff
fi
echo "Checking if the website is up"
function test {
res=`curl -s -I $1 | grep HTTP/1.1 | awk {'print $2'}`
if [ $res -ne 200 ]
then
echo "Error $res on $1"
exit 1
fi
}
test http://www.google.com
검색 후 모든 if/fi 태그가 꺼져 있고 검색할 때 특수 문자가 표시되지 않는 것 같습니다 :set lists
. 나는 분명한 것을 놓치고 있습니까? 이 두 가지가 가장 큰 이유인 것 같습니다.
감사해요
답변1
이것은 while
주기입니다.
몇 가지 키워드를 놓쳤습니다. 구문은 다음과 같아야 합니다.
while <condition>; do <work>; done
주기 while
가 시작 while read output;
되고 끝납니다 do .... done
. 그것을 만드십시오:
awk .... | while read output; do
#### Do what you want
done