Linux 上使用 backup-manager 进行系统备份

Linux 上使用 backup-manager 进行系统备份

无论简单与否,我们都有机会去了解这么一件事,那就是备份的重要性从来都不可以被低估。考虑到备份的方法真的多如牛毛,你可能想要知道怎样来有效地为你的系统选择正确的工具和和合适的策略。

在本文中,我将为你介绍backup-manager,一个简单易用的命令行备份工具,在大多数的Linux发行版的标准软件库中都能见到它的身影。

是什么让备份管理器在众多的备份工具或备份策略中脱颖而出呢?让我来简单介绍一些它的与众不同的特性吧:

  • 简单的设计与管理:配置文件易于读懂和编辑,即便是初学者也很容易上手。
  • 一劳永逸:它在配置好后就可以通过cron周期性运作。
  • 支持多种协议远程备份:无缝整合多种传输协议、应用和云后端(如,FTP,SCP,SSH-GPG,rsync,AWS S3等等)来传输生成的归档包到一组远程主机。
  • 支持数据库备份:包括支持开箱即用备份MySQL/MariaDB和PostgreSQL数据库。
  • 支持加密:备份过程中支持基于GPG文件的加密。

在Linux上安装备份管理器

备份管理器的安装是快速而无痛的,因为它就包含在大多数Linux发行版的基础软件库中。

Debian,Ubuntu及其衍生版


  1. # aptitude install backup-manager

在基于Debian的系统中安装时,会提示你输入要存放备份归档文件的目录。如果选择的目录不存在,那么当你首次运行备份管理器时它会自动创建。

选择OK并按回车键。

在下一步中,会询问你要备份的所有目录(用空格分隔)。建议,但不是严格要求,列出同一父目录中的几个子目录,而不要仅仅输入父目录。

你可以跳过该步骤并在以后对配置文件中BM_TARBALL_DIRECTORIESb变量进行设置。否则的话,就请尽可能多地添加你想要的目录,然后选择OK:

Fedora或CentOS/RHEL


  1. # yum install backup-manager

在CentOS/RHEL上,在运行以上yum命令前,你将需要先启用EPEL仓库

配置备份管理器

备份管理器的主配置文件是/etc/backup-manager.conf。该文件被划分为几个章节,里面定义了备份方法和相关的变量(或“键值”),这些配置让备份管理器成为一个多样化的工具,可以广泛地应付各种状况。

出于演示目的,我们将考虑以下环境:

  • 每周对/etc,/home以及/var/log目录进行一次完整备份(我们将在下面通过cron设置备份的频率)。
  • 通过SSH传输.tar.gz备份归档文件到两台不同主机dev1和dev3上指定的目标目录。
  • 通过SSH备份本地MySQL数据库到相同目标主机。

