0
を返すとコマンドを見つけます。 古いバックアップを検索すると(180日を超える)、findコマンドはそれらを削除します。-deleteはいつも私がバックアップデータベースに、クーロンで使用する小さなbashスクリプトを書いて、ステータスコード0
それはそれらを削除しますが、ないの両方(最初に起こるはずそれはありませんし、削除するものがないとき、それは何も削除していないにも関わらず、常に0を返す0
#!/bin/bash
# Vars
TODAY=$(date +%d%m%y)
BDIR=/backup/
FLOG="/var/log/mydb_backup.log"
# Backing up the db
su -c "pg_dump --format=c --file=${BDIR}mydb_db_backup.${TODAY} mydb" postgres
if [ $? -eq 0 ]; then
LOG="mydb DB of ${TODAY} backed up!"
else
LOG="Problem to back up mydb DB of ${TODAY}"
fi
# Delete db backup older than 180+ days
find ${BDIR} -type f -mtime +180 -delete
if [ $? -eq 0 ]; then
LOG+=" - Old DB backup deleted"
else
LOG+=" - No Old DB backup to delete"
fi
# Writing result
echo ${LOG} >> ${FLOG}
echo $?
を返すとき月のみ)。 私が間違っていることはありますか?
クロスサイト複製:https://serverfault.com/questions/225798/can-i-make-find-return-non-0-when-no-matching-files-are-found –
これは、削除しないためです何もエラーではありません。 'find'は、削除されたファイルの数を返しませんが、実行中に発生したエラーを表すステータスコードを返します。エラーなしで実行されたので、期待通りに0を返しました。 – litelite
真..それは、削除に関してではなく、見つけたことを完全に忘れていました。みんなありがとう!私は何とかそれを修正する;) – Nihvel