很多时候我们在vim一个文件然后保存的时候却发现没有写权限,这个很纠结,尤其是在编辑了一个文件的好几处,而且不在一屏的时候,其实有个变通的方法,原理稍后介绍,现在你可以在保存的时候使用下面的命令:
:w !sudo tee %
原理是w ! 可以把当前尚未保存的内容输出到标准输入中,然后用tee 把标准输入的东西写入到%文件中。 而在vim中,%代表当前正在编辑的文件。
很多时候我们在vim一个文件然后保存的时候却发现没有写权限,这个很纠结,尤其是在编辑了一个文件的好几处,而且不在一屏的时候,其实有个变通的方法,原理稍后介绍,现在你可以在保存的时候使用下面的命令:
:w !sudo tee %
原理是w ! 可以把当前尚未保存的内容输出到标准输入中,然后用tee 把标准输入的东西写入到%文件中。 而在vim中,%代表当前正在编辑的文件。
这本书是近来难得一见的好书,认识字的都应该去读几遍,中文最近也出版了,各大售书网站都可以买到,打完折二十几块钱,非常物有所值,尽管英文版我已经读过,依然忍不住买一本中译本收藏,虽然中译本的名字我觉得很恶俗,这本书和商业思维没有太多的关系,中译本的作者自作聪明的加上这个小标题,有点恶心,另外将rework翻译成“重来”个人觉得也有点欠妥当,还不如不翻译,意思可能会更明确一点。虽然中译本有这样那样的问题,整体来说翻译的不错,不喜欢英文的可以买来看看,鼎力推荐——我本人不会有任何好处 中国人常说的一句话是:失败是成功他妈。作者引用哈佛商学院的报告证明,失败的创业者再次创业并不比从未创业的人成功的概率更高。有一类人非常明白这个道理,他们有个名字叫VC(风险投资人),VC非常喜欢那些已经或者曾经创业并且干得不错的人,换句话说这些人往往能从VC那里以比较小的代价(损失较小的股份或者少费周折)搞到很多很多的钱用于再次创业或者公司发展 。
这个观点有点意思,几乎所有的企业家都想将自己企业做大,富士康的员工超过百万,而作者觉得大未必是最优的,我非常认同作者的观点,我身边就有很多的公司每年几个亿的业务却只有10个左右的员工。公司越大责任就越大,不仅要自己赚钱还要照顾好这些员工,是一个有责任的企业家应该做到的,而不是压榨。如果你不能,那么就尽量提高效率,少招几个人吧,与人与己都是好事。
引用里面的几句话:工作狂实际取得的成就并不比正常人高,他们自诩为完美主义者,但这仅仅代表他们浪费了大量的时间去关注次要的细节,而不是推动下一项任务。真正的英雄是早已想出办法、搞定一切,然后回家了。
我们身边总有这样的人在叹息“XXX我早就想到了,只是没有下手,如果当初我干了,现在也亿万富翁了”,这个观点很可笑,你大脑中有创意跟你实际去创建这样的事情一点关系也没有,在你人生中最有意义的使你做了什么,而不是你想过什么、说过什么或者计划过什么
当你拥有某种极其强烈的渴望时,你就能挤出时间来,不管你身上是否还背负着其他的责任,事实上大部分的渴望不是那么强烈,于是他们总是拿没有时间来做借口进行自我保护。如果我不是这样,我今天已经做出了好几个开源作品了。
=====未完待续======
对领导
对下属
员工一般非为四种:
对工作
从技术到管理转换是出现的问题
Q:发现时间不够用了? A:分清那些事情可以不做的。
其他
当运行 /usr/local/sbin/gearmand -d 时
出现
error while loading shared libraries: libgearman.so.1
运行一下 /sbin/ldconfig -v ,然后再去运行gearman就可以了
ldconfig命令的用途,主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态链接库(格式如前介绍,lib*.so*),进而创建出动态装入程序(ld.so)所需的连接和缓存文件.缓存文件默认为/etc/ld.so.cache,此文件保存已排好序的动态链接库名字列表.
ldconfig通常在系统启动时运行,而当用户安装了一个新的动态链接库时,就需要手工运行这个命令.
关于iso8601数据交换标准,请参见维基百科的解释,中文版不完全解释,参见为维基百科中文版
常见示例格式如下:
2010-11-21T00:00:00+08:00
真实的案例,请参见美团网的团购API
Python默认安装包中不能对iso8601格式的时间戳,因此先安装这个解析包,下载地址:http://pypi.python.org/pypi/iso8601/
如果你不能在网站上找到对应Python版本的模块,也可以通过输入easy_install iso8601试试,我的是2.6版本,安装成功
解析过程很简单,代码如下:
import time import iso8601 dt = iso8601.parse_date('2010-11-21T00:00:00+08:00') timestamp = time.mktime(dt.timetuple())
PS:感谢妖怪帮助我解决解析iso8601时间格式的问题
import socket import urllib2 socket.setdefaulttimeout(seconds) open = urllib2.urlopen("http://xxx.xxx.xxx")
urllib2本身是没有办法设置超时时间的,示例中是通过socket.setdefaulttimeout() 设置了全局默认超时时间,从而给urllib2.urlopen()也设置了默认的超时时间
一些regular的tips:
1 非贪婪flag
>>> re.findall(r”a(\d+?)”, “a23b”)
['2']
>>> re.findall(r”a(\d+)”, “a23b”)
['23']
注意比较这种情况:
>>> re.findall(r”a(\d+)b”, “a23b”)
['23']
>>> re.findall(r”a(\d+?)b”, “a23b”)
['23']
2 如果你要多行匹配,那么加上re.S和re.M标志
re.S:.将会匹配换行符,默认.不会匹配换行符
>>> re.findall(r”a(\d+)b.+a(\d+)b”, “a23b\na34b”)
[]
>>> re.findall(r”a(\d+)b.+a(\d+)b”, “a23b\na34b”, re.S)
[('23', '34')]
>>>
re.M:^$标志将会匹配每一行,默认^和$只会匹配第一行
>>> re.findall(r”^a(\d+)b”, “a23b\na34b”)
['23']
>>> re.findall(r”^a(\d+)b”, “a23b\na34b”, re.M)
['23', '34']
但是,如果没有^标志,
>>> re.findall(r”a(\d+)b”, “a23b\na23b”)
['23', '23']
可见,是无需re.M
Linux环境下dedecms5.6实现伪静态的方法,5.5 5.3应该也适用。
1.首在在后台开启伪静态.
2.然后栏目和文章设置成动态浏览.
设置方法为:在后台系统设置sql里执行以下语句
将所有文档设置为“仅动态浏览”,update dede_archives set ismake=-1
将所有栏目设置为“使用动态页”,update dede_arctype set isdefault=-1
改成1就是静态。动态转换为静态后需要重新生成HTML。
3. nginx设置重写规则. 内容为:
rewrite “^/list-([0-9]+)\.html$” /plus/list.php?tid=$1 last;
rewrite “^/list-([0-9]+)-([0-9]+)-([0-9]+)\.html$” /plus/list.php?tid=$1&totalresult=$2&PageNo=$3 last;
rewrite “^/view-([0-9]+)-1\.html$” /plus/view.php?arcID=$1 last;
rewrite “^/view-([0-9]+)-([0-9]+)\.html$” /plus/view.php?aid=$1&pageno=$2 last;
break;
修改channelunit.func.php文件
原来大约113行:
return $GLOBALS["cfg_plus_dir"].”/view-”.$aid.’-1.html’;
修改为:
return $GLOBALS["cfg_cmsurl"].”/view-”.$aid.’-1.html’;
原来大约166行为:
$reurl = $GLOBALS['cfg_phpurl'].”/list.php?tid=”.$typeid;
修改为:
if($cfg_rewrite == ‘Y’)
{
$reurl = $GLOBALS['cfg_cmsurl'].”/list-{$typeid}.html”;
}
else
{
$reurl = $GLOBALS['cfg_phpurl'].”/list.php?tid=”.$typeid;
}
最胡在数据库中运行如下命令:
update dede_archives set ismake=-1;
update dede_arctype set isdefault=-1;
备注:这样修改首页并没有实现伪静态,这样修改已经满足我的需求了,修改一下模板或者增加点全局的东西,不用全部重新生成一遍,几十万篇文章,全部生成一遍简直就是噩梦
先来看一张图:

