一、目的:
最担心远程机房的服务器哪一天会挂掉,因此我把家里一台旧电脑也装了相同的Apache/php/mysql,并定时镜像备份远程内容。
要备份的远端目录为/var/www,本地镜像为相同的/var/www
二、远端rsync服务器
1.安装rsync:
我看了一些关于rsync的使用,动不动就是编译,搞得头晕。对本人而言,最好就是拿现成的,直接从网络安装:
# apt-get install rsync
2.配置rsync:
Debian sarge rc3的rsync的配置文件默认为/etc/rsyncd.conf,但并未提供。现就直接建一个:
# nano /etc/rsyncd.conf
然后键入以下内容:
uid = nobody
gid = nogroup
use chroot = no
max connections = 4
pid file = /var/run/rsync.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsync.log
[website]
path = /var/www/
comment = Backup for Website
ignore errors
read only = true
list = false
auth users = backup_user
secrets file = /etc/rsyncd.secrets
backup_user是登录到远程服务器所用的用户名;
/etc/rsyncd.secrets是服务器上存放用户名和密码的明文文件。
[mysql_data]
path = /var/lib/mysql/
comment = Backup for mysql Database
ignore errors
read only = true
list = false
auth users = backup_user
secrets file = /etc/rsyncd.secrets
3.建立服务器上的密码文件:
这个文件用来核对前来备份的用户。
# nano /etc/rsyncd.secrets
文件内容为“用户名:密码”,示范内容如下:
backup_user:2a7t5y
存盘后,还要将这个rsyncd.secrets文件属性改为600:
# chmod 600 /etc/rsyncd.secrets
4.运行rsync服务:
# rsync --daemon
三、本地电脑
1.安装rsync:
与远程服务器一样:
# apt-get install rsync
2.建立登录密码文件:
用一个存有密码的文件,达到自动登录的目的。文件名随便取:
# nano /etc/rsync_password
内容就是服务器接受的密码,注意没有用户和冒号:
2a7t5y
保存后,也把它变成600属性,防止泄密:
# chmod 600 /etc/rsync_password
3.开始备份:
运行下列命令,rsync_password是刚才建立的本地密码存放文件,backup_user是备份用户,远程的/etc/rsyncd.secrets文件中保存有这两个信息;61.85.123.19是服务器IP;“website /var/www/”表示把远程服务器/etc/rsyncd.conf里[website]定义的内容备份到本地/var/www/中。
# rsync -vzrtopg \
--progress \
--password-file=/etc/rsync_password \
backup_user@61.85.123.19::website /var/www/
现在正常备份了。
=============================================================
问题求教:
1.用这个命令同步[mysql_data]的内容,用来备份数据库,运行后没有反应,没有结果。这是怎么回事?
# rsync -vzrtopg \
--progress \
--password-file=/etc/rsync_password \
backup_user@61.85.123.19::mysql_data /var/lib/mysql/ |