当前位置: > 数据库 > Oracle >

linux下web目录文件全备shell脚本

时间:2014-09-03 00:34来源:linux.it.net.cn 作者:it
一个linux web目录与文件全备份的shell脚本,文件全备脚本,并删除7天以前的文件,linux shell的实例代码。

例子,linux shell脚本实现文件全备份。

代码:
 

#!/bin/bash 
#文件全备脚本 
#删除7天以前的文件 
#调用方法 
#www.leduz.com 编辑整理
#请主意所有路径都为全整目录 
#sh filebak.sh  要备份的目标目录 备份文件存放路径 保留文件的天数  
#sh filebak.sh  /home/wd/wd/wd /home/wd/wd/bakup 7 
#sh filebak.sh  /home/dd/dd/dd /home/dd/dd/bakup 7

#path 
path=$1 
backupPath=$2 
n=$3

#参数不全 
if [ "$path" == "" ] || [ "$backupPath" == "" ] || [ "$n" == "" ]; then 
echo "Insufficient arguments" 
exit 1 
fi

#目标目录不存,退出 
if [ ! -d "$path" ]; then 
echo "Directory does not exist" 
exit 1 
fi

#如果存放备份文件的目录不存,新建 
if [ ! -d "$backupPath" ]; then 
mkdir "$backupPath" 
fi

#Time information 
#时间 
time=`date +"%Y-%m-%d-%H-%M-%S"` 
day=`date +"%d"` 
month=`date +"%Y-%m"` 
weekday=`date +"%u"`

#路径最后一个目录 
folderName=`basename $path` 
fileName=$folderName$day$time.tar.gz

#如果文件存在,删除 
if [ -e "$fileName" ]; then 
rm -rf $fileName 
fi

cd $path 
cd .. 
tar -zcf  $fileName $folderName

#移动备份文件到备份目录 
mv  $fileName $backupPath

#删除N天前的数据 
find $backupPath -name "$folderName*.gz" -type f -mtime +$n -exec rm  {} \;

第二步,设置crontab定时计划任务。
根据需要设置相关备份规则,此处略则部分规则:
 

#每天1点备份 
0 1 * * * cd /opt/backup/database && ./1.sh

#每周一1点备份 
0 1 * * 1 cd /opt/backup/database && ./1.sh

#每2小时备份 
0 */2 * * * cd /opt/backup/database && ./1.sh

#每2天备份 
0 0 */2 * * cd /opt/backup/database && ./1.sh

#每个月5号1点20分备份 
20 1 5 * * cd /opt/backup/database && ./1.sh


(责任编辑:IT)
------分隔线----------------------------