在CentOS上安装rsnapshot

在CentOS上安装rsnapshot

IT支持公司工作我需要一个自动备份一堆Linux服务器的解决方案,本指南将引导您在CentOS上设置rsnapshot,以进行自动rsync&ssh二进制差异备份。

在CentOS / RHEL上安装rsnapshot需要EPEL存储库,请遵循我们在CentOS / RHEL上安装EPEL指南,当使用epel repo时,我建议使用YUM优先级

安装epel repo后,以root身份输入以下内容:

yum install rsnapshot

这将安装Rsnapshot并拉下它所依赖的任何包。

打开文件/etc/rsnapshot.conf ,并选择文本编辑器(我使用vi),我们来看看第一节snapshot_root这是rsnapshot存储其备份的位置。 默认情况下,它将它们放在根目录中,但是我已将我的更改为/ backup / snapshots /

# All snapshots will be stored under this root directory.
#
snapshot_root   /backup/snapshots/

接下来我取消注释no_create_root 1 ; 这将停止创建snapshot_root目录的rsnapshot(意味着您必须自己创建它)。 这样做的好处是,如果您备份到USB驱动器,并且您忘记连接它,rsnapshot将不会备份到填充驱动器空间的安装点,并可能导致服务器崩溃(如果您已经分区不正确)。

# If no_create_root is enabled, rsnapshot will not automatically create the
# snapshot_root directory. This is particularly useful if you are backing
# up to removable media, such as a FireWire or USB drive.
#
no_create_root  1

我们正在使用Linux,所以取消注释cmd_cp行。

# LINUX USERS:   Be sure to uncomment "cmd_cp". This gives you extra features.
# EVERYONE ELSE: Leave "cmd_cp" commented out for compatibility.
#
# See the README file or the man page for more details.
#
cmd_cp          /bin/cp

下一个取消注释cmd_ssh并给它ssh二进制文件的正确路径。

# Uncomment this to enable remote ssh backups over rsync.
#
cmd_ssh        /usr/bin/ssh

我取消注释du选项,酷的小工具,显示您的每个快照的大小。 (记住,如果你刚刚在快照目录中做了du -sh * ,那么由于硬链接,它会读取错误)。

# Uncomment this to specify the path to "du" for disk usage checks.
# If you have an older version of "du", you may also want to check the
# "du_args" parameter below.
#
cmd_du          /usr/bin/du

这使我们进入备份间隔,您可以看到我保留了默认值,所以rsnapshot将保留6份我的小时备份,然后再开始编写我的旧版本,7份我的每日备份,每周4次,每月3次备份! 值得注意的是,rsnapshot不会在snapshot_root中创建hour.0之前的daily.0备份,与每周和每月相同。

#########################################
#           BACKUP INTERVALS            #
# Must be unique and in ascending order #
# i.e. hourly, daily, weekly, etc.      #
#########################################
interval        hourly  6
interval        daily   7
interval        weekly  4
interval        monthly 3

全局选项

这些默认值通常是正常的,但是我想要更多的冗长,直到我很高兴备份系统正在工作。 我将设置更改为4而不是3,4在命令行上显示命令,就像手动输入一样,这对我来说足够好了!

# Verbose level, 1 through 5.
# 1     Quiet           Print fatal errors only
# 2     Default         Print errors and warnings only
# 3     Verbose         Show equivalent shell commands being executed
# 4     Extra Verbose   Show extra verbose information
# 5     Debug mode      Everything
#
verbose

日志文件 ,我取消了这个注释,因为日志总是方便地找出出了什么问题。

# If you enable this, data will be written to the file you specify. The
# amount of data written is controlled by the "loglevel" parameter.
#
logfile /var/log/rsnapshot

排除 - 在运行我的第一个备份后,显而易见,我的家庭目录中有一堆VMWare磁盘镜像文件,所以我排除了他们:

# The include and exclude parameters, if enabled, simply get passed directly
# to rsync. If you have multiple include/exclude patterns, put each one on a
# separate line. Please look up the --include and --exclude options in the
# rsync man page for more details on how to specify file name patterns.
#
#include        ???
#include        ???
#exclude        ???
exclude         /home/keith/vmware-disks/

接下来我配置的是备份点,我想从每台机器备份,从localhost开始。

###############################
### BACKUP POINTS / SCRIPTS ###
###############################
# LOCALHOST
backup  /home/          localhost/
backup  /etc/           localhost/
backup  /usr/local/     localhost/
backup  /var/log/               localhost/
backup  /srv/           localhost/
backup  /boot/          localhost/
backup  /opt/           localhost/

现在我要备份我的电子邮件服务器- 死亡之星 ,所以我配置了我的备份服务器,以通过SSH提取数据(有点像那个Star Destroyer在千禧Falcon拉着它的拖拉机梁,是的... ... )。