用你喜爱的文本编辑器打开/etc/backup-manager.conf文件,并编辑以下变量。如果你愿意,你大可不必理会那些#开头的行。在本文中,它只是用作说明的注释:


  1. # Specify the backup method(s) that will be used.
  2. # tarball: takes a list of directories and builds the corresponding tarballs.
  3. # mysql: archives MySQL databases using mysqldump. To restore the database, you # need to use the same tool manually.
  4. export BM_ARCHIVE_METHOD="tarball mysql"
  5.  
  6. # Where to store the backups.
  7. export BM_REPOSITORY_ROOT="/var/archives"
  8.  
  9. # The following directive indicates backup-manager to name
  10. # the generated files after the directory that was backed up.
  11. export BM_TARBALL_NAMEFORMAT="long"
  12.  
  13. # Define the compression type for the generated files.
  14. export BM_TARBALL_FILETYPE="tar.gz"
  15.  
  16. # List the directories that you want to backup.
  17. export BM_TARBALL_DIRECTORIES="/etc /home /var/log"
  18.  
  19. # Exclude some subdirectories or file extensions.
  20. export BM_TARBALL_BLACKLIST="/var/log/myotherapp.log *.mp3 *.mp4"
  21.  
  22. # List the database(s) that you want to backup, separated by spaces.
  23. export BM_MYSQL_DATABASES="mysql mybase wordpress dotclear phpbb2"
  24.  
  25. # MySQL username.
  26. export BM_MYSQL_ADMINLOGIN="root"
  27.  
  28. # MySQL password for username.
  29. export BM_MYSQL_ADMINPASS="mypassword"
  30.  
  31. # Add support for DROP statements (optional).
  32. export BM_MYSQL_SAFEDUMPS="true"
  33.  
  34. # The hostname or IP address where the database(s) reside.
  35. export BM_MYSQL_HOST="localhost"
  36.  
  37. # Port where MySQL server is listening.
  38. export BM_MYSQL_PORT="3306"
  39.  
  40. # Compression type (optional).
  41. export BM_MYSQL_FILETYPE="gzip"
  42.  
  43. # Do not archive remote hosts, but only localhost.
  44. BM_TARBALL_OVER_SSH="false"
  45.  
  46. # User account for SSH upload.
  47. export BM_UPLOAD_SSH_USER="root"
  48.  
  49. # Absolute path of the user's private key for passwordless SSH login.
  50. export BM_UPLOAD_SSH_KEY="/root/.ssh/id_rsa"
  51.  
  52. # Remote hosts (make sure you have exported your public key to them):
  53. export BM_UPLOAD_SSH_HOSTS="dev1 dev3"
  54.  
  55. # Remote destination for uploading backups. If it doesn't exist,
  56. # this directory will be created automatically the first time
  57. # backup-manager runs.
  58. export BM_UPLOAD_SSH_DESTINATION="/var/archives/backups/$HOSTNAME"

运行备份管理器

要手动运行备份管理器,请输入以下命令。你也可以选择添加‘-v’标识以便一步一步详细检查运行过程。


  1. # backup-manager

BM_TARBALL_DIRECTORIES列出的目录将作为tarball备份到BM_REPOSITORY_ROOT目录,然后通过SSH传输到BM_UPLOAD_SSH_DESTINATION指定的主机dev1和dev3。

正如你在上面图片中看到的那样,备份管理器在运行的时候创建了一个名为/root/.back-manager_my.cnf的文件,MySQL密码通过BM_MYSQL_ADMINPASS指定。那样,mysqldump可以验证到MySQL服务器,而不必在命令行以明文格式接受密码,那样会有安全风险。

通过cron运行备份管理器

一旦决定哪一天是进行每周备份的最佳日子(最佳时间),你可以让cron来为你运行备份管理器。

打开root的crontab文件(注意,你必须以root登录):


  1. # crontab -e

假定你想要在星期天的上午5:15分运行备份管理器,那么就添加下面这行。


  1. 15 05 * * 0 /usr/sbin/backup-manager > /dev/null 2>&1

小结

在本文中,我已经展示了备份管理器这个备份工具是怎样的简单而强大,并且易于使用。在你的备份策略中,你可能还有其它几个选项需要考虑,请参阅手册页或用户手册,里面也包含了几个部署实例和建议。

希望此文对你有所帮助,请在下面随意提问和评论。

原文发布时间:2014-01-03

本文来自云栖合作伙伴“linux中国”

时间: 2024-08-02 23:44:14

Linux 上使用 backup-manager 进行系统备份的相关文章

UCloner 是一个针对 Ubuntu Linux 编写的系统备份、恢复、克隆工具

http://code.google.com/p/ucloner/Introduction¶  UCloner is a backup/restore/clone tool designed for Ubuntu Linux. In some way it's just like Norton Ghost for Windows.  With UCloner you can backup your Ubuntu system to a squashfs image file. Directly

使用 GIT 备份 linux 上的网页文件

使用 GIT 备份 linux 上的网页文件 BUP 并不单纯是 Git, 而是一款基于 Git 的软件. 一般情况下, 我使用 rsync 来备份我的文件, 而且迄今为止一直工作的很好. 唯一的不足就是无法把文件恢复到某个特定的时间点. 因此, 我开始寻找替代品, 结果发现了 BUP, 一款基于 git 的软件, 它将数据存储在一个仓库中, 并且有将数据恢复到特定时间点的选项. 要使用 BUP, 你先要初始化一个空的仓库, 然后备份所有文件. 当 BUP 完成一次备份是, 它会创建一个还原点,

