数据备份 另一服务器_数据备份关键时刻救命,使用Lsyncd进行文件的同步和备份...

014fac99cdb89e6cdaf72cde1a953d9e.png
文:高效人生手册

今天有时间,我们来探讨在linux下,如何进行文件的同步和备份。

但凡做过系统运维的人都有体会,数据备份何其重要,关键时刻救人一命。而,找到一款合适的工具,更是一件势在必行的先头工作。

对于那些管理和Linux服务器的人来说,这条路早晚要走一遍。

之前使用Rsync工具进行数据备份,它的安装和配置文档稍后整理。


数据备份的原理:

就是在源和目标机器上都安装rsync软件,配置相关信息,启用服务,定时执行即可。

其中定时执行部分需要在cron中配置任务。lsyncd不用配置cron任务。

这段时间有机会了解到lsyncd,发现这个工具的功能完全覆盖之前的rsyncd,除此之外,还有一个亮点功能,实时监控源目录的文件变化,一旦文件有变化就能够进行同步,支持本地,远程同步的方式。

下面,让我们来简单的介绍一下如何使用Lsyncd这个工具吧。


一、首先是安装

在centos上命令很方便,使用yum install lsyncd即可。

如果报错等,可能是需要安装依赖包,如果不能自动解决就手动执行命令:yum install lua lua-devel

ubuntu的话同样操作,命令稍有不同而已。

二、进行功能配置

软件安装完成之后并没有提供配置文件,可以在usr/share/doc/lsyncd/examples目录下找到可以参考的一些例子。

下面,我们来创建配置文件:

vi /etc/lsyncd.conf
settings 

说明一下:

  1. default.rsyncssh方式,启用的是ssh方式远程进行文件的传输。
  2. host后面跟的是目标机器的IP地址,记住前面一定要使用user,特别是ubuntu等机器默认不是root用户的,一定要注明。否则会报错:Temporary or permanent failure on startup nsist" is not set
  3. ssh端口,使用默认的话可以去掉。但是特殊端口则需要写明。
  4. 支持多个sync,上面代码中的第二个sync就是本地备份。

三、配置ssh的免密码登录并启用服务。

# 

下面用centos来连接ubuntu的操作过程如下。

在centos上生成key文件

ssh-keygen   
提示输入文件名称,比如id_rsa
ssh-copy-id -i /刚刚保存的证书目录/id_rsa  你的登录名@服务器地址
提示目标机器的密码
最后测试一下登录
ssh 你的登录名@服务器地址 -p 端口号 -i ~/证书目录/id_rsa

每一步根据提示进行保存即可,记住user不要出错。最后的ssh是用来测试登录的。如果前面两个步骤完成的话,那么第三步是可以直接登录系统的。

然后,我们来启用服务或者重启服务。

service lsyncd start /restart

至此系统配置完毕,在日志中可以看到文件同步的记录,在目标机器上的相应目录下也可以看到同步过来的文件。


四、其他提示

查看log及状态的话可以使用

tail /var/log/lsyncd/lsyncd.log 或者status文件

备注一下,lsyncd使用的是inotify触发机制,监控的文件数默认是8192,修改的话可以在/etc/sysctl.conf中增加一行。

fs.inotify.max_user_watches = 1048576

最后用sysctl -p生效即可。

好了,至此我们已经完成了配置。

从中可以看出来,Lsyncd这个工具也是非常简单的。当然更为深入的应用我们有机会再探讨,在此模式下已经能够解决90%以上的数据备份问题。

附上几个小工具。

查看当前目录下所有文件的个数,用于统计源和目标的备份情况,特别有效。

ls -lR | grep "^-" | wc -l

查看当前目录大小。

du -sh

du -sh * 可以查看每个目录的大小

好了,用上面的两条命令就可以比对源目录,目标目录,文件个数和大小的区别,以确认备份的情况。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 我们可以使用bash脚本来实现全网服务器数据备份。首先,你需要安装一款文件同步工具,如rsync或lsyncd,然后编写一段bash脚本,具体步骤如下:1. 定义备份目录;2. 定义要备份文件文件夹;3. 将要备份的数据同步到指定的备份目录;4. 创建快照;5. 将快照复制到备份服务器;6. 启用定时任务,按指定的时间段进行数据备份。 ### 回答2: 全网服务器数据备份的shell脚本可以按以下步骤编写: 1. 首先,创建一个新的shell脚本文件,例如backup.sh。 2. 在脚本文件开头,定义一些全局变量,如备份路径(backup_dir)、源文件路径(source_dir)、备份文件名(backup_name)等。 3. 使用mkdir命令创建备份文件夹,如:`mkdir -p $backup_dir`。 4. 使用rsync命令进行数据备份,例如:`rsync -av --delete $source_dir $backup_dir/$backup_name`。这里的-a表示以归档模式备份文件,-v表示显示详细过程,--delete表示删除目标文件夹中不存在的文件。 5. 可选地,你可以加入其他的选项来增强备份功能,如添加--exclude选项来排除某些不需要备份文件文件夹。 6. 最后,添加日志记录功能,将备份过程的输出记录到日志文件中,例如:`rsync -av --delete $source_dir $backup_dir/$backup_name > $backup_dir/backup.log`。 7. 可以考虑加入错误处理功能,如判断备份是否成功以及处理备份失败的情况。 8. 将脚本保存并设置为可执行,如:`chmod +x backup.sh`。 9. 可以使用cron等工具来定期执行该脚本,以自动进行全网服务器数据备份。 总结起来,全网服务器数据备份的shell脚本就是通过使用rsync命令来将指定的源文件备份到目标文件夹,并添加相关的选项来增强备份功能,最后将备份过程的输出记录到日志文件中。根据实际需要可以适当调整脚本的细节和添加其他功能。 ### 回答3: 编写全网服务器数据备份的shell脚本需要考虑以下几个方面: 1. 选择备份存储位置:可以选择本地服务器、其他服务器或云存储作为备份存储位置。建议使用云存储,如Amazon S3或Google Cloud Storage,以确保数据的可靠性和持久性。 2. 确定备份时间和频率:根据需求确定备份的时间和频率。可以选择每天、每周或每月备份。 3. 设置备份文件夹:创建备份文件夹并设置合适的权限,确保备份文件可以成功保存。 4. 编写脚本:使用shell脚本编写备份脚本。以下是一个简单的示例: ```shell #!/bin/bash # 备份文件夹路径 backup_dir="/path/to/backup/directory" # 当前日期作为备份文件夹名称 timestamp=$(date +%Y%m%d%H%M%S) backup_folder="${backup_dir}/${timestamp}" # 创建备份文件夹 mkdir -p ${backup_folder} # 备份网站数据 cp -r /var/www/html ${backup_folder} # 备份数据库(如果有) mysqldump -u [用户名] -p[密码] [数据库名] > ${backup_folder}/db.sql # 打包备份文件夹 tar -czf ${backup_folder}.tar.gz ${backup_folder} # 删除原始备份文件夹 rm -rf ${backup_folder} # 上传到云存储(以Amazon S3为例) aws s3 cp ${backup_folder}.tar.gz s3://[存储桶名称] # 删除本地备份文件 rm -rf ${backup_folder}.tar.gz # 输出备份完成信息 echo "备份已完成!" ``` 请根据实际情况修改脚本中的路径、数据库凭据和云存储设置。此脚本会将网站数据和数据库备份到指定的文件夹,并将文件夹打包为tar.gz文件,然后上传到云存储。最后,会删除本地的备份文件。 这只是一个简单的示例,根据实际需求和服务器环境,可能需要进行更多定制和优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值