Rsync在服务器间镜像或者备份目录 [转]

Web、Mail、Ftp、DNS、Proxy、VPN、Samba、LDAP 等基础网络服务
回复
jvict
帖子: 11
注册时间: 2006-03-01 16:19

Rsync在服务器间镜像或者备份目录 [转]

#1

帖子 jvict »

简介:rsync是个真正的镜像工具,它能相应地删除本地文件万一服务器上的文件被删除, 这一点比wget好,在镜像目录的同时也能排除某些目录及文件。速度非常快
  主页:rsync.samba.org
  环境: Redhat Linux 6.2 , rsync 2.4.3(下载源码编译最好), 两台linux服务器192.168.11.7(test)(rsync server) , 192.168.11.2(proxy)(rsync client)
  
  步骤:
  1. 下载最新的rsync 2.4.3源文件编译,看rsync.samba.org ,据我所知, 只有2.4.3才支持镜像时的排除选项 --include and --exclude, 编译后得到一个执行文件rsync,仅需这个执行文件即可
  
  2. 编辑配置文件/etc/rsyncd.conf 如下:
  log file = /var/log/rsyncd.log
  pid file = /var/run/rsyncd.pid
  lock file = /var/run/rsync.lock
  
  [test]
  path = /test
  comment = test folder
  uid = root
  ignore errors
  read only = yes
  list = no
  auth users = sun
  secrets file = /etc/test.scrt
  
  注释: 定义了需要被镜像的目录为/test,需要密码连接,文件在/etc/test.scrt, 注意该文件的属性和权限 -rw------- 1 root root test.scrt
  
  [root@test /etc]# more /etc/test.scrt
  test:tset
  
  3.启动服务器后台 rsync
  # rsync --daemon
  且加这一行到/etc/rc.d/rc.local
  # echo "rsync --daemon" >> /etc/rc.d/rc.local
  
  4. 在服务器192.168.11.2上设定客户端cron job. 每晚自动作备份或者镜像0 21 * * 1-5 /root/.test.sh
  note:每晚九点周一至周五自动运行/root/.test.sh作备份
  
  #more /root/.test.sh
  #!/bin/sh
  DATE=`date +%w`
  
  rsync -tvzrp -e ssh --progress --delete [email protected]::test /shopu/test/$DATE --password -file=/etc/test > /var/log/test/test.$DATE mail -s "test Backup is done" myemailaddress < /var/log/test/test.$DATE
  
  [root@proxy /root]# more /etc/test
  tset
  [root@proxy /root]# ls /etc/test -l
  -rw------- 1 root root 4 May 16 21:40 /etc/test
  
  注意: -e ssh表示用SSH加密连接,需要服务器test支持SSH
  
  5.可用于下列用途:
  a. 从另一台服务器备份主服务器上的某个整个目录,且可排除某个子目录及文件
  b. 镜像主WEB服务器的主页目录,适合于像像网站,用--delete可删除服务器上没有的本地文件是真正的像像,不同于wget,wget仅根据网站的URL链接下载链接指向的每个文件,本地文件并不删除.
jvict
帖子: 11
注册时间: 2006-03-01 16:19

#2

帖子 jvict »

用wget来备份网站(仅有ftp权限) , by Johnny

备份
wget -m -c -nH -b -o upsdn_ftp.log ftp://root%40upsdn.net:[email protected]/

Continuing in background, pid 9028.


-m, --mirror 等效于 -r -N -l inf -nr 的选项
(-r 递归
-N, --timestamping 除非远程文件较新,否则不再取回。
-l, --level=数字 最大递归深度(inf 或 0 表示无限)。
-nr, --dont-remove-listing don't remove `.listing' files(FTP选项)
)
-c, --continue 继续接收已下载了一部分的文件。
-nH, --no-host-directories 不创建含有远程主机名称的目录。
-b, -background 启动后进入后台操作。

-o, --output-file=文件 将日志消息写入到指定文件中。

============================================================

wget -m -o log -b -c -np -nH -D
jvict
帖子: 11
注册时间: 2006-03-01 16:19

#3

帖子 jvict »

使用wget和cron自动备份网站
对于一个静态网站,在没有负载均衡的情况下。如果主机出现问题,就会影响到正常访问。而如果同时没有及时备份,会导致网站直接停止服务或只能使用以前的存档来临时提供服务。

