最近还是在centos官网上找到了,下面的实践没有达到想要的要求。
http://mirror.centos.org/centos/6.3/os/i386/Packages/gdb-7.2-56.el6.i686.rpm
=========================================================================
root@192.168.137.159:~/software# wget http://mirror.centos.org/centos/6.3/os/i386/Packages/gdb-7.2-56.el6.i686.rpm
--2013-04-08 21:55:46--  http://mirror.centos.org/centos/6.3/os/i386/Packages/gdb-7.2-56.el6.i686.rpm
正在解析主机 mirror.centos.org... 202.76.233.2
正在连接 mirror.centos.org|202.76.233.2|:80...败:连接超时。
重试中。

http://mirrors.163.com/centos/6/os/i386/repodata/repomd.xml
试了N种方法,没法解决,后来发现是因为文件yum.conf里面设置了proxy,注释掉就行了
运行yum clean all清楚缓存

运行yum makecache生成缓存

出现如下错误:

Loading mirror speeds from cached hostfile
http://mirrors.163.com/centos/6/os/i386/repodata/repomd.xml: [Errno 14] PYCURL ERROR 7 - "couldn't connect to host"
Trying other mirror.
Error: Cannot retrieve repository metadata (repomd.xml) for repository: base. Please verify its path and try again
vi ./etc/yum.conf
proxy=http://10.33.26.112:808

--2013-04-08 21:56:50--  (尝试次数: 2)
......
卡在这儿了。
=========================================================================
得出:是自己虚拟机的配置或网络的缘故,和163的源无太大关系,NAT配置正确,宽带这块好像有限定,对某些域名都无法ping通呀,嗨,什么玩意,想换个联通的ADSL,小宽带运营商这些都太多限定了。
解决办法:直接通过浏览器下载后,通过rz放入centos6.3的系统里,再rpm -ihv gdb-7.2-56.el6.i686.rpm
=========================================================================
写在前面:网易给人感觉有点像中国IT业的脊梁,低调耐用实用实在,其掌门人丁磊在很久前就有这样那样的源开放出来供下载,想法比较特立独行,其颇具执行力,我觉得这也算是作为IT业的一份贡献吧,从这个角度来看就不难想像丁磊去养猪了,呵呵。
背景:家里的vmware里的centos6.3没法安gdb,出现:

------------------------------------------------------------------------------------------------------------------------------------------------------------------------
配置网易163的yum源

1. 下载repo文件
    下载地址:http://mirrors.163.com/.help/CentOS6-Base-163.repo

2. 备份并替换系统的repo文件
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost ~]# mv CentOS-Base.repo CentOS-Base.repo.bak
[root@localhost ~]# mv /root/CentOS6-Base-163.repo CentOS-Base.repo

3. 执行yum源更新
[root@localhost ~]# yum clean all
[root@localhost ~]# yum makecache
[root@localhost ~]# yum update

4. 到此已结束,用yum安装一下文件,看是否OK
[root@localhost ~]# yum install vim*

5. 安装centos常用的软件包及工具
    常见压缩工具 zip unzip bzip2
[root@localhost ~]# yum -y install unzip zip bzip2 bzip2-devel
  gcc gcc++编译器
[root@localhost ~]# yum install gcc gcc-c++ -y
  cmake编译器
[root@localhost ~]# yum install cmake make -y
  图片资源
[root@localhost ~]# yum -y install gd libjpeg libjpeg-devel libpng libpng-devel freetype-devel
  其它常用资源包工具
[root@localhost ~]# yum -y install autoconf bison automake zlib* fiex* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel*

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
CentOS 6.3安装第三方yum源
# wget http://www.atomicorp.com/installers/atomic[/url]
下载完成后执行以下命令

# sh ./atomic
里面涉及到的rpm:http://3es.atomicrocketturtle.com/packages/atomic-release/atomic-release-1.0-16.el6.art.noarch.rpm
阅读全文
经实践和抓包测试发现,不能将-d和-I一起用的原因是-d是POST方式,而 -I 则是PUT方式,且-I并没有内容返回,只是返回服务器的Header头部信息,两者混用就会出现矛盾,所以提示:Warning: You can only select one HTTP request method! You asked for both POST
Warning: (-d, --data) and HEAD (-I, --head).

一、下面这中方法,CURL的方式进行Post数据同时,并显示出头部Header信息:
curl -s -d'test=test' -D- -o/tmp/null.txt http://coding.jackxiang.com/src-ui/postcaptcha.php   #注意-D 后面的-,表示输出“文件”是标准输出。
上面命令行细节如下:-D- :D后面有一个中间杠:
-s 不输出:Total    % Received % Xferd  Average Speed   Time    Time     Time  Current信息

HTTP/1.1 200 OK
Server: openresty
Date: Tue, 30 May 2023 08:19:58 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Accept-Encoding
Vary: Accept-Encoding

cat /tmp/null.txt
Array
(
    [test] => test
)
======Wireshark抓包如下(有数据从服务器上返回)======
经实测发现并不是真正的Head方法:


