Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2815251
  • 博文数量: 587
  • 博客积分: 6356
  • 博客等级: 准将
  • 技术积分: 6410
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-23 10:54
个人简介

器量大者,福泽必厚

文章分类

全部博文(587)

文章存档

2019年(3)

2018年(1)

2017年(29)

2016年(39)

2015年(66)

2014年(117)

2013年(136)

2012年(58)

2011年(34)

2010年(50)

2009年(38)

2008年(16)

分类: LINUX

2012-03-24 17:56:13

留为笔记:

  1. #!/bin/sh
  2. domain=$1
  3. a=`echo ${domain} |cut -c 1`
  4. b=`echo ${domain} |cut -c 2`
  5. c=`echo ${domain} |cut -c 3`
  6. cd /usr/vhome/${a}/${b}/${c}/${domain}
  7. rsync -avzu /usr/vhome/${a}/${b}/${c}/${domain}/www/* /vhost/${a}/${b}/${c}/${domain}/www/
  8. if [ -e /usr/vhome/${a}/${b}/${c}/${domain}/www/.htaccess ] ; then
  9. rsync -avzu /usr/vhome/${a}/${b}/${c}/${domain}/www/.htaccess /vhost/${a}/${b}/${c}/${domain}/www/
  10. else
  11. echo "">/dev/null
  12. fi
  13. cd /vhost/${a}/${b}/${c}/${domain}
  14. chown -R httpuser:webgroup www
上面代码写的不好,因为同步www/* ,www目录下的隐藏文件是不会被同步过去的 。如果没有一句同步.htaccess文件的这句,所有用户目录下的.htaccess是不会被同步过去的!
这样会被用户骂死的! 
呵呵
其实上面的脚步写的不好,只要将www/*改成www 即可将www目录下的所有文件就rsync过去!
 
昨天在两个存储上同步数据,我就是用的这种方式:
将两个存储分别挂载同一台机器的两个不同的目录下。
然后:

点击(此处)折叠或打开

  1. #!/bin/sh
  2. nohup rsync -avzu /vhost_all/61.***.***.154 /mnt &
老存储挂载在/vhost_all
新存储挂载在/mnt
这样就可以将文件移动过去!


在同步L800时用上面的代码出现问题:rsync一直在后台,就是不见目的地址中有数据出现;
10.4.7.10:/vol/xinnet_unix/UnixSNS on /vhost (新存储)
10.4.7.11老存储挂载在/vhost_all下
[root@IDC-D-2255 **]# cat cunchu.sh 
#!/bin/sh
var=$1
nohup rsync -avzu /vhost_all/UnixSNS/${var}   /mnt/UnixSNS  & 
[root@IDC-D-2255 **]# cat allcunchu.sh 
#!/bin/sh
for var in     `cat /home/**/alllist.txt`
do
echo "${var} will be rsync"
sh /home/***/cunchu.sh   ${var}
done
[root@IDC-D-2255 ***]# cat alllist.txt 
0
1
2
3
4
5
6
7
8
9
a
Apache2Conf
b
bak_domain
c
d
e
f
g
h
hello
i
image
index.html
index.html.xinnet
j
k
l
m
n
norsync
o
p
q
r
s
t
tmp
u
v
w
x
y
z

留为笔记!
阅读(1532) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~