专栏首页北京马哥教育linux下用tar进行数据备份

linux下用tar进行数据备份

豌豆贴心提醒,本文阅读时间7分钟

本机上数据的手工备份

Linux系统上配有功能强大的tar命令,可以灵活地备份数据。

tar最初是为了制作磁带备份而设计的把文件和目录备份到磁带中,然后从磁带中提取或恢复文件。

当然,现在我们可以使用tar来备份数据到任何存储介质上。

tar非常易于使用稳定可靠,而且在任何 Linux系统上都有这个命令。因此是最经常使用的备份工具。

1.使用tar命令备份数据的格式如下:

上述命令是将/home/html 目录下的所有文件打包成tar文件backup.tar。

cvf是tar的命令参数。

  • c代表创建一个档案文件,
  • v代表显示每个备份的文件名字,
  • f表示tar创建的档案文件名是后面的backup.tar,
  • /home/html 代表tar要备份的文件或和目录名。

通常情况下,tar对文件进行备份的时候并不对文件进行压缩,因此备份文件的尺寸非常大。

使用如下的命令,将使tar在备份结束以后,自动使用gzip命令对备份文件进行压缩,得到一个相应的gz文件:

这样,我们可以得到压缩文件backup.tar.gz。

backup.tar.gz是压缩的备份文件。

2.使用tar命令恢复数据的格式如下:

上述命令将备份文件backup.tar恢复到当前目录下。

本机数据的自动备份

使用上述命令,我们可以手工备份数据,但是每天定时做这些操作可能比较繁琐。Linux为我们提供了强大的工具来进行自动备份。这就是cron。

cron是一个后台进程,一旦启动,将根据自己的配置文件定时地执行任务。

我们可以编写一个shell脚本文件来进行文件备份,然后让cron定时地启动这个脚本文件来对数据进行备份。

例如,我们每天备份/home/html目录下的所有的文件到/home/admin/backup/backup_xxxx目录下,xxxx代表备份的日期。这个工作,可以编写一个如下的shell脚本backup.sh来进行:

这个脚本在备份数据的时候,自动读取系统日期,然后以系统当前的日期建立一个新的目录,将备份的数据打包压缩放在这个目录中。

我们可以在系统中通过执行:$sh backup.sh ,完成备份工作。

如果键入:$chmod +x backup.sh ,可以将backup.sh设置为可运行。

这样,我们就可以直接通过键入$./backup.sh来运行备份脚本文件了。

一般情况下,我们希望在系统负载不是最大的时候来进行数据备份。通常,我们可以选择每天的凌晨3:00来进行数据备份(这段时间,你的服务器访问的人数应该最少吧?)。把一切工作交给 cron吧。

cron启动以后,它检查/var/spool/cron/目录中的配置文件来找到所要执行的任务和执行任务的时间,依据这些设定在规定的时间执行规定的任务。

这个任务配置文件可以由crontab -e 命令来编辑。

其格式为每行代表一个任务和规定的执行时间。

每行由6个域组成:

分钟小时每月的天月星期命令

上述6个域之间用空格或Tab分开,其中:

  • 分钟:分钟域,值的范围是0到59
  • 小时:小时域,值的范围是0到23
  • 每月的天:日期,值的范围是1到31
  • 月份:月份,值的范围是1到12
  • 星期:星期,值的范围是0到6,星期日值为0 命令。

所要运行的命令特别的,如果一个域是‘*’,表明命令可以在该域所有可能的取值范围内执行。

如果一个域是由连字符隔开的两个数字,表明命令可以在两个数字之间的范围内执行(包括起止两个数字本身)。

如果一个域是由逗号隔开的一系列值组成的,表明命令可以在这些值组成的范围内执行。

现在,我们编写一个文件,用以在每天的凌晨3:00启动备份shell程序。

键入:crontab -e 命令,

然后输入: 0 3 * * * backup.sh 输入完成后,存盘退出。

键入crontab -l 来检查刚才的输入是否正确。

好了,这样只要Linux服务器不关机,每天凌晨3:00cron都会自动启动backup.sh脚本来对数据进行备份的。你就可以高枕无忧了。

FMS的备份方法

1.备份数据说明:

Foxmail Server系统的数据分为以下几种:

1.1邮件数据:

存在于系统相应目录中。这是比较重要的数据,主要是存放所有用户的邮件内容,邮件信息,邮箱信息,过滤器信息。

目录结构为:[邮件数据存放根目录]/[服务域名]/[用户帐号第一个字母小写]/[用户帐号]/[邮箱结构]。

例如,在默认安装的情况下一个在magedu.com域中的admin用户他的邮箱目录为:/home/webmail/magedu.com/a/admin用户信息数据:存在于数据库中。存放的是用户的个人信息,如用户名,密码等。

1.2用户地址本数据:

存在与OPENLDAP中。主要是用来存放用户的地址本信息。在默认安装的情况下,数据存放在/usr/local/var/openldap-ldbm

1.3日志文件:

包括邮件服务器日志文件,WEB服务器日志文件等,存在于各个服务器相关目录中。在默认安装的情况下,WEB服务器的日志文件会存放在/usr/local/resin/log;邮件服务器的日志文件回存放在/var/log/qmail的目录中。

1.4临时数据:

存放在系统临时目录中,通常是/tmp/webuser目录,用来存放系统的临时数据。

2.数据备份方法说明

数据备份分为以下步骤:

2.1建立备份数据存放目录、日志存放目录。

用户可以把备份数据存放在/home/foxmail/backup;对邮件数据进行打包。根据不同的系统安装情况,邮件数据目录可能不同。默认情况下,邮件数据目录被定在/home/webmail/下。具体情况请查阅系统安装手册。打包命令:

其中xxx是一个事件注释。

2.2对用户信息从数据库中倒出,备份。

具体命令是:mysqldump –u[数据库用户名] –p[数据库密码] [数据库名] > userdata.sql

默认情况下,系统安装的数据库用户名,密码和数据库名都是:qmail

导出后,请把userdata.sql移动到备份数据存放目录中。具体命令:

或者直接把数据库目录打包备份,在mysql数据库存放数据的目录下可以看到一个名叫qmail的数据库,用户可以用上面的打包方式对qmail数据库进行数据备份。

2.3对地址本数据进行备份。

对OPENLDAP的数据目录进行打包。默认情况下是 /usr/local/var/目录,具体命令:tar zcvf addrdata.tar.gz [LDAP数据目录名],并把数据包移动到备份数据存放目录下,方法与上面类似。

或者用户可以使用OPENLDAP的命令进行备份:ldapsearch –b ‘o=FOXMAIL’ objectclass=* -x –Hldap://192.168.1.227:1212 >ldapdata.ldif如果用户地址本数据太多能会出现搜索上限问题,可以修改OPENLDAP的配置文件来解决这个问题。

修改方法是:在/usr/local/etc/openldap/slapd.conf文件中插入:

sizelimit 50000

2.4对日志文件进行备份。

通常是备份邮件服务器日志和WEB服务器日志。默认情况下,邮件服务器日志目录为/var/log/qmail/,而WEB服务器日志存放于/usr/local/resin/log/目录下。请把相关文件打包,移动到日志存放目录中。

2.5对临时数据进行删除。

在系统运行了一段时间后,系统数据目录中,会积累了一定容量的临时数据。为了提高系统的效率和空余系统磁盘空间,请把临时数据删除。具体方法是:把FoxmailServer停掉,命令FoxmailServer stop;把临时目录中的所有目录删除(默认在/tmp/webuser/下),进入/tmp/webuser/,把这个目录中的所有目录和文件,一并删除。

3.用cron对FMS进行数据备份

3.1增加cron纪录:

crontab–e

增加纪录行:0 3 * * * /home/foxmail/bin/backup.sh

3.2创建脚本:/home/foxmail/bin/backup.sh

通过以上两个步骤就可以在每天三时对系统数据做一个备份,不过在大用户量的情况下,就不必对webmail做每天的备份,因为这样很快就会占满所有硬盘空间。可以backup.sh中把相应的行注释掉。

4.数据回复方法说明:

当系统出现灾难性故障,可以通过恢复备份数据来恢复系统,步骤如下:

  • 把邮件数据备份包maildata.tar恢复到系统的邮件数据存放目录中;
  • 把用户信息备份文件userdata.sql恢复到数据库中,具体方法是:用数据库帐号进入数据库(默认为qmail);
  • 通过命令show tables获取所有表信息;
  • 通过命令drop table [表名],把所有表删除;
  • 退出数据库;通过命令mysql –u[用户名] –p[用户密码] [数据库名] < userdata.sql,重新把备份数据导入数据库。
  • 把地址本备份信息覆盖原来的数据文件,默认情况是/usr/local/var下的openldap的相关文件。

5.小结

实际备份脚本backup.sh:

本文分享自微信公众号 - 马哥Linux运维(magedu-Linux)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-03-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 学会用各种姿势备份MySQL数据库

    前言 我们试着想一想, 在生产环境中什么最重要?如果我们服务器的硬件坏了可以维修或者换新, 软件问题可以修复或重新安装, 但是如果数据没了呢?这可能是最恐怖的事...

    小小科
  • MySQL/MariaDB数据库备份与恢复

    前言 数据库一般存放着企业最为重要的数据,它关系到企业业务能否正常运转,数据库服务器总会遇到一 些不可抗拒因素,导致数据丢失或损坏,而数据库备份可以帮助我们...

    小小科
  • 只需五步,完美利用命令行工具创建LinuxMac系统下的网站备份

    创建网站备份应该是一个网站管理员最为重要的日常工作之一。但现实情况是,备份这一步往往被很多人忽略,也就是说仍然有很多网管的网站安全意识较低。 所有的Linux/...

    小小科
  • Oracle数据库备份与恢复的三种方法

    Oracle数据库有三种标准的备份方法,它们分别是导出/导入(EXP/IMP)、热备份和冷备份。导出备件是一种逻辑备份,冷备份和热备份是物理备份。 一、 导出/...

    企鹅号小编
  • pandas入门教程

    pandas是一个Python语言的软件包,在我们使用Python语言进行机器学习编程的时候,这是一个非常常用的基础编程库。本文是对它的一个入门教程。

    昱良
  • 使用.net core ABP和Angular模板构建博客管理系统(实现博客列表页面)

    易兒善
  • Eclipse JSP/Servlet 环境搭建

    写这篇文章纯属无聊,最近在自学React和Vue这两个前端的主流框架,毕竟不会这两个框架的话找工作想拿高工资是不现实的,没办法,学习起来还是有点吃力的,毕竟是全...

    何处锦绣不灰堆
  • 微软推出VR系统“FlashBack”,号称能提高移动VR用户体验

    镁客网
  • 商业5G网络架构比较:KT与SK Telecom

    本文分析了KT和SK Telecom的商业5G网络建设的现状,以及各自所追求的5G价值的差异。

    SDNLAB
  • Mysql数据库定时备份

    在MySQL中提供了命令行导出数据库数据以及文件的一种方便的工具mysqldump,我们可以通过命令行直接实现数据库内容的导出dump,首先我们简单了解一下my...

    剑行者

扫码关注云+社区

领取腾讯云代金券