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

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

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中国”

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
6天前
|
资源调度 JavaScript 搜索推荐
Linux系统之部署envlinks极简个人导航页
【4月更文挑战第11天】Linux系统之部署envlinks极简个人导航页
40 2
|
9天前
|
缓存 Linux 测试技术
安装【银河麒麟V10】linux系统--并挂载镜像
安装【银河麒麟V10】linux系统--并挂载镜像
59 0
|
9天前
|
监控 Unix Linux
Linux操作系统调优相关工具(四)查看Network运行状态 和系统整体运行状态
Linux操作系统调优相关工具(四)查看Network运行状态 和系统整体运行状态
26 0
|
16天前
|
存储 前端开发 Linux
Linux系统之部署ToDoList任务管理工具
【4月更文挑战第1天】Linux系统之部署ToDoList任务管理工具
61 1
|
18天前
|
存储 传感器 运维
linux系统资源统计工具
【4月更文挑战第1天】Linux系统监控工具如dstat、htop、glances、vmstat、top、iostat、mpstat、sar和atop,用于跟踪CPU、内存、磁盘I/O、网络和进程性能。这些工具提供实时、交互式和历史数据分析,助力管理员优化系统性能和故障排查。例如,dstat是vmstat等工具的增强版,htop提供彩色界面的进程管理,而atop则结合了多种功能并记录历史数据。
27 5
linux系统资源统计工具
|
7天前
|
存储 算法 Linux
【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现
【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现
20 6
|
17天前
|
Ubuntu 架构师 Java
Linux系统常用命令非常详细建议收藏
Linux系统常用命令非常详细建议收藏
48 0
|
23天前
|
存储 算法 Linux
【Linux系统编程】Linux 文件系统探究:深入理解 struct dirent、DIR 和 struct stat结构
【Linux系统编程】Linux 文件系统探究:深入理解 struct dirent、DIR 和 struct stat结构
36 0
|
2天前
|
运维 网络协议 Unix
18.系统知识-Linux常用命令
18.系统知识-Linux常用命令
|
11天前
|
Prometheus 监控 Cloud Native
【Linux】查看系统内存命令(详细讲解)
【Linux】查看系统内存命令(详细讲解)