一台Linux或UNIX机器上设置多个DB2系统

在DB2 for Linux, UNIX,和Windows Version 8之前,SAP客户只能在一台物理机器上安装每个DB2 版本的一个拷贝,因为安装路径是硬编码的.尽管 DB2 Version 8 提供了替换的修订包映像,但是这些映像只用于测试,在生产环境中 SAP 不支持它们. 对于 DB2 9,客户可以在一台物理机器上安装多个 DB2 软件拷贝.数据库的安装是相互独立的.它们可以是不同级别的,可以安装在任何有效路径上.每个拷贝可以独立更新,而不会相互影响.所有装有 DB2 9 的 SA

如何在 Linux 系统上安装 Suricata 入侵检测系统

如何在 Linux 系统上安装 Suricata 入侵检测系统 随着安全威胁的不断发生,入侵检测系统(IDS)在如今的数据中心环境中显得尤为必要.然而,随着越来越多的服务器将他们的网卡升级到10GB/40GB以太网,对如此线路上的硬件进行计算密集型的入侵检测越来越困难.其中一种提升入侵检测系统性能的途径是多线程入侵检测系统,它将 CPU 密集型的深度包检测工作并行的分配给多个并发任务来完成.这样的并行检测可以充分利用多核硬件的优势来轻松提升入侵检测系统的吞吐量.在这方面有两个知名的开源项目,分别

linux系统的超级块坏了,linux上面的做的raid10还能用吗?

问题描述 linux系统的超级块坏了,linux上面的做的raid10还能用吗? linux系统的超级块坏了,linux上面的做的raid10还能用吗? 解决方案 可以数据恢复的. 解决方案二: 也就是说,系统的超级块坏了,上面的部署的raid10无法启作用了,需要修复才能正常使用吗?

在一台Linux或UNIX机器上设置多个DB2系统

在 DB2 for Linux, UNIX, and Windows Version 8 之前,SAP 客户只能在一台物理机器上安装每个 DB2 版本的一个拷贝,因为http://www.aliyun.com/zixun/aggregation/17166.html">安装路径是硬编码的.尽管 DB2 Version 8 提供了替换的修订包映像,但是这些映像只用于测试,在生产环境中 SAP 不支持它们. 对于 DB2 9,客户可以在一台物理机器上安装多个 DB2 软件拷贝.数据库的安装是相

使用虚拟机在 Oracle Enterprise Linux 上免费试用 Oracle 真正应用集群 10g 第 2 版

修订者Wilson注: 为了方便初学者更好地完成本实验,Wilson对本文进行了若干注释 本文所需要的VMware server 1.0.3 注册码是: 注册码1: 98XY4-54VA4-4216V-4PDZ6 注册码2: WH0M5-XW50J-WA4FU-4MTZ3 此外,同学们还应该下载一个FTP客户端工具用于把各种软件从Windows主机传送到Linux虚拟机当中.最好该工具支持ssh2 over ftp协议的,推荐使用FileZilla: http://filezilla.sourc

Oracle 通过odu验证rman backup对于truncate对象备份处理

通过odu挖rman备份前和备份后的数据文件,得知rman backup备份的过程,对绝大多数truncate的表的原始数据未正常备份(为什么是绝大多数,我无法给出解释),这里也可以看出rman backup并非是真正意义上的完全物理上复制(和rman copy还是有区别,copy不能完全被取代) 创建模拟环境  代码如下 复制代码 SQL> select * from v$version;    BANNER ------------------------------------------

在linux上使用BIND建立DNS服务器

尽管Linux在桌面计算的世界中还没有取得引人注目的进展,但作为网络服务器它已经小有名气了.由于其出色的可靠性,我们可以放心地在Linux上运行当今Internet时代所必需的各种重要服务程序.由此,Linux最普遍的一些用途包括用作邮件服务器.Web服务器以及DNS服务器. 下面我们将研究怎样在Red Hat Linux上使用BIND建立一个DNS服务器.BIND(Berkeley Internet Name Domain)是一个在UNIX/Linux系统上实现的域名解析服务软件包.我们将学习