scp远程复制带冒号的文件

How to scp a file name with a colon

Lets say you have a lot of files e.g. named something like duplicity-full.2008-01-09T17:51:27+02:00.vol100.difftar.gpg

Simply running scp * user@host.com: will give an error like: ssh: duplicity-full.2008-01-09T17: Name or service not known because scp thinks the file name is a host name (because of the colon).

The fix is simple: Add a ./ in front of the * or filename, e.g. scp ./* user@host.com:. Then scp will see the ./ before the colon, and know it’s a file. That trick also helps if you have a file named – (yes, dash) or which starts with a dash (some programs don’t like that).

 

http://www.mikkelsen.tv/simon/blog/index.php/2008/01/09/how-to-scp-a-file-name-with-a-colon/

悲哀的石头

悲哀的石头。总是活在别人的世界里。为了别人活着。。昨天跟妈妈吵了一架。做了人生一次大的决定。违背的所有人的意愿。顶住了所有压力。努力的为选择了一次自己的生活。他们总说我错了。年轻气盛。但是。既然选择了。我不后悔。我认为我的选择是正确的。你们都看不起我。小看我。那就是你们一辈子为钱而困的结果。你们没有开放的思想。也可以说你们没有能力。只能靠共产党要饭吃。我鄙视这样的生活。过不了浪费生命的生活。你们应该为我的远大理想目标而骄傲。不过可悲的是。不知道是你们的自私还是思想的狭隘。总是认为我是错的。我会用实力证明给你看。不想过你们的生活。这次。不会听你们的。路是我走的。我有选择权。如果连这点选择的权利都没了。那我也就不用活了。好吧。那就走着瞧吧。

mysql client不指定主机的默认行为

现象:

   mysql:3306端口,sphinx:9306端口

mysql -uroot -P9306

会连上我的mysql服务器,但是我已经指定端口了。netstat -tn看也是连接的9306

Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 192.168.1.150:22        192.168.1.124:53837     ESTABLISHED
tcp        0      0 192.168.1.150:9306      192.168.1.123:59726     ESTABLISHED
tcp        0      0 192.168.1.150:22        192.168.1.11:49974      ESTABLISHED
tcp        0      0 192.168.1.150:22        192.168.1.124:42251     ESTABLISHED
tcp        0      0 192.168.1.150:22        192.168.1.123:55381     ESTABLISHED
tcp        0      0 192.168.1.150:22        192.168.1.123:57222     ESTABLISHED

但事实上连上我的mysql服务器。php.net上的mysql_connect上有这么一段note:

Whenever you specify “localhost” or
“localhost:port” as server, the MySQL client library will
override this and try to connect to a local socket (named pipe on
Windows). If you want to use TCP/IP, use “127.0.0.1”
instead of “localhost”. If the MySQL client library tries to
connect to the wrong local socket, you should set the correct path as
in your PHP configuration and leave the server field
blank.

也有说这是mysql-client的bug。。不管怎么样。这种现象发生了。这是mysql-client的默认行为,解决方法如下:

1. 指定ip

mysql -uroot -h127.0.0.1

2. my.cnf

修改[mysql]区段

protocol=tcp

 

以上两种方法可以改变mysql client的这种行为

 

统计单词及字母出现的频率

1. 统计单词

awk -F ” ” ‘{for(i=1;i<=NF;i++)a[$i]++}END{for(i in a){print i,a[i]}}’ abc.txt

统计某一个单词

grep -o ‘hacker’ abc.txt|wc -l

2. 统计字母

sed ‘s/(.)/1n/g’ abc.txt|sort|uniq -c

awk -F “” ‘{for(i=1;i<=NF;i++)a[$i]++}END{for(i in a){print i,a[i]}}’ abc.txt

php执行系统命令经验小结

1. 由于我的用户是nobody,没有tty。所以需要在/etc/sudoers文件里注释掉

#Defaults    requiretty

2. 使用php中shell_exec(‘sudo command’)时。标准错误显示不到终端。所以为了方便调试。将标准错误重定向到标准输出

shell_exec(“sudo command 2>&1″);

3. visudo

确保执行命令时使用了NOPASSWD:

 

nobody    ALL=(uploader) NOPASSWD: command

 

以上为对php执行系统命令的一点小经验。。share

版本问题有木有。。

1. subversion客户端为1.6的。服务端为1.4。。merge时总是提示树冲突。。。把客户端换成1.4。merge时就木有问题了。。

2. php执行sudo时,总是不成功,也看不到出错提示。花了两个小时。翻遍度娘,谷哥,final,

/etc/sudoer里有一句

Defaults    requiretty

注释掉。。一切OK。。requiretty.require个脑袋瓜。。

 

最新版的sudo默认配置不会出现这个问题。

【转】 MySQL高可用架构方案

MySQL高可用架构方案

如果单MySQL的优化始终还是顶不住压力时,这个时候我们就必须考虑MySQL的高可用架构(很多同学也爱说成是MySQL集群)了,目前可行的方案有:
一、MySQL Cluster
优势:可用性非常高,性能非常好。每份数据至少可在不同主机存一份拷贝,且冗余数据拷贝实时同步。但它的维护非常复杂,存在部分Bug,目前还不适合比较核心的线上系统,所以这个我不推荐。
二、DRBD磁盘网络镜像方案
优势:软件功能强大,数据可在底层快设备级别跨物理主机镜像,且可根据性能和可靠性要求配置不同级别的同步。IO操作保持顺序,可满足数据库对数据一致性
的苛刻要求。但非分布式文件系统环境无法支持镜像数据同时可见,性能和可靠性两者相互矛盾,无法适用于性能和可靠性要求都比较苛刻的环境,维护成本高于
MySQL Replication。另外,DRBD也是官方推荐的可用于MySQL高可用方案之一,所以这个大家可根据实际环境来考虑是否部署。

三、MySQL Replication
在实际应用场景中,MySQL
Replication是使用最为广泛的一种提高系统扩展性的设计手段。众多的MySQL使用者通过Replication功能提升系统的扩展性后,通过
简单的增加价格低廉的硬件设备成倍
甚至成数量级地提高了原有系统的性能,是广大MySQL中低端使用者非常喜欢的功能之一,也是许多MySQL使用者选择MySQL最为重要的原因。

比较常规的MySQL Replication架构也有好几种,这里分别简单说明下
MySQL Replication架构一:常规复制架构–Master-slaves,是由一个Master复制到一个或多个Salve的架构模式,主要用于读压力大的应用数据库端廉价扩展解决方案,读写分离,Master主要负责写方面的压力。
MySQL Replication架构二:级联复制架构,即Master-Slaves-Slaves,这个也是为了防止Slaves的读压力过大,而配置一层二级 Slaves,很容易解决Master端因为附属slave太多而成为瓶劲的风险。
MySQL Replication架构三:Dual Master与级联复制结合架构,即Master-Master-Slaves,最大的好处是既可以避免主Master的写操作受到Slave集群的复制带来的影响,而且保证了主Master的单点故障。
以上就是比较常见的MySQL replication架构方案,大家可根据自己公司的具体环境来设计 ,Mysql 负载均衡可考虑用LVS或Haproxy来做,高可用HA软件我推荐Heartbeat。
MySQL
Replication的不足:如果Master主机硬件故障无法恢复,则可能造成部分未传送到slave端的数据丢失。所以大家应该根据自己目前的网络
规划,选择自己合理的Mysql架构方案,跟自己的MySQL
DBA和程序员多沟涌,多备份(备份我至少会做到本地和异地双备份),多测试,数据的事是最大的事,出不得半点差错,切记切记。

因本人自身能力有限,以上认识可能存在错误和疏漏,大家有什么想法和意见都可以通过我的博客与我交流,我会在第一时间更正此文章。

参考文档 简朝阳 《MySQL性能调优与架构设计》电子工业出版社