Chinaunix首页 | 论坛 | 博客
  • 博客访问: 218560
  • 博文数量: 68
  • 博客积分: 2510
  • 博客等级: 少校
  • 技术积分: 695
  • 用 户 组: 普通用户
  • 注册时间: 2006-05-19 21:17
文章分类

全部博文(68)

文章存档

2009年(16)

2008年(12)

2007年(27)

2006年(13)

我的朋友

分类: 系统运维

2008-03-22 00:27:46

原来在web搬家时,都是用scp来远程复制,但发现丢失了文件的属主,时间,权限等属性,再一个个去改,很麻烦,所以这次决定先打包,再复制。
将/var/www目录下的大文件找出,先单独搬家(见前面的一篇笔记http://blog.chinaunix.net/u/19419/showart_382053.html)
打包整个目录:
tar -cf www
在新机上复制这个包过来:
scp .
解开这个包:
tar -xvf
可以看到解出来的内容保持了原来的时间,但有的文件属主变成另一个,而有的文件的属主怎么都变成了root,分析了下,原来是只是UID对应,到了新系统上,相同的UID并一定对应相同的用户名,这个晕。
将旧机上的/etc/passwd中后有关的用户复制到新机的/etc/passwd里,当然,不能与新系统里的原有用户重复,再看,好像正常了。至于组文件/etc/group我没怎么用,就不复制了吧。
  (原想用passwd命令设置下密码可能就行了,但:
passwd tubiao
passwd: Authentication service cannot retrieve authentication info
passwd: password unchanged
就将旧机上/etc/shadow对应用户的行拷进来,再passwd下,过了,以后不会有问题吧? )
将解出的www目录移到正确的位置下,当然,得先把原来的目录更名下:
mv /var/www /var/www2
mv www /var/www
还好,mv命令不会改变文件的属性之类。
到此,WEB的数据是搬完了,下面把配置目录/etc/apach2也搬过来。同样,也用tar打包完再搬过来好,不然sites-available下的符号链接用scp拷的话,都拷成实际文件了。
将配置文件中虚拟主机的IP地址改成新机的IP,原想只能一个个来了,没法,网上搜索到一个perl的命令,哈好用:
perl -pi -e 's|ABCD|Linux|g' `find ./ -type f`
将调用perl执行一条替换命令,把find命令找到的所有文件内容中的ABCD替换为Linux
find ./ -type f
此命令是显示当前目录下所有的文件
上面的“s|ABCD|Linux| g”是perl要执行的脚本,即把所有ABCD替换为Linux
如果不写最后的那个g,“s|ABCD|Linux| ”将只替换每一行开头的ABCD
阅读(1035) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~