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"
相关文章推荐
- 【shell脚本】ftp自动上传mysql备份文件
- SHELL日常文件备份脚本
- 3个备份系统文件并邮件发送的Shell脚本分享
- Shell脚本:使用rsync备份文件/目录
- shell脚本 按序号备份系列文件
- shell备份文件、重命名文件、删除指定文件的3个脚本分享
- Git学习-->如何通过Shell脚本自动定时将Gitlab备份文件复制到远程服务器?
- Shell编写脚本,检测备份文件数并且删除旧的文件
- CentOS中使用Shell脚本实现每天自动备份网站文件和数据库并上传到FTP中(转)
- web服务文件更新自动同步、数据库主从复制、shell脚本实现网站代码备份和mysql备份
- shell脚本实现:每周 5 使用 tar 命令备份/var/log 下的所有日志文件
- shell脚本编程入门基础(附:自动备份与解包文件脚本)
- Shell脚本:使用rsync备份文件/目录
- shell脚本备份本地服务器的文件到远程服务器
- 利用shell脚本将重要文件备份至远程FTP服务器
- 自动化下载并检测ftp文件备份的shell脚本
- 自动化备份远程服务器端的文件到本地的Shell脚本
- 使用RMAN和控制文件备份删除归档日志的SHELL脚本--RED HAT 5 LINUX 64
- shell脚本练习:备份文件(3)再修订版
- shell备份文件、重命名文件、删除指定文件的3个脚本分享