backup  root@the-death-star.techspotting.org:/home/		the-death-star/
backup  root@the-death-star.techspotting.org:/etc/		the-death-star/
backup  root@the-death-star.techspotting.org:/usr/local/bin/   the-death-star/

这是配置文件编辑的结束,现在是时候给你的配置一个测试:

rsnapshot configtest

这应该回来,说语法OK ,除非你搞砸了一些东西,在这种情况下,它会告诉你的错误线,所以回去修复它!

SSH密钥

通过SSH可以很好地吸引数据,但是我们需要能够自动登录到我们的远程服务器,我们不能仅仅抓住数据并将其拖到我们的服务器上,你认为这是拖拉机?

我对我的服务器使用远程root登录,因为我正在备份像/ etc / passwd这样只能由root读取的位置的文件,是的,有这方面的方法,但是我不希望这个文件复杂化。 我会在将来做一个单独的博客文章,并链接到这里。

所以我们需要设置没有密码的SSH密钥,否则我们将在每次备份运行密码时得到提示。 所以让我开始为您创建一些基于密钥的认证的SSH密钥。

创建密钥对,这将创建公钥和私钥(永远不要给你的私钥!)。

ssh-keygen -t rsa

接受所有默认值,只需在输入时要求您输入密码即可:

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.

您现在应该在/root/.ssh/中有一组密钥。 现在我们需要将它们复制到我们要登录的远程机器上,在这种情况下是-death-star.techspotting.org ,所以这将是命令:

ssh-copy-id -i ~/.ssh/id_rsa.pub root@the-death-star.techspotting.org

然后,您将收到远程主机上您帐户密码的提示,然后输入,ssh-copy-id将密钥复制到正确的目录,并排除正确的文件系统权限,呵呵?

给它一个测试,并确保它的工作:

ssh the-death-star.techspotting.org

如果你看/etc/cron.d/rsnapshot你应该看到一个这样的文件:

# This is a sample cron file for rsnapshot.
# The values used correspond to the examples in /etc/rsnapshot.conf.
# There you can also set the backup points and many other things.
#
# To activate this cron file you have to uncomment the lines below.
# Feel free to adapt it to your needs.
# 0 */4         * * *           root    /usr/bin/rsnapshot hourly
# 30 3          * * *           root    /usr/bin/rsnapshot daily
# 0  3          * * 1           root    /usr/bin/rsnapshot weekly
# 30 2          1 * *           root    /usr/bin/rsnapshot monthly

提供你对默认的cron配置(我是)删除注释,使其看起来像这样:

# This is a sample cron file for rsnapshot.
# The values used correspond to the examples in /etc/rsnapshot.conf.
# There you can also set the backup points and many other things.
#
# To activate this cron file you have to uncomment the lines below.
# Feel free to adapt it to your needs.
0 */4         * * *           root    /usr/bin/rsnapshot hourly
30 3          * * *           root    /usr/bin/rsnapshot daily
0  3          * * 1           root    /usr/bin/rsnapshot weekly
30 2          1 * *           root    /usr/bin/rsnapshot monthly

现在你已经启用了cron来使用rsnapshot备份你的文件,你最好确保它的工作!

rsnapshot -t hourly

检查一切看起来真实,没有什么讨厌会发生,每天,每周,每月重复。

现在是第一次备份的时候了!

rsnapshot hourly

如果您将冗长度设置为4(可选),您将可以看到所有备份的文件在屏幕上飞行! 第一个备份必须移动所有文件的snapshot_root,这将需要一些时间,这取决于您的机器/连接的速度,可能是一个很好的时间来抓住另一个咖啡。

你应该开始看到你的snapshot_root文件,几个星期后你应该看到一堆小时。*每天*每周*

这是我的snapshot_root的样子:

/backup/snapshots# ls -l
total 48
drwxr-xr-x 3 root root 4096 2010-03-21 18:19 daily.0
drwxr-xr-x 3 root root 4096 2010-03-21 18:19 daily.1
drwxr-xr-x 3 root root 4096 2010-03-21 18:18 daily.2
drwxr-xr-x 3 root root 4096 2010-03-21 17:57 daily.3
drwxr-xr-x 3 root root 4096 2010-03-21 17:57 daily.4
drwxr-xr-x 3 root root 4096 2010-03-21 17:56 daily.5
drwxr-xr-x 3 root root 4096 2010-03-21 18:20 hourly.0
drwxr-xr-x 3 root root 4096 2010-03-21 18:19 hourly.1
drwxr-xr-x 3 root root 4096 2010-03-21 18:19 hourly.2
drwxr-xr-x 3 root root 4096 2010-03-21 18:19 hourly.3
drwxr-xr-x 3 root root 4096 2010-03-21 18:19 hourly.4
drwxr-xr-x 3 root root 4096 2010-03-21 17:56 weekly.0

这一切都完成了,任何问题都给我留下了一个评论! 我会尽力在同一天为你答复。 :)

享受您的服务器备份的安心!

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