您的位置:首页 > 运维架构 > Shell

shell 文件备份脚本

2017-09-28 20:29 471 查看
#!/bin/bash

#输入参数:文件名
filename=$1
#源文件目录
directory=/opt/docker/cloud-driver-training/apps
#备份文件目录
backupdir=$directory/backup

#删除备份文件函数(备份文件数量设有有上限,超过上限会删除更早之前的备份文件)
function deleteFiles() {
if [ -z $filename ]; then
echo "==========>param filename is null"
return
fi
#列出所有同名文件,按文件更新时间倒序排序
files=`ls -t $backupdir | grep "$filename"`
index=1
#保留的最大备份文件数量
maxFileCount=3
for file in $files
do
#当前备份文件数量大于最大备份文件数量,则删除历史的备份文件
if [ $index -gt $maxFileCount ]; then
echo "==========>backup files count > $maxFileCount, delete history file $backupdir/$file"
rm -rf $backupdir/$file
fi
index=$[$index+1]
done
echo "==========>fileCount:$index"
}

#文件备份函数
function backup() {
#源文件
sourceFile=$directory/$filename
#如果源文件存在,执行备份
if [ -f $sourceFile ]; then
backupFile=$backupdir/$filename`stat -c %y $sourceFile | cut -c 1-10`
echo "==========> moving $sourceFile to $backupFile"
mv $sourceFile $backupFile
#备份完后,清除历史备份文件(如果超出最大备份数)
deleteFiles
else
echo "==========> $sourceFile is not found"
fi
}

echo "==========> do backup"
backup
echo "==========> backup finish"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: