私はバックアッププロセスをスクリプト化できましたが、基本的なファイルローテーションのために私のストレージサーバ用の別のスクリプトを作成したいと思います。 私がしたいこと: 私のファイルを私の/ home/user/backupフォルダに保存します。最も新しい10個のバックアップファイルのみを保存し、次のように名前を付けたい: site_foo_date_1.tar site_foo_date_2.tar ... site_foo_date_10.tar site_foo_date_1.tarは最新のバックアップファイルです。 過去10日でファイルが削除されます。 他のサーバーからの着信ファイルは、次のように単純に名前が付けられます。シェルバックアップスクリプトの名前を変更
どうすればいいですか? 私が試した:
DATE=`date "+%Y%m%d"`
cd /home/user/backup/com
if [ -f site_com_*_10.tar ]
then
rm site_com_*_10.tar
fi
FILES=$(ls)
for file in $FILES
do
echo "$file"
if [ "$file" != "site_com_${DATE}.tar" ]
then
str_new=${file:18:1}
new_str=$((str_new + 1))
to_rename=${file::18}
mv "${file}" "$to_rename$new_str.tar"
fi
done
file=$(ls | grep site_com_${DATE}.tar)
filename=`echo "$file" | cut -d'.' -f1`
mv "${file}" "${filename}_1.tar"
これはどのような問題が発生していますか? – CJxD
は、何らかの理由では、このようにファイルの名前を変更します。 site_foo_date_2.tar site_foo_date_4.tar site_foo_date_6.tar ...次のサイクルで : site_foo_date_3.tar site_foo_date_5.tar site_foo_date_7.tar だから、毎秒数が不足していると私はドン」理由を知りません。 – kesien
私のためにうまく動作します - 私がやることは、説明のついたコードのより弾力性のあるバージョンを作ることです。 – CJxD