所以,使用wget同步网站,同时使用cron来定时运行。可以作为一种简单的解决方法。
执行:
#crontab -e在其中增加
8 8,13,19 * * * cd /web/bak/;wget -m -nH -np -r -p -k http://www.sxyin.com;chown -R 33.33 /web/bak/上面的这行意思,就是在每天的8点、13点、19点的8分定时同步网站。wget的参数以前介绍过,不多说了。

上面这种方法只适应于静态网站。同时还有一点,wget对javascript中包含的图片似乎不能正确地下载,往往会忽略结果。所以第一次还是手动同步一次,并补全需要的文件把
jvict
帖子: 11
注册时间: 2006-03-01 16:19

#4

帖子 jvict »

红泥花生 2004-7-26 10:38

crontab 文件

crontab 文件是一个文件形式保存的,还是 ..??
/bin/crontab有这个文件,但看不到ASC码表示 的字符.
对于两台主机,我想有两个一样的CRONTAB 任务列表, 我可以把/bin/crontab拷贝过去覆盖吗?还是一定要手工编辑?

llc107 2004-7-26 13:18

crontab 文件

可以考,文件在/var/spool/cron/...中,是以用户名来命名的,你进去看一眼就知道了。

红泥花生 2004-7-27 01:00

crontab 文件

是的.太好了!~~
多谢llc107大侠....

ctoc 2004-7-27 02:01

crontab 文件

哥们,在告诉你,如果你该/VAR/SPOOL/CRON/CRONTABS下的文件的话,如果要让其起作用需要重新启动机器。比较麻烦。

但是如果直接用命令增加的话,可是不用启动机器,在成功添加后,直接就其作用了。这是区别。

clay 2004-7-27 02:20

crontab 文件

crontab -e 直接编辑修改。

sunust 2004-7-27 02:32

crontab 文件
原帖由 "ctoc" 发表:
哥们,在告诉你,如果你该/VAR/SPOOL/CRON/CRONTABS下的文件的话,如果要让其起作用需要重新启动机器。比较麻烦。

但是如果直接用命令增加的话,可是不用启动机器,在成功添加后,直接就其作用了。这是区别。
不需要重启机器,重启服务就可以了
/etc/init.d/cron stop
/etc/init.d/cron start

steellyz 2004-7-27 09:30

crontab 文件

呵呵,这个贴子关于crontab文件的问题叙述够全了。
顶一下。

Ryker 2004-7-27 22:28

crontab 文件

每天进步一点

好贴子

lk12 2004-7-28 03:22

crontab 文件
原帖由 "clay"]crontab -e 直接编辑修改。[/quote 发表:


这样编辑修改完了之后怎么保存呢???
还有这样打开的时候,原来的crontab文件内容看不到啊
比如:
# crontab -e root
40
?
30 1 * * * CMD
?

这样编辑之后怎么保存呢/?
谢谢!!

melonm 2004-7-28 03:52

crontab 文件

你把编辑器设为ed了。编辑crontab之前先运行EDITOR=vi; export EDITOR。

紧那罗 2004-7-28 17:41

crontab 文件
原帖由 "lk12" 发表:


这样编辑修改完了之后怎么保存呢???
还有这样打开的时候,原来的crontab文件内容看不到啊
比如:
# crontab -e root
40
?
30 1 * * * CMD
?

这样编辑之后怎么保存呢/?
谢谢!!
:wq 保存
如果用ctrl+d退出的话会overwrite原来的文件形成一个空文件
使用ctrl+c退出

lk12 2004-7-29 01:03

crontab 文件

多谢 melonm和紧那罗,用melonm 那种方法可以搞定,可是 紧那罗 说的那种方法不行,
:wq
ctrl + d
ctrl + c
都不能保存文件

solaris 8.0 csh

melonm 2004-7-29 01:17

crontab 文件

用ed的话,退出时(并保存)打
. <回车>;
w <回车>;
q

ywsun 2004-7-29 02:14

crontab 文件

http://bbs.chinaunix.net/forum/viewtopi ... ight=ywsun

应该对楼主有用吧!

zyh_rose 2004-7-29 15:22

crontab 文件

用crontab -e是编辑你的工作几时执行,执行什么工作,如果你执行的工作是一个脚本,比如是一个sh文件什么的,那你得把那个sh文件也拷过去才行;还有编辑完后应该先按esc,然后 打:wq回车就可以保存退出了;
回复