这是一个简单的脚本,利用Tcpdump将当前网络包加以分析,把带有rebot标识的agent输出到终端,代码如下:
tcpdump -i eth0 -l -s 0 -w – dst port 80 | strings | grep -i user-agent | egrep -i ‘bot|crawler|slurp|spider’
A:192.168.0.1 (目标/需要同步服务器)
B:192.168.0.2(备份服务器)
A:
yum -y install xinetd
vi /etc/xinetd.d/rsync
将“disable = no”
chkconfig xinetd on
service xinetd start
vi /etc/rsyncd.conf
[site] #name
path = /var/www/html #copied directory
hosts allow = 192.168.0.2
hosts deny = *
list = true
uid = root
gid = root
在B上的命令:
# ssh-keygen -t rsa (连续三次回车,即在本地生成了公钥和私钥,不设置密码)
# ssh root@192.168.0.1 “mkdir .ssh;chmod 0700 .ssh” (需要输入密码)
# scp ~/.ssh/id_rsa.pub root@192.168.0.1:.ssh/id_rsa.pub (需要输入密码)
在A上的命令:
# touch /root/.ssh/authorized_keys2 (如果已经存在这个文件, 跳过这条)
# cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys2 (将id_rsa.pub的内容追加到 authorized_keys2 中)
回到B机器:
# ssh root@192.168.0.1 (不需要密码, 登录成功)
#vi /etc/rsync_exclude.lst #这里写你排除的目录或文件
no.txt
nono.txt
#rsync -avz –delete –rsh –exclude-from=/etc/rsync_exclude.lst 192.168.0.1::site /home/backup
#crontab -e
00 02 * * * rsync -avz –delete –rsh–exclude-from=/etc/rsync_exclude.lst 192.168.0.1::site /home/backup
Recent Comments