@ZEAL Blog·厉
WWW Zeal Blog
We stand alone,
TOGETHER.

rsync时自动创建目录

Posted by zeal on 2007-12-13 01:56 , 716 characters |  + 0 - 0   English
转载请保留本行原始出处声明信息 : http://www.zeali.net/entry/548 MaDe1nZEAL
标签 ( 开发/理论 ):  , 

一直以来都习惯用 rsync + ssh 作服务器文件同步,但之前都没有在命令参数里面找到类似 mkdir -p 的功能,可以在同步某个指定文件的时候自动在目标服务器上根据需要创建完整的父级目录。比如某些按年月日自动生成的目录型文件需要在文件生成的时候即时同步:

rsync -lprztW --rsh="/usr/bin/ssh -l rsyncuser" /var/2007/12/13/1001.gif 10.0.0.1:/var/2007/12/13/1001.gif

如果/var/2007/12/13目录没有预先在目标服务器上创建的话,该同步操作将报错:rsync: push_dir#3 "/var/2007/12/13" failed: No such file or directory (2)

之前的解决方法是在目标服务器上预先先创建所有可能产生的新目录结构,或者在源服务器上创建新目录的时候即时把目录rsync到目标服务器上。

偶然看到其实 rsync 有个 -R 参数(-R, --relative  use relative path names),用来把相对目录下的整个目录结构同步到目标服务器指定目录下。利用这个参数就可以自动达到 mkdir -p 的效果,只需要把同步命令改成:

cd /var
rsync -lprRztW --rsh="/usr/bin/ssh -l rsyncuser" 2007/12/13/1001.gif 10.0.0.1:/var/

2 条评论:
- jinqiu () (link) 于 2007-12-20 03:31
你好。看了这篇文章,http://www.zeali.net/entry/55,希望..
我现在一个页面是gb2312中文编码,然后里边有一个动态链接,比如,<strong>?q="网易" </strong>连接到mediawiki的页面,如果存在“网易”这一页,就显示;否则,就推荐创建“网易"页面。可是再wiki里,默认编码是UTF-8,所以,但链接中出现,<strong>?q="网易" </strong>时,推荐建设的页面是乱码 “ÍøÒ×”。因为我现在找不到更改meidawiki编码的地方,而连接所在页的编码是不能改的,所以我想请教一下应该如何解决这个问题。
注:“网易”是从mysql中读出的一个字符串。
注2:一个例子:http://qiyedaohang.emvbusiness.com/186/I.. 在这里您可以看到wiki页面的连接。

十分谢谢!
- zeal (link) verified2007-12-20 09:13
既然是从动态读出来的字符串就好办了,你可以使用iconv或mb_convert_encoding把?q="网易"转码成utf-8,这样提交过去的内容就能正确显示了。
日志存档
2014年
2013年
2012年
2011年
2010年
2009年
2008年
2007年
2006年
本 Blog 原创内容
遵循以下授权:

Creative Commons
(创作共用) CC

署名-非商业性
-相同方式分享
ZEAL Blog 基于
Powered byPivot - 1.24.1: 'Arcee'
Pivot1.24.1
开发
系统部署于
Linode.com
Launched @
2005-04-27
Since 2005.04.27  梦想 就像鸡蛋 要么孵化 要么臭掉RSS Feed (Entries) | About me | Back To Home | @ZEAL | zbird.com | 沪ICP备05024379号