linux实现对上传文件的定时备份、增量备份的方法_Linux

来源:脚本之家  责任编辑:小易  

shell 脚本实现 简单的利用find 带条件去查找 所需要备份的文件然后找出的文件 用 | 递归到tar上去 执行归档 说实在的利用find tar来做增量备份  真不太靠谱追问说的是这个意思的 我也知道 脚本怎么写那。www.zgxue.com防采集请勿采集本网。

介绍

如果你们使用的是类似阿里云的OSS存储服务,那么可以使用服务提供的定时备份,这样可以不用考虑在服务器上做文件备份。

对tomcat目录,每隔4个小时进行一次备份,以当前时间进行命名 1.创建备份目录: mkdir:创建目录 rmdir:删除目录 2.编写运行脚本: vi/touch:创建文件 vi/vim:编辑文件 打成zip包: zip -r /usr/local/deploy/caseiBackups/$(date -d "today" +"

实际上想实现基础的备份还是非常简单的,我们平常使用tar、unzip等命令打包文件,在这个基础上编写一个shell脚本,利用linux的crontab功能添加一个定时执行程序,这样就可以简单实现文件备份。但是这种方式在文件量不断增大后还行吗?答案肯定是不行,当文件量不断增加,所占存储空间增大。这种简单的备份方式会让压缩时间过长,占用过多的存储空间。那么怎么解决这一问题呢?我们可以使用增量备份来避免每一次都对所有文件进行备份压缩而带来的时间和空间的问题。

1、比如每天产生一个/data/access.log这样的文件,我们每天备份到backup目录的access_2011-01-12.log.gz这样的文件。 2、增加计划任务 export EDITOR=vi crontab -e 0 0 * * * /data/bak.sh; 3、bak.sh文件内容如下: cat /data/bak.sh #!/bin/ba

下面介绍一下实现方式(linux系统环境)

是啊,这个我也想知道的,想看看下。

在编写脚本之前需要先查看一下服务器上是否有crontab功能

数据库与数据库之前不能直接还原。比如oracle8i升级到oracle10G。你不能用oacle8i的备份文件,直接给oracle10G数据库还原。更别说你是两个不同的数据库了。需要数据转换,

注:在这里要赞一下这个crontab功能,确实十分实用

数据备份软件具备这两个功能才可以实现,带有这两个功能的数据备份软件,在你设定数据备份任务的时候,会提示你选择这些功能的

使用 rpm -qa|grep crontab命令查看是否已安装crontab

在这里插入图片描述

上图所示,表明已安装。

如果未安装,则使用yum命令进行安装

yum -y install vixie-cronyum -y install crontabs

vixie-cron 是 cron 的主程序;

crontabs 是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序。

如果是内网环境,需要离线安装的可找要离线安装包

1.启动:systemctl start crond.service

在这里插入图片描述

2.查看状态:systemctl status crond.service

在这里插入图片描述

上图所示,表明crontab已经在运行

下面贴上常用命令

systemctl start crond.service//启动命令systemctl status crond.service//查看状态systemctl stop crond.service//关闭命令systemctl restart crond.service//重启systemctl enable crond.service//开机运行

有人用的不是systemctl命令,特此贴出service常用命令

service crond start //启动服务service crond stop //关闭服务service crond restart //重启服务service crond reload //重新载入配置service crond status //查看crontab服务状态

创建脚本文件

 vim backup.sh

写入脚本命令(注:这个脚本是从网上找的,未找到原出处)

#!/bin/bash#好的做法#根据项目不同来重命名该脚本#例如 amountebak.sh or pandawillsbak.sh#该脚本最好放在 $bakpp定义的绝对路径部分#你可以 在$bakpp下找到相应的备份文件#例如 /usr/backup/amountebak.sh or /usr/backup/pandawillsbak.sh########## Init Path ######### 在下面的参数中必须定义的参数有 $bakpp、$project、$projectppTAR=/bin/tar# 存放备份文件的地方,以项目名称区分bakpp=/data/file_backup/"$project"# 需要备份的文件夹,文件夹的路径project=fileprojectpp=/data/# parament for varibleym=`date +%Y%m`ymd=`date +%Y%m%d`# 存储备份文件的子目录,以月份区分,他的上级目录是$bakpp定义的monthbakpp=$bakpp/$ymgidpp=$monthbakppgidshot=gid$project$ym# 完全备份的文件名fullname=$ym# 增量备份的文件名incrementalname=$ymd# Record the location of the loglog=$bakpp/$project.log############ chk_full ######################## 检查完全备份是否存在,如果不存在就创建它#this function check fullbackup file exist or not , if not then create fullbackup nowchk_full(){if [ -e "$monthbakpp"/"$project"_"$ym"_full.tar.gz ];thenecho ""$project"_"$ym"_full.tar.gz file exist!! ====`date +%Y-%m-%d-%T` " >>$logelsetar_fullfi}######### chk_incremental ######### 检查增量备份是否存在chk_incremental(){while [ -e "$monthbakpp"/"$project"_"$incrementalname"_incremental.tar.gz ]doincrementalname=`echo "$incrementalname + 0.1" | bc `done}######## tar_incremental ######## 执行增量备份tar_incremental(){cd $projectppecho "BEIGIN_TIME=====`date +%Y-%m-%d-%T` ==== CREATE "$project"_"$incrementalname"_incremental.tar.gz" >> $logsleep 3$TAR -g $gidpp/$gidshot -zcf $monthbakpp/"$project"_"$incrementalname"_incremental.tar.gz $projectecho "END_TIME========`date +%Y-%m-%d-%T` ==== CREATE "$project"_"$incrementalname"_incremental.tar.gz" >> $log}######## tar_full ###########tar_full(){touch $gidpp/$gidshotcd $projectppecho "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 $projectecho "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_incrementalelsemkdir -p $bakpp/$ymtar_fullfi}########### let's begin ############## 先检查$bakpp是否存在,如果不存在先创建后备份if [ -d $bakpp ];thenbackupelsemkdir -p $bakppbackupfi#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 查看备份文件里面的文件

使用wq!命令保存文件

这个脚本文件有三处地方需要注意一下:

#存放备份文件的地方,以项目名称区分

bakpp=/data/file_backup/"$project"

#需要备份的文件夹,文件夹的路径

project=file

projectpp=/data/

上面的三个路径要根据自己具体情况进行更改

添加定时任务:输入命令

crontab -e

任务示例

05 03 * * * cd /data/file_backup/;sh file_backup.sh

然后使用 crontab -l 查看即可。

在备份完成后,可使用命令查看备份文件里面的文件

tar -ztf file.tar.gz //查看备份文件面文件

好了,到此定时备份、增量备份就结束了。

特此说明:更安全的方式是另找一个服务器做文件备份存储服务器。在本机完成定时备份、增量备份后,将文件推送到文件备份存储服务器。这样可以保证在磁盘损坏的情况下达到备份功能

到此这篇关于linux实现对上传文件的定时备份、增量备份的文章就介绍到这了,更多相关linux 上传文件备份内容请搜索真格学网以前的文章或继续浏览下面的相关文章希望大家以后多多支持真格学网!

服务器需求:需要备份文件的服务器(服务器端):192.168.10.2(RHEL 5)接收备份文件的服务器(客户端):192.168.10.3(RHEL 5)实现功能:通过rsync工具对turbomail邮件服务器的accounts目录和conf目录进行增量备份。accounts目录:用于存储用户相关信息的目录conf目录:用户配置文件存放目录前提条件:先将turbomail邮件系统安装好(服务器端与客户端操作一样)安装过程如下:1、挂载光驱:mount/dev/cdrom2、将turbomail的安装包拷贝到跟目录下/cd/dev/cdromcp turbomail_linux_x86_xxx.tgz3、解压turbomail安装包tar –zxvf turbomail_linux_x86_xxx.tgz4、启动turbomailcd/turbomailstarttm.shcd/turbomail/web/bin/startup.sh 5、修改启动脚本/etc/rc.d/rc.local使邮件服务器开机自动启动加入以下几行:#turbomail/starttm.sh&turbomail/web/bin/startup.sh&turbomail/safestart.sh&rsync的配置如下:1.服务器端rsync的配置:使用系统自带的rsync工具,插入系统启动光盘,通过rpm安装rsync工具。若采用采用源码包安装,上传安装包到服务器1)tar –zxvf rsyncrsync-2.6.9.tar.gz#解压2)cd rsyncrsync-2.6.9 3)./configure#默认配置,生成编译环境内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • xshell实现windows上传文件到linux主机的方法
  • linux ftp 命令行中下载文件get与上传文件put的命令应用详解
  • 如何在windows桌面使用ftp上传文件到linux服务器
  • windwos下使用winscp和批处理实现通过ssh端口上传文件到linux服务器上
  • linux实现mysql数据库每天自动备份定时备份
  • linux shell实现每天定时备份mysql数据库
  • mysql定时备份之使用linux下的crontab定时备份实例
  • linux vps备份教程 数据库/网站文件自动定时备份
  • apache 配置伪静态详细步骤
  • centos查询软件包的安装位置
  • linux多线程使用互斥量同步线程
  • linux watch命令的使用
  • linux系统中cpu占用率较高问题排查思路与解决方法
  • linux下squid配置详解 squid代理服务器配置
  • apache https配置详细步骤讲解
  • 在centos7系统上编译安装mysql 5.7.13步骤详解
  • linux多线程编程(一)
  • linux inotif机制详解及实例代码
  • linux下怎么安装rsync实现定时增量备份文件
  • 在linux中 如何用find和tar自动备份文件 如何实现...
  • 帮写一个 linux 自动增量备份的shell脚本
  • 如何实现linux上web目录的每天增量备份
  • linux执行定时备份数据脚本
  • linux 每日自动备份文件的脚本
  • linux硬盘文件增量备份用rsync来做 同步文件的话做...
  • 如何在 Linux 下进行实时增量数据备份
  • 如何使用linux下的差异和增量备份
  • 请问:在linux系统设置定时任务,每天自动从远程服...
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全星外虚拟主机华众虚拟主机linuxwin服务器ftp服务器dns服务器tomcat nginxzabbix云和虚拟化服务器其它首页服务器linuxxshell实现windows上传文件到linux主机的方法linux ftp 命令行中下载文件get与上传文件put的命令应用详解如何在windows桌面使用ftp上传文件到linux服务器windwos下使用winscp和批处理实现通过ssh端口上传文件到linux服务器上linux实现mysql数据库每天自动备份定时备份linux shell实现每天定时备份mysql数据库mysql定时备份之使用linux下的crontab定时备份实例linux vps备份教程 数据库/网站文件自动定时备份apache 配置伪静态详细步骤centos查询软件包的安装位置linux多线程使用互斥量同步线程linux watch命令的使用linux系统中cpu占用率较高问题排查思路与解决方法linux下squid配置详解 squid代理服务器配置apache https配置详细步骤讲解在centos7系统上编译安装mysql 5.7.13步骤详解linux多线程编程(一)linux inotif机制详解及实例代码apache开启.htaccess及.htaccessservice temporarily unavailabllinux下实现免密码登录(超详细)apache rewrite url重定向功能的linux下用cron定时执行任务的方法apache性能测试工具ab使用详解centos 6.4安装配置lamp服务器(a阿里云服务器ping不通解决办法(centos+nginx+php+mysql详细配置apache you don""t have permissvmware下centos 7 安装图文教程centos7安装jdk1.8的方法apache 开启重定向 rewrite的实现方法利用linux防火墙隔离本地欺骗地址的方法详liunx 时间函数与时间格式与字符串之间的linux下如何永久修改主机名的方法步骤apache shiro 框架简介如何优雅地删除 linux 中的垃圾文件的方法django 利用pillow 进行简单的设置验证码linux持续集成自动化安装maven的方法
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved