我能够脚本备份过程,但我想为存储服务器创建另一个脚本以进行基本文件轮换。 我想做什么: 我想将我的文件存储在我的/ 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