백업 프로세스를 스크립팅 할 수 있었지만 기본 파일 순환을 위해 내 스토리지 서버에 대한 다른 스크립트를 만들고 싶습니다. 내가 원하는 것 : 내/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 일 동안 파일이 삭제됩니다. 다른 서버의 들어오는 파일의 이름은 다음과 같습니다. site_foo_date.tar쉘 백업 스크립트 이름 바꾸기
어떻게하면됩니까? 나는 시도 :
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