linux文件增量备份,linux 文件增量备份 用tar实现
#!/bin/bash
#好的做法
#根据项目不同来重命名该脚本
#例如 amountebak.sh or pandawillsbak.sh
#该脚本最好放在 $bakpp定义的绝对路径部分
#你可以在$bakpp下找到相应的备份文件
#例如 /usr/backup/amountebak.sh or /usr/backup/pandawillsbak.sh
########## Init Path ########
# 在下面的参数中必须定义的参数有 $bakpp、$project、$projectpp
TAR=/bin/tar
# 存放备份文件的地方,以项目名称区分
bakpp=/usr/backup/"$project"
# 需要备份的文件夹,文件夹的路径
project=test
projectpp=/home/mmroot/zbb/
# parament for varible
ym=`date +%Y%m`
ymd=`date +%Y%m%d`
# 存储备份文件的子目录,以月份区分,他的上级目录是$bakpp定义的
monthbakpp=$bakpp/$ym
gidpp=$monthbakpp
gidshot=gid$project$ym
# 完全备份的文件名
fullname=$ym
# 增量备份的文件名
incrementalname=$ymd
# Record the location of the log
log=$bakpp/$project.log
############ chk_full #######################
# 检查完全备份是否存在,如果不存在就创建它
#this function check fullbackup file exist or not , if not then create fullbackup now
chk_full()
{
if [ -e "$monthbakpp"/"$project"_"$ym"_full.tar.gz ];then
echo ""$project"_"$ym"_full.tar.gz file exist!! ====`date +%Y-%m-%d-%T` " >>$log
else
tar_full
fi
}
######### chk_incremental ########
# 检查增量备份是否存在
chk_incremental()
{
while [ -e "$monthbakpp"/"$project"_"$incrementalname"_incremental.tar.gz ]
do
incrementalname=`echo "$incrementalname + 0.1" | bc `
done
}
######## tar_incremental #######
# 执行增量备份
tar_incremental()
{
cd $projectpp
echo "BEIGIN_TIME=====`date +%Y-%m-%d-%T` ==== CREATE "$project"_"$incrementalname"_incremental.tar.gz" >> $log
sleep 3
$TAR -g $gidpp/$gidshot -zcf $monthbakpp/"$project"_"$incrementalname"_incremental.tar.gz $project
echo "END_TIME========`date +%Y-%m-%d-%T` ==== CREATE "$project"_"$incrementalname"_incremental.tar.gz" >> $log
}
######## tar_full ###########
tar_full()
{
touch $gidpp/$gidshot
cd $projectpp
echo "BEIGIN_TIME=====`date +%Y-%m-%d-%T` ==== CREATE "$project"_"$fullname"_full.tar.gz" >> $log
$TAR -g $gidpp/$gidshot -zcf $monthbakpp/"$project"_"$fullname"_full.tar.gz $project
echo "END_TIME========`date +%Y-%m-%d-%T` ==== CREATE "$project"_"$fullname"_full.tar.gz" >> $log
}
########### backup ##############################
# 总体调用备份,此时会做相应的检查以确保备份前提准备充分
backup()
{
if [ -d $monthbakpp ]; then
chk_full
chk_incremental
tar_incremental
else
mkdir -p $bakpp/$ym
tar_full
fi
}
########### let's begin #############
# 先检查$bakpp是否存在,如果不存在先创建后备份
if [ -d $bakpp ];then
backup
else
mkdir -p $bakpp
backup
fi
#advice you can create a file for put backup file, eg /usr/cctcc
#crontab
#mini hours day month week command
# */5 * * * * /home/mmroot/zbb/aaa.sh
# 0 1 */1 * * /home/mmroot/zbb/aaa.sh
# tar -ztf test.tar.gz 查看备份文件里面的文件
有关crontab的用法请参阅:
遗留问题
1,查看磁盘空间
2,还原方法
3,删除上个月的备份
参考文档:
郑彬:
2009-04-19 16:40:15
这个增量备份有个缺点:删除一个文件或文件夹,增量备份不会做任何记录。所以说你将来恢复的话删除过的文件会被恢复出来!!
谁有解决这个问题的办法吗?
思路:标识文件的几种状态:创建、修改、删除、已备份、未备份盖茨:
2009-05-15 14:51:05
find /bak/*.tar.gz -mtime 30 -exec rm -f {} \;
关于删除请参阅
1,过滤出大小为0的文件
# ll |awk '{print $5,$8}' |grep ^0 |awk '{print $2}'
或者
# find ./ -size 0
2,过滤出大小为0的文件,并将它们删除
# ll |awk '{print $5,$8}' |grep ^0 |awk '{print $2}' |xargs rm -rf
或者
# find ./ -size 0 | xargs rm -f
或者
# find ./ -size 0 -exec rm -f {} \;
-----------------------------------
重点理解 exec参数和 xargs参数
-exec rm {} \; 相当于 rm -f 文件名1 文件名2 文件名3 (只调用了一次rm命令)
xargs rm -f 相当于 rm -f 文件名1; rm -f 文件名2; rm -f 文件名3 (调用了三次rm命令,这样效率更高)
-----------------------------------
# find /root/zbb/ -mtime +4<==四天前修改过的文件# find /root/zbb/ -mtime -4<==四天之内修改过的文件
linux文件增量备份,linux 文件增量备份 用tar实现相关推荐
- Python实现目录文件的全量和增量备份
目标: 1.传入3个参数:源文件路径,目标文件路径,md5文件 2.每周一实现全量备份,其余时间增量备份 1.通过传入的路径,获取该路径下面的所有目录和文件(递归) 方法一:使用os.listdir ...
- 群晖linux文件夹颜色红色,技术干货分享 | 群晖备份Linux文件夹~
以下协议可用作备份源,以使用Active Backup forServer将文件备份到您的Synology NAS: oSMB(Microsoft Windows) orsync 3.0或更高版本(L ...
- 服务器文件增量备份,服务器文件增量备份
服务器文件增量备份 内容精选 换一换 云服务器备份(CSBS,Cloud Server Backup Service)提供对弹性云服务器(Elastic Cloud Server)和裸金属服务器(Ba ...
- linux 怎么增量备份,Linux系统的完全备份和增量备份
Linux, 完全备份, 增量备份 1.完全备份 tar -g snapshot -zcvf backup.tar --directory / --exclude=mnt --exclude=misc ...
- python 读取文件夹 增量文件_Python实现目录文件的全量和增量备份
目标: 1.传入3个参数:源文件路径,目标文件路径,md5文件 2.每周一实现全量备份,其余时间增量备份 1.通过传入的路径,获取该路径下面的所有目录和文件(递归) 方法一:使用os.listdir ...
- Linux 平台下 RMAN 全备 和 增量备份 shell 脚本
一. 一些准备知识 Oracle 分归档和非归档模式. 这两者的区别就是对redo log的处理.归档模式下,当一个redo log 写满之后,就会把这个redo log里的内容写入归档文件,等写完之 ...
- linux新建备份数据库的脚本文件,Linux下shell脚本:自动每日备份网站文件和数据库上传FTP空间...
前言 服务器.vps,难免会遇到各种问题,丢失数据,则必然痛心疾首啊!!! 数据无价,so建议养成定期备份的习惯!而且,要多备份几份,本地.网盘.FTP空间等,都多保存几份! 这里,就为大家带来一个l ...
- linux怎么还原bak文件,Linux restore命令:还原dump操作备份下的文件、目录或分区...
restore 命令是 dump 命令的配套命令,dump 命令是用来备份分区和数据的,而 restore 命令是用来恢复数据的. restore 命令的基本格式如下: [root@localhost ...
- 使用mondo制作备份linux的iso文件
因为项目部署的需要将数据库,tomcat等服务部署到Linux系统中,后面为了方便产品化便于部署所以将整个Linux系统打包成iso文件,给客户进行部署的时候直接进行Linux系统的安装,这样就不用考 ...
最新文章
- 运维开发笔记整理-前后端分离
- 商品规格可选怎么设计_商品模块数据库表解析(一)
- jdk 8 集合对象排序_使用JDK 8流在包装对象的集合和包装对象的集合之间转换
- Java类类getResourceAsStream()方法及示例
- 华为Mate30系列5G版正式开售:有了5G套餐 入手正当时
- linux安装7z到指定目录,linux下安装7zip
- 戴尔创业节丨高效编程利器Vostro低至2099!双11提前享!
- 数字信号中的上采样和下采样
- Feign出现The bean ‘seckill.FeignClientSpecification‘, defined in null, could not be registered. A be
- Python Module — OpenAI ChatGPT API
- 实验07 PHP互动网页
- 早年黑网吧特供游戏《血战上海滩》如何在Win10运行?
- 工业机器人市场需求 将推动建材市场发展
- Microsoft OLE DB Provider for ODBC Drivers (0x80004005) 操作必须使用一个可更新的查询”错误的解决办法
- 【LoadingDialog】标准款待加载对话框
- 淘宝TOP开发:(二)
- PowerDVD20中文版|CyberLink PowerDVD Ultra 20中文版 v20.0.2101.62
- 华为交换机 查ip冲突_交换机如何设置控制IP地址冲突故障
- 初学NLP的相关概念
- 流程图符号及流程图的例子