rsync 同步目录问题经验小结

发布于: 2014年02月08日

实例一:

$rsync -avz –progress –delete /home/dest/ 192.168.1.104::test
上命令会把 /home/dest/ 与test根目录文件同步,将test目录下的所有文件结构与/home/dest/目录一致

实例二:

$rsync -avz –progress /home/dest/ 192.168.1.104::test
无–delete参数
上命令会把 /home/dest/ 与test根目录文件同步,但仅作增量备份,不删除任何test目录下的文件。

实例三:

$rsync -avz –progress –delete /home/dest 192.168.1.104::test
上命令会把 /home/dest 与test目录下dest子目录文件同步,将test/dest子目录下的所有文件结构与/home/dest/目录一致,删除test/dest子目录下任何不同的文件,但与test根目录下其他文件无关。

实例四:

$rsync -avz –progress /home/dest 192.168.1.104::test
上命令会把 /home/dest 与test目录下dest子目录文件同步,不删除任何test目录及子目录下的文件。

EXT4-fs: Unrecognized mount option “uid=500” or missing value

发布于: 2013年10月29日

首先,我声明这是我无知造成的乌龙事件。事情是这样的。

CentOS下,新硬盘,新分区,ext4。

mount -t ext4 -o uid=500,gid=500 /dev/sdb1 /media/sdb1

上面命令试图把分区给uid=500的常规用户读写。

报错:

mount: wrong fs type, bad option, bad superblock on /dev/sdb1,

missing codepage or helper program, or other error

In some cases usefl info is found in syslog – try

dmesg | tail or so

好吧:#dmesg | tail

发现错误:

EXT4-fs: Unrecognized mount option “uid=500” or missing value

原因:

uid, gid, umask, dmask等参数是给ntfs, vfat等文件系统用的。给ext4 文件系统制定uid相当于执行了chown,而这一切并不必要。因为只要chown一次,下次mount该分区并不会改变之前chown的结果。

心理暗示的力量

发布于: 2013年10月28日

相信大部分人都喝过啤酒。如果你记得第一次喝啤酒的感觉,我想大家都会记得它的味道:苦!缘何后来,如果你爱喝啤酒的话,都会忘记它的苦味?但炎热的夏天,又热又渴,你一定是奔着啤酒的凉爽味道去打开一瓶啤酒的吧。当然铺天盖地的啤酒广告,也必定没有一次一次的告诉你“我的啤酒是苦的”。即使以味苦闻名天下的黑啤,也说自己麦香浓郁。

–这一切都是心理暗示的力量

但我们持续不断的被这些信息轰炸,潜意识里面,大家都忘记了啤酒的苦味。虽然这个味道一直客观存在,但是大脑选择忽略味觉系统传过来的这一信息。

在陪伴着我的小公主逐渐长大的过程中,我在渐渐学习心理暗示的力量。

每个人不免生病,打针吃药是难以避免。为何有些小朋友在打针时哭得惊天动地,有些没有?我观察发现,害怕打针的小朋友在离护士站几十米远的时候就开始动容,越靠近动静越大。伴随着家长不停的劝说:怕什么,一点都不疼,我们宝贝很勇敢,一点都不疼,一点都不疼….

不疼你妹啊~~~~其实家长在不停地暗示孩子,打针很疼,打针很疼,很疼,很疼…… 在这种情况下,孩子不拼死挣扎才有鬼。

所以,我和夫人在带我们的小公主打针的时候,严格禁止说“疼”这个字。即使问,我也会说“宝贝,有没有很痒?会不会很舒服?护士姐姐好看吗?”

同理,吃药的时候,你要是说:“宝贝,吃药了,一点都不苦…”  那就惨了,整个房间的悲剧上演。

而我们的公主已经被训练到吃中药都应付自如。

心理暗示的力量如此强大。是积极?还是消极?则完全看运用者的技巧。如果不主动抵抗消极的心理暗示,者常常会被悄悄地到消极的一面。比如今天你干了很多的事情,正常的情况下,会让你在晚饭后懒散地躺在沙发上,根本不想动。做家务?门都没有!男吊丝们,请问这个时候,如果有人找你去打个篮球,踢个足球,是不是又是一条好汉?

So…. 只要你保证了正常的睡眠时间。累,只是一种选择。

心理暗示,make the choice of your own.

php-5.3.3 mssql support

发布于: 2013年10月15日

系统环境:

CentOS 6.4

软件仓库php5.3.3 带php-devel包

希望能够得到mssql.so 支持。

安装freetds:

http://www.freetds.org/ 下载最新稳定版本:freetds.stable.tgz 我得到的版本是0.91。下方的命令安装:

# tar zxvf freetds-current.tgz

# ./configure –prefix=/usr/local/freetds –with-tdsver=7.2 –enable-msdblib

# make

# make install

配置,我要求链接到SQL Server 2005:

修改/usr/local/freetds/etc/freetds.conf

[Server2005]
host = 192.168.1.100 #根据自己改

port = 1433

tds version = 7.2

client charset = UTF-8

tds version 选择参考:http://www.freetds.org/userguide/choosingtdsprotocol.htm

Server2005这个名字会在PHP 链接代码中用到。

mssql.so文件编译:

由于是软件仓库安装,并没有源代码。也没有php-mssql这样的软件包。所以编译mssql.so比较特殊,但也是可以。

