web-dev-qa-db-ja.com

シェルスクリプトはファイルが存在するかどうかを確認しますか?

リモートサーバー上のデータをバックアップする簡単なバックアップスクリプトを作成しました。すべてが正常に機能していますが、「バックアップが成功したかどうか」などのレポートが欲しいのですが。

これは私のスクリプトです

# backup CHECK
date1=`date +"%d.%m.%y - %H.%M"`
Host=`hostname`
twdate=`date +"%d.%m"`
performtw=`ls -la|grep "tw"|grep "$twdate" > tmp1.txt`
echo $performtw
if
cat tmp1.txt|grep "tw"
then
echo backup successfull
printf "tw backup success!" | mail -s "tw backup check $date1 repor$
rm tmp1.txt
else
echo backup failure
printf "sitename backup failure!" | mail -s "site backup check $date1 repor$
rm tmp1.txt
fi
exit

しかし、これはうまく機能していないので、もっと簡単で強力な方法があるかどうかを尋ねます。基本的には、ファイル名がxyzで始まり、日付がxyzであるかどうかを確認するだけです。

3
tamani

Nice bash条件付き実行を使用して、ファイルが存在するかどうかを確認できます...

[ -f tmp1.txt ] && echo "Found" || echo "Not found"

あるいは、-newerフラグを指定してfindコマンドを使用することもできます...

find /some/dir -type f -newer $startdate -not -newer $enddate
7
kevino_17