二、而如果真用Head方法,则是这样的:
curl -I http://coding.jackxiang.com/src-ui/postcaptcha.php
HTTP/1.1 200 OK
Server: openresty
Date: Tue, 30 May 2023 08:21:39 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
Vary: Accept-Encoding
Vary: Accept-Encoding

======Wireshark抓包如下(只返回Header头,没有其它数据从服务器上返回)======
HEAD /src-ui/postcaptcha.php HTTP/1.1
Host: coding.jackxiang.com
User-Agent: curl/7.87.0
Accept: */*

HTTP/1.1 200 OK
Server: openresty
Date: Tue, 30 May 2023 08:16:52 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
Vary: Accept-Encoding
Vary: Accept-Encoding


POST的demo代码基础测试:
curl -d"test=test" http://coding.jackxiang.com/src-ui/postcaptcha.php
Array
(
    [test] => test
)
postcaptcha.php


curl中的-I选项使用HEAD方法自动发出http请求,是指哪些请求呢?
在cURL中,使用-I选项会发出一个HEAD方法的HTTP请求。HEAD方法是HTTP协议中的一种请求方法,它类似于GET方法,但服务器只返回响应头部信息而不返回实际的响应内容主体。
当你使用curl -I <URL>命令时,-I选项会告诉cURL发送一个HEAD请求,并返回服务器对该请求的响应头部信息。这对于获取有关资源的元数据、检查资源的状态或验证资源是否存在等场景非常有用,而无需获取整个响应内容。
请注意,由于HEAD方法只返回响应头部信息,因此响应的主体部分为空。这使得HEAD请求比GET请求更轻量级,因为它不需要传输和处理响应的实际内容。
总结起来,curl -I <URL>会发送一个HEAD请求,并返回服务器对该请求的响应头部信息,而不返回响应的主体内容。
[/codes]




附:
The -I option tells curl to do a HEAD request while the -d'test=test' option tells curl to do a POST, so you're telling curl to do two different request types.
curl -s -d'test=test' -D- -o/dev/null http://coding.jackxiang.com/src-ui/postcaptcha.php
or, on Windows:
curl -s -d'test=test' -D- -onul: http://coding.jackxiang.com/src-ui/postcaptcha.php

背景:有时一个页面莫名奇妙变为:您请求的页面发生错误! 这显然是经过http做的http头的redirect,于是否怎么知道呢?用curl
curl命令获取HTTP头文件:


看下Cookie吧:

用Curl试试看,主要是看Cookie的过期时间,是怎么发送的:


一)其实用HttpWatcher也能看到Http给浏览器发送的头的Cookie时间,如下:

二)用Fiddler2也能看,在返回(下面),选 header也能看到Cookie的过期时间。(想了解整个可以在Url上右键,后选:Copy --> Header Only。)
三)用Firefox下的firebug也能看到时间。
四)Chrome也能看,F12调出开发者工具后,Resources Cookies 域名里就有它。(它对Cookie的时间作了列分割,前面都是大大的显示出来。)

看到了吧:Location: http://w.xiyou.cntv.cn/error.html  ,它就是转向的根源,它向浏览器发送了这样一个http的头,于是你就看到了这个转向了的页面。


阅读全文
正在使用 Ext4 文件系统的同学可得当心了。据某些用户反映,它可能会造成你的数据丢失。国外一位 Kubuntu Jaunty 的用户称,使用 Ext4 文件系统使他丢失了大量的数据,相关描述可参见位于 launchpad 上的 bug 报告。

无独有偶,国内的 albert748 也遇到了类似的问题。他描述道,X 无缘无故死掉,断电重启后,发现 Firefox 的配置丢了很多。与上面那位国外用户一样,albert748 也使用 2.6.28 内核和 Ext4 文件系统。

今天,H-Online 刊登了一篇文章 Ext4 data loss; explanations and workarounds,其中对此进行了解释,并包含 Ext4 开发者 Ted Ts'o 提供的解决方案,有兴趣的同学可去看看。
http://linuxtoy.org/archives/ext4-data-loss.html
阅读全文
背景:我发现postfix安装后有很多sendmail的僵尸进程,怎么办,最彻底的办法是删除掉这个sendmail,最后发现其vps上有postfix,于是删除掉。
删除postfix步骤,它默认会安装sendmail的:
[root@iZ25dcp92ckZ ~]# rpm -e postfix-2.10.1-6.el7.x86_64
错误:依赖检测失败:
        /usr/sbin/sendmail 被 (已安裝) redhat-lsb-core-4.1-27.el7.centos.1.x86_64 需要

[root@iZ25dcp92ckZ ~]# rpm -e redhat-lsb-core-4.1-27.el7.centos.1.x86_64
[root@iZ25dcp92ckZ ~]# rpm -e postfix-2.10.1-6.el7.x86_64    
whereis sendmail
sendmail:  //没有了sendmail。
安装postfix:
http://free.yes81.net/yes81/view-13491.html
阅读全文
背景:两种盘的读写速度不一样,于是要看一下到底是哪种:
df -h
有sas硬盘吗 ?还是SATA啊?
linux下SATA硬盘是 hda , SCSI硬盘是sda
   搞个Vmware6.0,有点旧,没办法电脑主板CPU不行,升级高版本有问题,但这都不是问题,每次打开时都提示要升级,怎么办:
平时没有怎么管就点不升级,后来发现在打开Vmware6.0里,选择“编辑”---“参数”---Workspace里有一个software updates下拉里选never,。
调查显示:企业需要Linux方面的IT人才,企业现在需要他们,并且愿意花上一大笔钱去聘请他们。由Linux基金会和号称#1技术工作平台的 Dice进行的2013年Linux工作报告调查表明,来自大型企业,中小型企业,政府和职介所的招聘经理都喜欢Linux专业人士——并且现在就需要。

特别的,这项涉及850名招聘经理和2600名Linux专业人士的调查发现:

93%的招聘经理表示,他们将会在接下来的6个月中雇佣Linux人才,比2012年的89%提高了4%。

2013年,更多的招聘经理表明找到Linux人才非常困难——10个人中有9个人这样说;在2012年,10个人只有8个人重视懂Linux的科技专业人士。

据招聘经理说,系统管理员是最吃香的Linux工作,代表着在支持云计算和Big Data的企业中Linux的发展。接下来是开发人员和开发运营专家。

被调查的75%的Linux专业人士在过去的6个月中都接收到至少一个来自招聘者的电话。雇主用高于平均水平的工资和奖金聘请他们。今年,Linux专业人士的工资增长了9%,远远超过其他技术类工资5%的增长率(这是10年来的最大增幅), Dice工资调查显示。

来自:http://cnbeta.com/articles/227487.htm
移动Vmware6.0下的CentOS6.3到单位机器启动时提示如下信息:

1.察看系统CPU频率,鼠标右键点“我的电脑”,属性。为:3.3GHZ
2.新建文件并添加如下内容:
C:\Documents and Settings\All Users\Application Data\VMware\VMware Workstation\config.ini



解决办法:
当建立虚拟主机后启动虚拟主机提示:

VMware Workstation has measured your CPU speed to be 1032 MHz, but Windows reports that it is 1994 MHz. This may

mean that your computer has a power-saving feature that varies the processor speed. As a result, the clock in your

virtual machine may run too fast or too slow.

For a workaround, please refer to the VMware knowledge base article at:
http://www.vmware.com/info?id=97

解决方法:

根据VMWARE文档修改如下:
1. 察看系统CPU频率,鼠标右键点“我的电脑”,属性。
2. 在文件C:\Documents and Settings\All Users\Application Data\VMware\VMware Workstation\config.ini中添加(如果没有这个文件,自己添加):

host.cpukHz = 1700000(替换为你的CPU频率)
host.noTSC = TRUE
ptsc.noTSC = TRUE

来自:http://www.1985er.com/lee/article.asp?id=198
问题:vim打开后如何取消syntax = on?我发现服务器加上后vim编辑很慢,临时取消
set syntax=off   (实践发现输入啥都能关掉,理论上还是大写的OFF。)
嗯,又想打开呢?
:set syntax=ON    (一定要大写)

想要小写怎么办?
语句来使得语法高亮显示
:syntax off
:syntax on

背景:在用raspberry用SecureCRT下的vim打开文件时出现用set nu时行有下划线,于是找了下解决办法,如下:
vim行号下划线问题
在vim中发现开启显示行号(set number)或语法高亮(syntax on)时,发现文档中很多地方都有下划线,对视觉产生极大干扰。开始还以为是vim的某个配置造成的,后来发现真正的元凶是securecrt,但是可以通过配置来去掉下划线。具体配置如下:
session option–>terminal–>appearance,这里有current color scheme选项,不论选择哪一项,或者是新建的,都可以点击edit…按钮,里面底部有三个复选框,中间一个是show underline,取消选择,那进入vi后如果显示行号,那行号不会有下划线!
对应汉化版的securect,配置如下:
会话选项 –> 终端 –> 外观 –> 当前颜色方案 –> 编辑,在出来的对话框中把显示下划线前面的勾去掉。

From:http://onx0320126.wap.blog.163.com/w2/blogDetail.do?hostID=onx0320@126&blogId=fks_087065087083083065084082083069072087087071083085080071087080
参考:http://www.360doc.com/content/12/0408/19/532901_201980859.shtml

附录:
1)为操作的一行添加下划线(方便看当前):set cursorline
2)SecureCRT里彩色显示字:会话选项->外观,当前颜色方案,traditional。
SecureCRT如何设置才能使Vim中代码彩色显示?? 3,4。
3)SecureCRT里高亮显示字:会话选项->仿真,终端:xterm 勾选:ANSI颜色,使用颜色方案,使用颜色方案勾选才能高亮。
4)  服务器端的设置。在.bashrc中添加:export TERM=xterm  export TERM=xterm-color 语句。
再就是raspberry里的pi是彩色,而root后ls等反而不是,出现这个问题是:
先解决ls的色彩问题。


退出登录再重新连接,充满色彩的vi又回来了。
我的设置,vi ~/.bashrc :


理解:
export PS1='${debian_chroot:+($debian_chroot)}\[\033[0;37;40m\u@\033[0;32;40m$ipL:\w\033[0;33;40m\$ '
解释:
下面我用一个提示符的例子来解释 shell 的颜色。
~/.bashrc: PS1="\[\033[0;32;40m\u@\h:\w\$ \]"
这样提示符就全部显示成绿色了。就像这样:
nico@ebrain:~$
\033 声明了转义序列的开始,然后是 [ 开始定义颜色。 后面的 0 定义了默认的字体宽度。稍后我会介绍其他的可用字符。 转义序列字符串要用 \[ 和 \] 括起来, 防止转义序列的文本显示在 shell 里占用太多的空间。

下面我们要选择前景色(这里是 32,代表绿色)。背景色的 40 表示黑色。 要是不想让提示符后面的文字也变成绿色,我们用 \033[0m 关闭转义序列, \033[0m 是 shell 的默认颜色。前景色和背景色都有 8 种可用的选择。

可选颜色:红色、绿色、黄色、蓝色、洋红、青色和白色。 他们对应的颜色代码是:30(黑色)、31(红色)、32(绿色)、 33(黄色)、34(蓝色)、35(洋红)、36(青色)、37(白色)。

用同样色方法设置背景色,不过要把第一个数字“3”替换成“4”, 例如 40、41、42、43、44、45、46、47。
更多参考:http://www.linuxfocus.org/ChineseGB/May2004/article335.shtml


二:Vim颜色设置:
新建文件   ~/.vimrc是用户自己的vim配置文件,在这个配置文件中设置的配置只影响该用户自己。
命令如下:
cd ~
vi .vimrc
输入:syntax on
保存退出
source .vimrc
此时可以找一个xml文件 进行查看,看看是不是已经有颜色了
vim xxx.xml
给 vi 做个别名,
# vi ~/.bashrc
alias vi='vim'
# source ~/.bash_profile
注:syntax on ,显示颜色;syntax off ,则不显示颜色。

来自:http://www.doyj.com/2010/02/07/%E8%AE%A9securecrt%E7%99%BB%E5%BD%95debian%E6%97%B6%E6%98%BE%E7%A4%BA%E5%BD%A9%E8%89%B2/

PS1颜色表用来设置前面提示符的颜色:http://www.linuxfocus.org/ChineseGB/May2004/article335.shtml
http://www.cnblogs.com/starspace/archive/2009/02/21/1395382.html
修改linux终端命令行颜色:
参考:http://www.cnblogs.com/menlsh/archive/2012/08/27/2659101.html
Linux关机重启动命令在 Read-only file system时用init和shutdow时的区别,shutdown -h now 关不了提示Bus error,用init 0就能关掉:



1)终端关闭:linux - shutdown -h now 立即关机:shutdown -h now  halt    poweroff
shutdown -r 18:23:52 #定时重启在18点23分52秒关闭,-r 是restart的意思,即重启含义。
shutdown -h now      #即h是halt的意思,poweroff就是立即关机的含义,不再重新启动。

Broadcast message from root@raspberrypi (pts/0) (Sat Feb  2 13:51:35 2013):
The system is going down for system halt NOW!
[ 8458.116208] Power down.

该命令的一般格式    shutdown [选项] [时间] [警告信息] 命令中各选项的含义为:   - k 并不真正关机而只是发出警告信息给所有用户    - r 关机后立即重新启动    - h 关机后不重新启动    - f 快速关机重启动时跳过fsck    - n 快速关机不经过init 程序    - c 取消一个已经运行的shutdown 需要特别说明的是该命令只能由超级用户使用。 例1,系统在十分钟后关机并且马上重新启动   # shutdown –r +10 例2,系统马上关机并且不重新启动   # shutdown –h now

2)init 0 立即关机,init 6 重启。

3)reboot 重启

QA:
Init 6是重新启动机器。
reboot也是重新启动机器。
那么这两个命令到底有什么区别呢?
对这两个操作使用man命令看到的内容如下:
"init 6" 基于一系列/etc/inittab文件,并且每个应用都会有一个相应shutdown脚本。
'init 6' 调用一系列shutdown脚本(/etc/rc0.d/K*)来使系统优雅关机;
'reboot'并不执行这些过程,reboot更是一个kernel级别的命令,不对应用使用shutdown脚本。 .
我们应该在通常情况下使用 init 6.
reboot - reboot performs a sync(1M) operation on the disks, and then a
multi- user reboot is initiated. See init(1M) for details.
init 6 Stop the operating system and reboot to the
state defined by the initdefault entry in
/etc/inittab.
在出问题的状况下或强制重启时使用reboot.

更多参考:http://www.cnblogs.com/summergarden/archive/2013/01/12/2857754.html
Linux下的备份神器--Partimage分区数据备份,类Ghost,可惜不支持Ext4,而有一个台湾人写的再生龙支持Ext4格式的硬盘备份值得实践:
http://blog.51cto.com/storysky/291587
Download:http://clonezilla.nchc.org.tw/clonezilla-live/download/

实践发现:选那个默认的会出现错误,重新选那个KDE的就没有问题。
但是进去后发现还能选简体中文呢,我的目的就是想克隆一整块硬盘,
作为备份路由的CentOS7.4和爱快@KVM虚拟,只有一块盘/etc/sda,
后来把那个外接的硬盘给上电就识别为/etc/sdc ,/etc/sdb是我那个USB做的UltraISO,
用U盘装上再生龙的LiveCD开机启动的,http://jackxiang.com/post/6986/ ,
台湾人做事情就是仔细会很耐心的提示你生怕你搞错了,/etc/sda是源,/etc/sdc是目标:
1)询问进行拷贝整个盘到别一块盘是否要检查下源盘并修复,这个不用按默认就可以了。
2)拷贝完后是重启还是关机,这个我选关机。(因为我得把那U盘和目标盘拔下来再开机。)
3)/etc/sdc没有标签,两次提醒会OVERWRITE,于是就让它OverWrite得了。
4)Do you want to clone the boot loader(exectable code area,the first 446 bytes) to:sdc? (这个太关键了,我就是想整盘拷贝,这张盘坏了直接上到这台机器硬盘位换下那块坏盘的备份盘,当然要拷贝。)

再生龙也是用的dd,经过询问,给你把参数加进去了,如下:
I remembered reading one question how would you back up the MBR of a disk.

Two of the choices are

dd if=/dev/sda of=/dev/sdb bs=512 count=1
dd if=/dev/sda of=/dev/sdb bs=440 count=1
and the correct answer is

dd if=/dev/sda of=/dev/sdb bs=440 count=1
I am confused. Is the MBR size 440B or 512B ?

dd是

down vote
accepted
The MBR IS 512 bytes. So the first example is how you would back it up. The partition table is at the end, in the area after 440 bytes in - so, if you wanted to back it up WITHOUT the partition table, then you could use the second example (why you'd want that, I don't know).
From:https://unix.stackexchange.com/questions/254657/mbr-size-is-440-bytes-or-512-bytes
_____________________________________________________



里面说道,这个是以实际文件来备份的,如果一个盘符有20G,而文件只有10M,那就备份10M,有点像Ghost。
可以通过它备份到一个自己创建的盘符里。

      你是否一直在寻找在Linux下可以替代dd命令,类似Ghost的工具了,恭喜你不需要再寻找了,因为它就在你的面前--Partimage。
我使用的是Ubuntu12.04,想要安装Partimage第一步:
在终端输入,
sudo aptitude update
sudo aptitude install partimage
现在开始使用:
在终端输入,sudo partimage ,现在使用partimage的备份功能
用Tab移动选项,选择你需要备份的区域,在“Image file to crate/use”中填写你将备份的文件存放到哪个目录,在“Action to be done”选项中选择"Save partition into a new image file",这是说保存分区到新的备份文件,其他选项我就不介绍了,我的洋文不好,介绍起来心虚。用Tab键将光标移动到“<Next  (F5)>”处进行下一步操作,当然你可以直接按“F5”,如图
开始备份时partimage会提示是否进行压缩备份,有点类似Ghost备份时提示你“不压缩,压缩,高级压缩”的选项,我在这里选择的是第二个“压缩”,其余的选项是默认的,等待你自己去发掘:
同样用Tab选中“<Continue  (F5)>”或直接按“F5”进行下一步操作。进行备份前partimage会提示需要你填写备注,填写备注后按“OK”partimage会提示你备份的分区的一些信息,比如分区大小,已使用空间,剩余空间等等:
上图就是partimage提示你填写一些备注,当然你也可以不填写
partimage提示你分区的信息。选中“OK”后就开始备份了:
备份中
备份完后直接按“Enter”(回车键)退出partimage,到此我们就备份了我想要备份的分区,现在我想还原怎么样操作了?
现在使用partimage进行还原的操作:
在终端输入,sudo partimage
如图,我们还是选择第三个分区,在在“Image file to crate/use”中填写你的备份文件,当然partimage会自动在你备份的文件名中加上类似“.000”的后缀,
在“Action to be done”选项中选择“Restore partion from an image file”从一个备份文件中还原,然后按“F5”进行下步操作。
我使用的默认的值进行操作,直接按“F5”,在还原前会提示你备份时填写的备注信息,如图
按“Enter”进行下一步操作,partimage会提示你分区的信息,如图:
选中“OK”进行还原:
还原成功后,直接按“ok”就可以退出软件。
参考:http://www.linuxcast.net/public/cast_show/32   //centos需要修改yum的源



来自:http://www.ilovexinji.com/xinji-home/106-linux-ghost-partimage
视频:http://www.linuxcast.net/public/cast_show/32
带减号前缀和空格, 减号会被解析为参数前缀, 空格会被划分到下一个参数,  加双引号,单引号, 反斜杠均不行, google了一下, 完整的命令应该这样:

1
rm -- "- no-timestamp"

来源:http://306lab.com/?p=412
   node.js解决了异步问题,但没解决并行问题,于是有疯子想把node.js用C扩展方式做成并行,为什么呢?
是因为Erlang和Golang是未来的主流语言,而nodejs是单线程而不能很好利用多核CPU的问题,于是有人想给它增强能力(尽管有cluster),
也想学go和erlang从语言层面上来解决问题。
但是现在GO语言和erlang已经在语言层面解决了并行问题,我觉得主要是多核心的利用,并行是必然趋势。
自己要做这些事情得自己学会进程调度,队列,信号等,像erlang和go,程序员不需要关心进程线程调度的问题,它在底层就封装好了。
之所以node.js有很多人学是因为,node.js主要是语言是JS。这让很多有前端经验的人可以很空易掌握。但是node.js也有些问题的,比如网络模块缓冲区总是64k。
如果要对核心的东西做调整还是挺麻烦的。你可用js写游戏可以跨所有的手机平台包括网页版,所以node.js也是个工具,不是语言。不是node.js火,是js火,搭了html5的顺风车。
新在啊儿呢,这个Nodejs:js基本上一个有任意语言经验的coder可以在一周内上手做项目。只要提供好项目管理,把规范之类的做好。成本之低。如果是c++:c++我花了两周一路是坑。
都是在html5上下功夫,不过问题是, html5游戏的商业模式好像不太清晰。个人觉得吧,做终端, 老老实实用原生语言去做, html5带来的好处好像意义没那么大。
现在html5这个工作组在做一个事情就是给-x绑定一个js引擎。用c++提供图形渲染。js处理业务逻辑。我跑过几个demo,性能还不错。
所以,我一直对html5持谨慎态度,技术也不热衷,看了看概念,大概了解了下。然后结论是:观望,还不成熟。

     有人说最近几年游戏火,lua脚本就火了,和js一样很像python那样的胶水语言,能在线更新更能兼容浏览器,lua跟我刚说的Js一样的概念。 lua去调原生的c++,lua只是执行逻辑处理。他也是在app里集成了一个lua的引擎,还给lua绑定了一些cocos2d的接口,。lua现在用的已经很成熟了,多如牛毛,不多讲。

                                                                                                        Writen by :jackxiang   2013-01-11 17:30:00


附录:
嗯,node.js可以实现那个http王浏览器推数据么?
跟nodejs没太大关系吧。都可以实现
那前端怎么搞?取数据时我一直觉得是个难题。
一个长链接挂着。
有数据来就处理罗
浏览器那边也这样子搞?
websocket  向浏览器推 后端可以使用nodejs 加前端使用socket.io 可以实现

如果php用的多 后端可以使用  https://github.com/bergie/dnode-php  也是事件模型 跟node一样
也可以使用 https://github.com/cboden/Ratchet  用php实现的websocket server,通信协议使用wamp
http://socketo.me/ http://wamp.ws/  可以看看

如果真的要实现 server->client传数据,不建议直接采用socket.me上面的js库,desktop上面浏览器对web socket支持的不错,但是无法兼容android浏览器,所以可以使用socket 支持flash socket.
socket.io

启一个socket tcp 也没什么,XMPP的server,openfire 号称单机支持30万长连接
看到composer.json了吗
去查查 是什么东西
一个php的标准库
很好很强大的
这是个好玩意儿,比pear 强几百倍
现在多数优秀开源库都能用 composer 装
我还没用完全采用composer  
是用libevent + stream扩展函数来实现底层的

网络编程不熟悉的  建议还是不要使用事件模型写程序
几个核几个worker,就像nginx一样。
好好研究下nginx source
我主要是从 下面的员工说的  因为事件的机制不好控制,没有顺序执行起来方便易编写,需要员工的水平比较高。

的nodejs 用了下,有好的地方 也有让人很不爽的地方。感觉不是很稳定,多线程fork出来的程序,采用net网络操作时,经常会崩掉

写一个高性能的Server还是挺困难的,像Nginx都用了很多atomic库操作,还有内嵌很多汇编

目前不需要高性能,用做游戏服务端,维护一二千人在线。
足够了
go语言看起来不错,没有广泛使用案例呀。

个人感觉,server再强悍,如果后面挂的业务逻辑卡一点,优势一下就木有了

Go底层是基于epoll的全异步模式,但上层是同步的语法,阻塞时自动切换协程

像我写的swoole这个Server,虽然性能很高,其实极端情况下可能会出错。node.js问题也是有的,这里坑很多的。什么时候把这些填平了,才比较安全  socket都是带缓存区的,假设某个fd缓冲区满了,就要丢数据了
这里缓冲区设大会有问题,设小了丢数据。
呵呵,事件通知机制在更高并发的Server里就是累赘了
所以我们有的Server是直接轮询的,不做通知机制

背景:

Mysql的sql日志如下配置,前台点链接触发SQL,后台用tail去看查询SQL日志:


找windows下的tail过程及最后找到较好win下的tail软件:

有很多的tail,有的可以终端运行,但是一直按回车时,文字不上移,有的呢,则是xp自动提供的,如:http://support.drugwebcn.com/knowledge/index.php?option=com_content&task=view&id=51&Itemid=43
这些都不怎么样,有的建议安一个cygwin ,这些都太麻烦,我找了一个别人写的界面软件,觉得不错,于是作下对Mysql的sql作下tail,所以,推荐下面这个tail软件,可以有编码选项,查找,清屏,有托盘等便捷,关键是能用回车让已经有的文字上移,鼠标选择多行,不是用alt+鼠标选择:
http://www.duote.com/soft/30978.html

DownLoad Url:
WindowsTail:
http://sourceforge.net/projects/windowstail/files/?source=navbar


上面这个软年看来做得确实不错,如下:
王*(17540***)  16:39:02
党哥,感谢你啊,前两天在网上搜windows下的tail工具,找了好多找不到好的,结果突然有个向东博客justwinit,给出了解决方案,原来是就在我们身边的党哥指明了方向。
王*(17540***)  16:45:47
真的很不错,我搜索windows下tail,党哥就出来帮助我了。
关键是要带回车的
--------------------------------------------------------------------------------------------------
Another tail :
Tail4Win : 这个免费30天,要钱。这个的终端tail做得不错,界面收钱就有点...了吧。
http://www.withdata.com/tail4win_news.html
最新版本的Tail4Win可以实现在cmd下和linux下的tail一样,按回车可以把已经tail的文字上移,也不错,界面的好像没有这个功能。
Egg:
D:\wamp\bin\apache\apache2.2.22\logs>tail -f w.xiyou.cntv.cn-access.log


---
这个也是tail,不怎么样,除开能tail多个文件外,没有回车文字上移的linux特性,感觉不怎么的:
最近因为开发php程序, 虽然有vmware和centos server, 但是还是喜欢windows 下的apache+php+mysql,  无他, 只是因为开发和测试方便, 但是windows下有个非常不方便的地方是, 没有tail去查看log, 本人又不希望为了一个tail命令去装一个庞大的cygwin.

今天在网上搜了一下, sourceforge上有个tail工具不错, 推荐给大家
1. 首先当然是tail功能了, 可以tail多个文件, 如access.log, error.log
2. 关键字高亮功能.
3. workspace管理.
4. 绿色, 免安装, 只有164k

推荐一下, 下载地址
http://sourceforge.net/projects/tailforwin32

这个个人写的tail还成,有一个问题(最后一行保存后出来来):
http://users.telenet.be/jbosman/tail.zip
    最近对 CentOS 的批评很多(作者好几次都想丢担子不干了,呵呵),如 5.3 的迟迟推出,补丁的推出缓慢等等。另一个 RHEL 再编译版本 Scientific Linux 得到了许多人的推崇,排在了 CentOS 的前面。

Scientific Linux 是由费米实验室(隶属于美国能源部)、欧洲核子研究中心以及世界各地的领先实验室和大学共同维护的。相比 CentOS,Scientific Linux 有着稳定的支持,基本上不会出现因为某个开发人员的原因导致发行版本突然消失的可能。在发行版本的推出上以及补丁的更新,Scientific Linux 比 CentOS 的响应要快的多,其标准是在 RHEL 发布补丁 48 小时内发布补丁。

另外,Scientific Linux 不是专门用于专门的 Scientific 研究的,也没有专门的 science application,之所以有着 scientific 的名字,是因为其最初只是 Fermilab 和 CERN 两个实验室使用,后来才慢慢扩大。
实践Ok:



一条批处理命令启动VMware虚拟机
所以我们就可以编辑一个bat文件去启动虚拟机了. :)
@echo off
e:
cd E:\VMware\
E:\VMware\VMware.exe -X "E:\Windows XP Professional\Windows XP Professional.vmx"
参考:虚拟机软件wmware如何实现一启动软件就自动启动某个虚拟机
http://topic.csdn.net/u/20080724/10/6d480ded-19ac-40e6-b082-ce2c9c601275.html
修改:调整了E:\VMware>VMware.exe -X "E:\Windows XP Professional\Windows XP Professional.vmx"中的"\"被打成">"的错误;
如果你已经运行出错的命令 并导致VMware.exe不可用 请用安装包修复一下;

如果仅仅这样做,虚拟机启动时还是会显示界面,如何让虚拟机在后台运行呢?只需在上述命令后添加一个参数nogui

例如: "C:\Program Files (x86)\VMware\VMware Workstation\vmrun.exe" start "D:\Ubuntu\Ubuntu.vmx" nogui

Linux下启动的方法:
在redhat enterprise 5.3安装了vmware workstation,如何用vmware 命令行启动指定虚拟机?
[root@node0 ~]# /usr/bin/vmware  -x   "/root/vmware/Windows XP Professional/Windows XP Professional.vmx" &

把vmware workstation最小化到系统托盘:
最近频繁使用vmware。
而vmware又没有提供“最小化到系统托盘”的功能。
开着一个虚拟机,任务条上就多了一个vmware的条条,很是占地方。

随便google了一下,搜索“vmware tray minimize”,就找到了一个解决方案:
先点击下面链接去下载trayconizer.zip(有两个版本For Windows 95/98/ME 和 For Windows NT/2000/XP)。
解压之后,放到硬盘的任何地方。
我就直接把trayconizer.exe放到了c:\windows目录下。
然后把vmware workstation的快捷方式的目标改为:

"c:\windows\trayconizer.exe" "C:\Program Files\VMware\VMware Workstation\vmware.exe"
即在原来的"C:\Program Files\VMware\VMware Workstation\vmware.exe" 前加上"c:\windows\trayconizer.exe" 中间用空格隔开。
注意:"c:\windows\trayconizer.exe"后面应该有一个空格。
以后,用修改过的快捷方式打开的vmware,就可以最小化到系统托盘了。

当然了,该工具也适用于其他程序。

下载地址:
http://www.whitsoftdev.com/trayconizer/
这几天由于经常远程到一个Linux主机上处理东西,然后会生成一些文件,所以想把这些东西通过邮件附件的形式给自己发回来,于是好好研究了下Linux中的mail命令,其中参考了一些网友的经验:

1. 例如最简单的一个:

mail -s text zhousir1991@gmail.com

这条命令的结果是发一封标题为text的空信给后面的邮箱,但是往往这类邮件会被当成垃圾邮件来处理,所以如果没有收到邮件,建议打开垃圾箱来查看一下。

第一种方法,你可以把当前shell当成编辑器来用,编辑完内容后Ctrl-D结束

2. 第二个例子:

echo “This is a test mail!”|mail -s text zhousir1991@gmail.com#第二种方法,使用管道命令。

mail -s test zhousir1991@gmail.com < file

第三种方法,以file的内容为邮件内容发信,这个我个人现在用的比较多,因为在终端中写东西毕竟不是很方便,所以我还是会首先选择事先写好一个文档然后再mail过去。

3. 带附件的邮件发送(这是我想重点介绍的一个东西)

如果你的系统中没有uuencode命令的话,并且你已经配好了yum仓库;(yum仓库配置可以参看我的其他文档:http://www.cnblogs.com/zhousir1991/archive/2011/03/05/1971879.html)请先安装sharutils  (yum install sharutils)

uuencode 需要两个参数,第一个是你要发送的文件,当然这个也可以用管道来做,第二个是显示的文件名

uuencode /home/zhousir/httpd.conf httpd.conf|mail -s mailtest zhousir1991@gmail.com
---------------------------
发现一个问题:
-bash: mail: command not found
呵呵,显然mailx没有安装,于是:
yum -y install mailx
然后whois命令也没有
yum -y install jwhois

tar czf - /home/zhousir/ | uuencode home.tgz |mail -s mailtest zhousir1991@gmail.com

ps: slackware下的mail好像有一个-a参数,可以直接添加附件,我没有用过。

转自:http://www.svn8.com/linux/accidence/20091016/10858.html

Linux下Mail命令收集:

“/var/spool/mail/[linux用户名]”文件中。
在linux中输入mail,就进行了收件箱,并显示二十封邮件列表。

此时命令提示符为"&"
unread 标记为未读邮件
h|headers 显示当前的邮件列表
l|list 显示当前支持的命令列表
?|help 显示多个查看邮件列表的命令参数用法
d 删除当前邮件,指针并下移。 d 1-100 删除第1到100封邮件
f|from 只显示当前邮件的简易信息。 f num 显示某一个邮件的简易信息
f|from num 指针移动到某一封邮件
z 显示刚进行收件箱时的后面二十封邮件列表
more|p|page 阅读当前指针所在的邮件内容 阅读时,按空格键就是翻页,按回车键就是下移一行
t|type|more|p|page num 阅读某一封邮件
n|next|{什么都不填} 阅读当前指针所在的下一封邮件内容
阅读时,按空格键就是翻页,按回车键就是下移一行
v|visual 当前邮件进入纯文本编辑模式
n|next|{什么都不填} num 阅读某一封邮件
top 显示当前指针所在的邮件的邮件头
file|folder 显示系统邮件所在的文件,以及邮件总数等信息
x 退出mail命令平台,并不保存之前的操作,比如删除邮件
q 退出mail命令平台,保存之前的操作,比如删除已用d删除的邮件,已阅读邮件会转存到当前用户家目录下的mbox文件中。如果在mbox中删除文件才会彻底删除。
在linux文本命令平台输入 mail -f mbox,就可以看到当前目录下的mbox中的邮件了。
cd 改变当前所在文件夹的位置
写信时,连按两次Ctrl+C键则中断工作,不送此信件。
读信时,按一次Ctrl+C,退出阅读状态。

来自:http://blog.sina.com.cn/s/blog_408184cf01014uoq.html


名称:mail
格式:mail  [-s subject]  [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
说明:
mail对于系统管理者很有用,因为管理者可以用mail写成script ,定期寄一些备忘录提醒系统的使用者。
参数:
s 邮件标题。
c 抄送人邮件地址。
b 暗送邮件地址。
范例:
将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
mail user1@email.address
mail user1@email.address user2
将mail.txt 的内容寄给 user2 同时 抄送给 user1 。如果将这一行指令设成cronjob就可以定时将备忘录寄给系统使用者。
mail -s 标题 -c user1 user2 < mail.txt
分页: 35/40 第一页 上页 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 下页 最后页 [ 显示模式: 摘要 | 列表 ]