下载php-5.3.3源码,老版本源码在这里下载:http://www.php.net/releases/

解压,进入目录:php-5.3.3/ext/mssql

#phpize

#./configure –with-php-config=/usr/bin/php-config –with-mssql=/usr/local/freetds

#make

#make install

make 的时候可能出现下面的错误:

/usr/include/php/main/spprintf.h:40: note: expected ‘char **’ but argument is of type ‘unsigned char **’

make: *** [php_mssql.lo] Error 1

修改 php-5.3.3/ext/mssql/php_mssql.h 24行增加一行:

#define PHP_MSSQL_API
此为bug,已经有人报告,见链接:https://bugs.php.net/bug.php?id=60267

编译成功后,会在/usr/lib/php/modules中出现mssql.so文件,64位的位于/usr/lib64/php/modules 中。在php.ini增加
extension=mssql.so

重启apache.
php链接mssql 代码:
mssql_pconnect('Server2005',username,passwd);

Good luck!

 

USB安装CentOS6.4 64位的主要问题解决

发布于: 2013年10月15日

目的:安装CentOS 6.4 64位到裸机,硬盘未格式化

安装要求:电脑无DVD Driver, 从USB安装CentOS6.4 64位系统

安装步骤:

1. 下载DVD iso介质:http://mirrors.163.com/centos/6.4/isos/x86_64/

文件列表:

CentOS-6.4-x86_64-bin-DVD1.iso (4.25G)

CentOS-6.4-x86_64-bin-DVD2.iso (1.41G )

CentOS-6.4-x86_64-minimal.iso(342M)(用处后提)

2. 制作USB启动,

取8G USB flash,  将CentOS-6.4-x86_64-bin-DVD1.iso文件烧录到USB drive.

在windows下可以使用ultraiso,试用版即可。 Win7 系统需要以管理员权限运行。

3. Copy 下列安装介质到USB flash,

CentOS-6.4-x86_64-bin-DVD1.iso (4.25G)

CentOS-6.4-x86_64-bin-DVD2.iso (1.41G )

问题:8G U盘不能同时装下两个4.25G的文件(一个烧录+一个完整iso文件),且fat32格式的文件系统不能放置大于4G的单个文件。

解决方案一:另取一个USB flash, 格式化为exfat格式即可copy。但由于CentOS 6.4 安装过程中的bash环境不直接支持exfat 格式的mount,故比较麻烦。

解决方案二:另取一个USB flash, 在linux 下格式化为ext2格式 copy。可行但不完美。

采用上面方法,需要在安装到无法找到安装介质步骤是,ctrl+alt+F2切换到第二终端,将iso文件所在目录mout到/mnt/isodir 目录下。

解决方案三:使用CentOS-6.4-x86_64-minimal.iso(342M)文件进行最小化安装。直接将此文件copy到烧录的USB flash根目录。进行最小化安装。然后根据需要从网络或copy 安装介质dvd到目录CentOS系统下扩展安装。具体升级扩展安装方法我参考下链接:

http://hi.baidu.com/waybol/item/a957ae3f8fad48a3633affa4

不过最小化安装启动时是不自动启动网卡的,请执行:

#ifup eth0

如果没有自动获取IP, 则执行:

#dhclient eth0

安装X Window

#yum groupinstall “X Window System”

安装GNOME桌面环境

#yum groupinstall “Desktop”

安装其他你想安装的软件包。

完毕!

rsyncd.conf 目录名含空格问题

发布于: 2013年09月26日

Server 端: Windows XP

Server 端版本:cwRsync 4.0.5

测试Client: CentOS 6.4 rsync 3.0.6

问题:

当Server端共享目录存在空格时,同步时可能出现下列错误:

@ERROR: chdir failed

rsync error: error starting client-server protocol ( code 5) at main.c(1503)

我尝试的以下绝对不可行方案如下,请勿重复尝试。

假设共享目录:c:\Program Files\test

rsyncd.conf 代码错误示范1:

[TEST]
path = “/cygdrive/c/Program Files/test”
read only = true
transfer logging = yes

rsyncd.conf 代码错误示范2:

[TEST]
path = “/cygdrive/c/Program\ Files/test”
read only = true
transfer logging = yes

rsyncd.conf 代码错误示范3:

[TEST]
path = ‘/cygdrive/c/Program Files/test’
read only = true
transfer logging = yes

rsyncd.conf 代码错误示范4:

[TEST]
path = /cygdrive/c/Program\ Files/test
read only = true
transfer logging = yes

可能可行的方案:

rsyncd.conf 可能可行的方案:

[TEST]
path = /cygdrive/c/”Program Files”/test
read only = true
transfer logging = yes

上面的方案我个人测试未通过,但网上有人测试通过。 相关网址:http://stackoverflow.com/questions/6993355/cwrsync-failing-due-to-spaces-in-directory-names

rsyncd.conf 我测试有条件通过,但你可能不行的方案:

[TEST]
path = /cygdrive/c/Program Files/test
read only = true
transfer logging = yes

是的,不要怀疑你自己的眼睛,什么都不加。我这边可以同步,但不会完成同步,不知道是否是有其他原因。

Google了一圈,这个问题似乎没有办法很好的解决。期待rsync的开发者改进了。

 

 

浙ICP备18056264号-1