tar备份系统

一、概述

前几天我通过SSH正在调戏汤姆猫(tomcat)的时候,服务器上CentOS突然挂了。开机grub,使用光盘linux rescue修复提示找不到linux分区,然后想mount硬盘备份系统的时候提示硬盘无法挂载。没有办法只能重装系统。吃一堑长一智,决定定期备份下系统。

何时进行备份?

每天晚上12:00

备份到哪?

显然备份到系统所在磁盘不是明智之举,用户应该备份到外接硬盘或者磁带上面。
为了让文章看上去更简单,本文所做的例子并没有备份到外接设备上,而是在/backup目录下。

要备份什么?

备份整个系统需要占用大量的磁盘空间,所以我决定只有星期天的时候对系统进行全部备份,其他时间备份重要的数据。

备份整个系统,因此这里需要考虑的是不必备份的目录:
/backup
/proc
/lost+found
/sys
/mnt
/media
/dev
/tmp

备份的数据:
/home (你懂的)
/work (我的工作目录)
/opt (软件安装目录)
/var/lib/mysql (mysql数据文件目录)
另外还需要保持一些重要的配置文件:
/etc/profile (各种环境变量)
/etc/bashrc (各种环境变量)
/etc/crontab (设置定时备份)
/etc/fstab (存放文件系统信息,其实我备份文件是存放在其他磁盘的,磁盘的挂载在这里设置)

备份方式

tar支持三种方式进行备份:
1.完整备份:备份指定的所有目标文件或文件夹
2.增量备份:仅备份atime与上次备份不同的文件或文件夹
3.差异备份:与增量备份差不多,只是增加了对Windows文件系统的支持
我这里选择完整备份

何时删除?

系统备份数据保存两周,数据备份保存一周

二、基础知识

atime,ctime,mtime

UNIX系統將时间分为三种:
atime(Access time):文件上次被访问时间。ls -lu查看
ctime(status Change time):文件的属性或内容上次被修改的时间。ls -lc查看
mtime(Modified time):文件的內容上次被修改的时间。ls -l查看
需要说明的是Linux 文件系统从来不存储文件创建时间。

为了方便查看各种时间,这里提供一个脚本

