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