我能夠腳本備份過程,但我想爲存儲服務器創建另一個腳本以進行基本文件輪換。 我想做什麼: 我想將我的文件存儲在我的/ home/user/backup文件夾中。只想存儲10個最新的備份文件,並將它們命名爲: site_foo_date_1.tar site_foo_date_2.tar ... site_foo_date_10.tar site_foo_date_1.tar是最新的備份文件。 過去的num10文件將被刪除。 我從其他服務器傳入的文件只是這樣命名的:site_foo_date.tarshell備份腳本重命名
我該怎麼做? 我想:
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