#!/bin/bash
#用法:脚本名 文件
if [ $# != 1 ];then
    echo "输入参数不正确,需要输入一个文件"
    exit 1
fi
file=$1
if [ ! -f "$file" ]; then
     echo "$file 文件不存在"
 else
    echo "ctime(status Change time): $(ls -lc $file | awk ‘{print $6, $7, $8}‘)"
    echo "atime(Access time):        $(ls -lu $file | awk ‘{print $6, $7, $8}‘)"
    echo "mtime(Modified time):      $(ls -l $file | awk ‘{print $6, $7, $8}‘)"
 fi

利用cron定时备份

新建cron计划任务非常简单,以下方法都可以完成:
方法一:
$ crontab -e
方法二:
# vim /etc/crontab
方法一只能以当前用户的权限运行计划的任务;方法二可以指定程序以哪个用户执行,但是必须以root身份编辑该文件。
在此,因为要对整个文件系统进行备份,因此仅以/etc/crontab为例进行介绍:
# m h dom mon dow user command
0 0 * * * root /work/mybin/backup.sh

这行配置表明,在每天0:00分执行/work/mybin/backup.sh这个脚本
这样设置后如果无效,需要service crond reload以及service crond restart命令重读配置文件以及重启服务来生效。

三、脚本

#!/bin/bash
#
#星期天进行系统全部备份,其他时间进行部分数据备份。
DATA="/work /home /opt /var/lib/mysql /etc/profile /etc/bashrc /etc/crontab /etc/fstab "
DATA_VALI=7   #数据文件有效期
SYS_VALI=14   #系统文件有效期

set $(date)
if test "$1" = "Sun" ; then
tar -czvpf "/backup/system_backup_$6-$2-$3.tar.gz"   --exclude=/proc --exclude=/lost+found --exclude=/sys --exclude=/mnt --exclude=/media --exclude=/dev --exclude=/tmp /
else
 tar -czpvf "/backup/data_backup_$6-$2-$3.tar.gz" $DATA
fi

find /backup -type f -name "data*" -mtime +$DATA_VALI -exec rm -rf {} \;
find /backup -type f -name "system*" -mtime +$SYS_VALI -exec rm -rf {} \;

这里说明两点

data时间格式问题:

我的linux环境是中文的,shell终端或shell脚本中执行date命令,得出的结果都是这样的:
2013年 05月 21日 星期二 10:13:56 CST
但是在crontab定期执行shell脚本中,得出的结果却是这样的:
Tue May 21 10:13:56 CST 2013
所以判断是否是星期天的是才用”if test “$1″ = “Sun” ; then”

find与mtime

find可以根据时间进行查找。atime,ctime和mtime上面已经讲过了,这里说明下-mtime后面加的数字。
1.直接上数字
表示距离当前时间第几天的文件。需要注意是这个时间不是按照日期的,是根据从当前时间(2013年5月21日13:19:10)向前推24小时表示0.也就是0表示24小时内修改过的文件,1表示24-48小时内修改过的文件,2表示48-72小时修改过的文件。
2.+数字
表示几天以外的修改过的文件,+1表示1天以修改过的文件(距离现在>48小时),+2表示2天以外修改过的文件(距离现在>72小时)
3.-数字
表示几天以内的修改过的文件,-1表示1天以修改过的文件(距离现在<24小时),-2表示2天以内修改过的文件(距离现在<48小时)

tar备份系统

时间: 2024-11-08 19:22:22

tar备份系统的相关文章

tar备份系统的方法

下面是备份系统的方法: 然后打开终端,输入以下命令: 1.成为根用户:   sudo su 2.转到根目录:   cd / 然後,下面就是我用来备份我的系统的完整的命令:tar -cvpzf /media/sda7/backup.tgz --exclude=/proc --exclude=/lost+found --exclude=/mnt --exclude=/sys --exclude=/media / 接着,让我们稍微解释一下:     tar 是用来备份的程序     c - 新建一个备

buntu下备份系统的方法

今天不小心强行结束了一不知道用处的进程,结果造成进不了x界面,gdm启动不了,使用apt-get进行修复,结果几乎要把整个x界面有关的软件包删除,所以只好重装系统,为了防止下次出现类似的问题,所以把系统做了一个备份. 备份的方法有两种,一种是通过一种软件进行被份,另外一种是通过命令行进行备份. 软件备份的方法是下载一个叫UCloner的软件.使用方法压缩包内已经说明了我就不再多说,不过因为这个软件说只支持Ubuntu 10.10 10.04 和9.10,所以别的版本就要使用命令行进行备份了. 下

备份系统用户名和密码

Windows2008 用户及管理: 备份系统所有账号信息 备份系统所有账号信息 备份系统所有账号信息 备份系统所有账号信息:会出现下图情况怎么办: 这是缺少登陆凭证,在控制面板---如: 添加windows凭证就行,如图: 再次备份用户名和密码:如

基于HBase的手机数据备份系统

洞穴逃生 描述: 精灵王子爱好冒险,在一次探险历程中,他进入了一个神秘的山洞.在洞穴深处,精灵王子不小心触动了洞穴内暗藏的机关,整个洞穴将很快塌陷,精灵王子必须尽快逃离洞穴.精灵王子的跑步速度为17m/s,以这样的速度可能是无法逃出洞穴的.庆幸的是精灵王子拥有闪烁法术,可在1s内移动60m,不过每次使用闪烁法术都会消耗魔法值10点.精灵王子的魔法值恢复的速度为4点/s,只有处在原地休息状态时才能恢复. 现在已知精灵王子的魔法初值M,他所在洞穴中的位置与洞穴出口之间的距离S,距离洞穴塌陷的时间T.

Duplicati 教程:开源备份系统

Duplicati v2.0.1.20 发布了,Duplicati 是一个开源的备份系统,采用100%的托管C#实现,可支持 Windows 和 Linux 的备份. Duplicati是一個可在Linux/Windows下使用的開源軟體,可以將檔案定時備份到電腦中的資料夾.Windows或Samba檔案 伺服 器.FTP伺服器.WebDAV伺服器.Amazon S3雲端儲存服務,甚至以SSH方式備份.備份可通過密碼進行加密,數據備份和復原也可透過圖形界面進行.Duplicati更可管理備份歷史

企业数据中心备份系统搭建记录

一.备份系统选择 BackupPC,选择原因:功能满足数据备份需求.图形化web界面.客户机无需安装任何客户端软件 二.backuppc安装配置 centos6.3使用yum安装, 安装EPEL 源,http://linux.cn/article-2324-1.html wget http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm wget http://download.fedoraproj

VHD进阶:差分VHD备份系统

VHD进阶:差分VHD备份系统 一.创建虚拟磁盘 方法1:图形界面创建 1.打开磁盘管理器(运行diskmgmt.msc),在“磁盘管理”上点击右键,“创建VHD”,类型选择VHD,动态扩展或者固定大小随意,两种类型性能一样.比如,我们在D盘建立一个大小20G的名为WIN8.VHD的虚拟磁盘镜像.加载刚才创建的VHD,初始化磁盘并分区,设定盘符为F:(如果要安装系统,别忘了激活,如果在UEFI下启动,一定要初始化为GPT磁盘). 方法2:命令行创建(不推荐) 管理员打开CMD,输入下列指令(仅供

快速复制电脑C盘——轻松备份系统

快速复制电脑C盘--轻松备份系统 怎么样能够快速且安全的复制电脑C盘,保证C盘文件数据安全呢?首先我们就应该对我们的电脑C盘进行备份.复制是一种途径,但是C盘是我们电脑的系统盘,有的数据是对复制操作受限的,想要完全复制C盘那么选择对C盘备份是最佳解决方案. 通常来说一款好的备份软件就可以几个步骤全部搞定,快速且安全的复制电脑C盘,我们来看看下面这个操作图解: 第一步:下载轻松备份专业版,然后安装并运行.在"备份"栏下点击"系统备份". 第二步:选择一个镜像文件的保存

备特佳容灾备份系统

-- 集数据库备份.文件备份.操作系统备份于一体的综合实时备份系统 针对Windows.Linux.Unix平台下的各类数据库.文件.操作系统进行智能备份的CDP灾备系统.具有实时备份.任意回退.业务接管.异地容灾.集中备份.异构备份.集中管理.中转备份.信息报警等功能. 支持全系列32位和64位的Windows操作系统(包括IA安腾系列的CPU):支持HP-UX.Saloris.AIX等Unix操作系统:支持Redhat.Redflag.SUSE.Ubuntu.中标麒麟等Linux系统:支持M