背景:阿里云没备案会不让配置host访问的,被拦截,直接用ip访问呢?应该没啥吧。
比如我服务器ip是192.168.1.1,两个域名为user.a.com,manage.a.com都映射到了该ip上。nginx里如何配置,当我用ip访问时默认打开user.a.com;而另一个域名manage.a.com又不影响呢?
这样就可以了
nginx.conf里写:
include vhosts/*.conf;
ls /usr/local/nginx/conf/vhosts/
10.70.37.2*.conf default.conf
———————————————
10.70.37.2*.conf
server_name 10.70.37.24;//写成IP
default.conf
server_name 127.0.0.1;
来自:http://www.dewen.io/q/2760
比如我服务器ip是192.168.1.1,两个域名为user.a.com,manage.a.com都映射到了该ip上。nginx里如何配置,当我用ip访问时默认打开user.a.com;而另一个域名manage.a.com又不影响呢?
这样就可以了
nginx.conf里写:
include vhosts/*.conf;
ls /usr/local/nginx/conf/vhosts/
10.70.37.2*.conf default.conf
———————————————
10.70.37.2*.conf
server_name 10.70.37.24;//写成IP
default.conf
server_name 127.0.0.1;
来自:http://www.dewen.io/q/2760
[实践OK]Linux系统批量修改用户密码方法
Unix/LinuxC技术 jackxiang 2016-2-4 10:35
背景:批量修改多台机器里的密码,怎么办,一台机器知道后,拷贝到另外机器上的办法,采用第三种较好。
1)新建用户:useradd -m 用户名 //-m是建一个home
2)设置密码:passwd 用户名
3)一般需要修改/etc/passwd 下面的bash
4)将用户加入sudo组。
总之,一个同样的Unix/Linux的密码,经过一次后,其生成的密码shadow是不一样的,实践如下所示可证明:
但是你批量替换时,完全可以选一个就成,如:
接近博文的正题了:
多台机器要批量加时,可用secureCRT,或大公司用zookeeper结合shell实现conf前端web系统进行海量机器的密码新增:
————————————————介绍修改用户密码三种方法————————————————
第一种:
echo "123456"|passwd --stdin root
优点:方便快捷
缺点:如果你输入的指令能被别人通过history或者其他方式捕获,那么这样的方式是很不安全的,更重要的是如果密码同时含有单引号和双引号,那么则无法通过这种方法修改。
第二种:
a.首先将用户名密码一起写入一个临时文件.
cat chpass.txt
root:123456
zhaohang:123456
b.使用如下命令对用户口令进行修改:
chpasswd<chpass.txt
c.可以使用 123456 来登录系统,密码修改完毕.
优点:可以很快速方便的修改多个用户密码
缺点:明文密码写在文件里仍然显得不够安全,但是避免了第一种修改方式不能有特殊字符串密码的情况.
第三种:
a.用 openssl passwd-1 来生成用户口令(这块有一台后,其它就不用再生成了,直接:chpasswd -e < chpass.txt),连同用户名一起写入文件.
cat chpass.txt
root:$1$ri2hceVU$WIf.firUBn97JKswK9ExO0
zhaohang:$1$i/Gou7.v$Bh2K6sXmxV6/UCxJz8N7b.
b.使用如下命令对用户口令进行修改:
chpasswd -e < chpass.txt
c.可以使用 123456 来登录系统,密码修改完毕.
优点:可以很快速方便的修改多个用户密码
缺点:和上面两种相比大大增强了安全性
附加介绍:
openssl passwd -1 命令可以输出shadow里面的密码,把这个命令生成的秘串更改为你shadow里的密码,那么下次你登录系统就可以用你的生成密码的口令来登录了,使用这个命令,即使口令一样,多次执行生成的密码串也不一样。那个hash值对应的密码是完全随机的基于64位字符编码的28位长,因此要破解它是非常困难的,只要不用那些密码已经公布出来的hash值创建账号,即使这些密码文件被公布也还是比较安全的。使用旧的unix哈希可以去掉 -1 参数。
[root@WEB01~]# openssl passwd -1
Password:123456
Verifying-Password:123456
$1$ri2hceVU$WIf.firUBn97JKswK9ExO0
也可以直接使用如下命令来直接生成:
[root@WEB01 ~]# openssl passwd -1 123456
来自:http://blog.chinaunix.net/uid-561779-id-166621.html
1)新建用户:useradd -m 用户名 //-m是建一个home
2)设置密码:passwd 用户名
3)一般需要修改/etc/passwd 下面的bash
4)将用户加入sudo组。
总之,一个同样的Unix/Linux的密码,经过一次后,其生成的密码shadow是不一样的,实践如下所示可证明:
但是你批量替换时,完全可以选一个就成,如:
接近博文的正题了:
多台机器要批量加时,可用secureCRT,或大公司用zookeeper结合shell实现conf前端web系统进行海量机器的密码新增:
————————————————介绍修改用户密码三种方法————————————————
第一种:
echo "123456"|passwd --stdin root
优点:方便快捷
缺点:如果你输入的指令能被别人通过history或者其他方式捕获,那么这样的方式是很不安全的,更重要的是如果密码同时含有单引号和双引号,那么则无法通过这种方法修改。
第二种:
a.首先将用户名密码一起写入一个临时文件.
cat chpass.txt
root:123456
zhaohang:123456
b.使用如下命令对用户口令进行修改:
chpasswd<chpass.txt
c.可以使用 123456 来登录系统,密码修改完毕.
优点:可以很快速方便的修改多个用户密码
缺点:明文密码写在文件里仍然显得不够安全,但是避免了第一种修改方式不能有特殊字符串密码的情况.
第三种:
a.用 openssl passwd-1 来生成用户口令(这块有一台后,其它就不用再生成了,直接:chpasswd -e < chpass.txt),连同用户名一起写入文件.
cat chpass.txt
root:$1$ri2hceVU$WIf.firUBn97JKswK9ExO0
zhaohang:$1$i/Gou7.v$Bh2K6sXmxV6/UCxJz8N7b.
b.使用如下命令对用户口令进行修改:
chpasswd -e < chpass.txt
c.可以使用 123456 来登录系统,密码修改完毕.
优点:可以很快速方便的修改多个用户密码
缺点:和上面两种相比大大增强了安全性
附加介绍:
openssl passwd -1 命令可以输出shadow里面的密码,把这个命令生成的秘串更改为你shadow里的密码,那么下次你登录系统就可以用你的生成密码的口令来登录了,使用这个命令,即使口令一样,多次执行生成的密码串也不一样。那个hash值对应的密码是完全随机的基于64位字符编码的28位长,因此要破解它是非常困难的,只要不用那些密码已经公布出来的hash值创建账号,即使这些密码文件被公布也还是比较安全的。使用旧的unix哈希可以去掉 -1 参数。
[root@WEB01~]# openssl passwd -1
Password:123456
Verifying-Password:123456
$1$ri2hceVU$WIf.firUBn97JKswK9ExO0
也可以直接使用如下命令来直接生成:
[root@WEB01 ~]# openssl passwd -1 123456
来自:http://blog.chinaunix.net/uid-561779-id-166621.html
背景:由于数据库服务器安装在数据库机上,因此,在linux中只需安装mysql的客户端库就可以了。那么这个PHP下的mysql client要不要安装?再就是如果想在这台机器上连接mysql server,客户端要不要安一个呢,当然要,且只安mysql的client客户端。
方法一:从编译好的包里释放安装:
一)有rpm包的情况:
MySQL-client-5.0.22-0.i386.rpm //mysql -uroot 这个client的一个包 标准MySQL客户程序。你可能总是需要安装这个包。
MySQL-devel-5.0.22-0.i386.rpm //要想用c去连接这个mysql的lib库
(安装好以后,在 /usr/include/mysql/ 目录中存放有libmysqlclient的头文件mysql.h,在 /usr/lib/mysql/ 目录中存放有mysql的库文件,但只有.a结尾的(即静态库)库文件(包括libmysqlclient.a),没有.so(共享库)文件。)
键入以下命令安装:
#rpm -ivh MySQL-client-5.0.22-0.i386.rpm
#rpm -ivh MySQL-devel-5.0.22-0.i386.rpm
使用如下命令编译一个简单的测试程序(代码在本文结尾处给出):
#gcc -c -I/usr/include/mysql mysql-test.c
此命令成功生成了目标文件mysql-test.o。
继续键入以下命令。
#gcc -o --static mysql-test mysql-test.o -L/usr/lib/mysql -lmysqlclient
注意参数的顺序,gcc有时会因为某些参数顺序不对而报错,某些相关参数的具体顺序应该如何,还望高人指点。
以上命令确给出了数不清的“引用未定义符号”的错误信息,引用未定义符号的是libmysqlclient.a
带着希望折腾了许久,最后决定从源码包安装mysql客户端程序库。
卸载MySQL-client与MySQL-devel:
#rpm -e MySQL-client
#rpm -e MySQL-devel
二)yum 安装,其实是一样的,只是在网上安装,看来centos7上新的db数据库会向mariadb转的趋势啊:
[root@iZ25z0ugwgtZ logs]# yum search mysql|grep dev
mysql++-devel.x86_64 : MySQL++ developer files (headers, examples, etc.)
mariadb.x86_64 : A community developed branch of MySQL
mariadb-devel.i686 : Files for development of MariaDB/MySQL applications
mariadb-devel.x86_64 : Files for development of MariaDB/MySQL applications
方法二:从源码里通过参数只编译安装客户端:
[root@iZ25dcp92ckZ vhost]# ldconfig -v|grep mysql
/usr/lib64/mysql: 这个路径在哪儿配置的呢?在:vi /etc/ld.so.conf 自己加上想要找的动态链接库:/usr/local/inotify-tools-3.14/lib
libmysqlclient.so.18 -> libmysqlclient.so.18.0.0
从源码包安装mysql客户端程序库。
#tar -zxvf mysql-5.0.22.tar.gz (mysql-5.0.22.tar.gz位于/root目录)
#cd mysql-5.0.22
进入mysql-5.0.22目录,阅读 INSTALL-SOURCES 文件,并看到几个关键选项:
1、--without-server
只编译安装客户端程序库,不编译mysql服务器程序,这在本机只需要libmysqlclient时很有用。
Mysql高版本用了boost和cmake(MySQL 5.5版本以后,使用CMake编译工具)参数是这样和./configure对应的,参见链接,http://www.linuxeye.com/Linux/MySQL-cmake-options.html,-DWITH_SERVER=0,总之,这个cmake有些参数不支持和configure还不太一样,这个DWITH_SERVER 是臆想出来的:
2、--enable-thread-safe-client
让libmysqlclient中的例程具有线程安全性,要编写多线程的mysql客户端程序时就少不了了,这要求本地拥有多线程库。
3、--prefix 指定安装目录
启动configure脚本:
#mkdir /usr/local/mysql
#./configure --without-server --enable-thread-safe-client --prefix=/usr/local/mysql
大概6分钟后,configure脚本生成好所有的Makefile后退出。
当前目录下执行make进行编译:
#make
这个过程除了时间长一点以外没有别的,大概一个钟头后make完成编译任务。
安装:
#make install
这个过程也比较快,约两三分钟。
安装完成以后,mysql.h文件在 /usr/local/mysql/include/mysql/目录中(这里include目录中还有一个mysql子目录)。
以lib开头的库文件在/usr/local/mysql/lib/mysql/目录中(与mysql.h的情况一样,这里lib目录中还有一个mysql子目录)。
此时再来链接测试程序的目标文件:
#gcc -o mysql-test mysql-test.o -L/usr/lib/mysql -lmysqlclient
OK,一切正常,链接成功。
执行一下:
#./mysql-test
系统这时又发出错误提示:Loading libmysqlclient.so.15 Error; No Such File!
将/usr/local/mysql/lib/mysql/目录中的libmysqlclient.so.15.0.0复制到/usr/lib/目录下:
#cp /usr/local/mysql/lib/mysql/libmysqlclient.so.15.0.0 /usr/lib/libmysqlclient.so.15
#./mysql-test
屏幕打印出:mysql_init() successed.后就不动了.
约莫90秒后打印libmysqlclient的提示信息:Can not connect to mysql server(110)
这时在windows xp的msdos控制台键入:
>netstat -na
看到了系统已经打开了3306端口,即mysql server确实在运行。
最后注意到xp中启用了系统防火墙, 禁用系统防火墙后回到linux的ppty键入:
#./mysql-test
这时,黎明的曙光终于出现了,提示信息告诉我,它已经连接上了XP中的mysql server。
以上主要参考:http://blog.chinaunix.net/uid-26466663-id-3358199.html
mysql中的两个包 libmysqlclient-devel和mysql-devel 有什么区别啊,为什么安装了mysql-devel就不能安装 libmysqlclient-devel了?
MySQL服务器。除非你只是想要与运行在其他机器上MySQL服务器连接,否则你将需要它。
方法一:从编译好的包里释放安装:
一)有rpm包的情况:
MySQL-client-5.0.22-0.i386.rpm //mysql -uroot 这个client的一个包 标准MySQL客户程序。你可能总是需要安装这个包。
MySQL-devel-5.0.22-0.i386.rpm //要想用c去连接这个mysql的lib库
(安装好以后,在 /usr/include/mysql/ 目录中存放有libmysqlclient的头文件mysql.h,在 /usr/lib/mysql/ 目录中存放有mysql的库文件,但只有.a结尾的(即静态库)库文件(包括libmysqlclient.a),没有.so(共享库)文件。)
键入以下命令安装:
#rpm -ivh MySQL-client-5.0.22-0.i386.rpm
#rpm -ivh MySQL-devel-5.0.22-0.i386.rpm
使用如下命令编译一个简单的测试程序(代码在本文结尾处给出):
#gcc -c -I/usr/include/mysql mysql-test.c
此命令成功生成了目标文件mysql-test.o。
继续键入以下命令。
#gcc -o --static mysql-test mysql-test.o -L/usr/lib/mysql -lmysqlclient
注意参数的顺序,gcc有时会因为某些参数顺序不对而报错,某些相关参数的具体顺序应该如何,还望高人指点。
以上命令确给出了数不清的“引用未定义符号”的错误信息,引用未定义符号的是libmysqlclient.a
带着希望折腾了许久,最后决定从源码包安装mysql客户端程序库。
卸载MySQL-client与MySQL-devel:
#rpm -e MySQL-client
#rpm -e MySQL-devel
二)yum 安装,其实是一样的,只是在网上安装,看来centos7上新的db数据库会向mariadb转的趋势啊:
[root@iZ25z0ugwgtZ logs]# yum search mysql|grep dev
mysql++-devel.x86_64 : MySQL++ developer files (headers, examples, etc.)
mariadb.x86_64 : A community developed branch of MySQL
mariadb-devel.i686 : Files for development of MariaDB/MySQL applications
mariadb-devel.x86_64 : Files for development of MariaDB/MySQL applications
方法二:从源码里通过参数只编译安装客户端:
[root@iZ25dcp92ckZ vhost]# ldconfig -v|grep mysql
/usr/lib64/mysql: 这个路径在哪儿配置的呢?在:vi /etc/ld.so.conf 自己加上想要找的动态链接库:/usr/local/inotify-tools-3.14/lib
libmysqlclient.so.18 -> libmysqlclient.so.18.0.0
从源码包安装mysql客户端程序库。
#tar -zxvf mysql-5.0.22.tar.gz (mysql-5.0.22.tar.gz位于/root目录)
#cd mysql-5.0.22
进入mysql-5.0.22目录,阅读 INSTALL-SOURCES 文件,并看到几个关键选项:
1、--without-server
只编译安装客户端程序库,不编译mysql服务器程序,这在本机只需要libmysqlclient时很有用。
Mysql高版本用了boost和cmake(MySQL 5.5版本以后,使用CMake编译工具)参数是这样和./configure对应的,参见链接,http://www.linuxeye.com/Linux/MySQL-cmake-options.html,-DWITH_SERVER=0,总之,这个cmake有些参数不支持和configure还不太一样,这个DWITH_SERVER 是臆想出来的:
2、--enable-thread-safe-client
让libmysqlclient中的例程具有线程安全性,要编写多线程的mysql客户端程序时就少不了了,这要求本地拥有多线程库。
3、--prefix 指定安装目录
启动configure脚本:
#mkdir /usr/local/mysql
#./configure --without-server --enable-thread-safe-client --prefix=/usr/local/mysql
大概6分钟后,configure脚本生成好所有的Makefile后退出。
当前目录下执行make进行编译:
#make
这个过程除了时间长一点以外没有别的,大概一个钟头后make完成编译任务。
安装:
#make install
这个过程也比较快,约两三分钟。
安装完成以后,mysql.h文件在 /usr/local/mysql/include/mysql/目录中(这里include目录中还有一个mysql子目录)。
以lib开头的库文件在/usr/local/mysql/lib/mysql/目录中(与mysql.h的情况一样,这里lib目录中还有一个mysql子目录)。
此时再来链接测试程序的目标文件:
#gcc -o mysql-test mysql-test.o -L/usr/lib/mysql -lmysqlclient
OK,一切正常,链接成功。
执行一下:
#./mysql-test
系统这时又发出错误提示:Loading libmysqlclient.so.15 Error; No Such File!
将/usr/local/mysql/lib/mysql/目录中的libmysqlclient.so.15.0.0复制到/usr/lib/目录下:
#cp /usr/local/mysql/lib/mysql/libmysqlclient.so.15.0.0 /usr/lib/libmysqlclient.so.15
#./mysql-test
屏幕打印出:mysql_init() successed.后就不动了.
约莫90秒后打印libmysqlclient的提示信息:Can not connect to mysql server(110)
这时在windows xp的msdos控制台键入:
>netstat -na
看到了系统已经打开了3306端口,即mysql server确实在运行。
最后注意到xp中启用了系统防火墙, 禁用系统防火墙后回到linux的ppty键入:
#./mysql-test
这时,黎明的曙光终于出现了,提示信息告诉我,它已经连接上了XP中的mysql server。
以上主要参考:http://blog.chinaunix.net/uid-26466663-id-3358199.html
mysql中的两个包 libmysqlclient-devel和mysql-devel 有什么区别啊,为什么安装了mysql-devel就不能安装 libmysqlclient-devel了?
MySQL服务器。除非你只是想要与运行在其他机器上MySQL服务器连接,否则你将需要它。
svn:is not under version control and is not part of the commit, yet its child解决办法
Unix/LinuxC技术 jackxiang 2016-2-2 16:47
背景:刚解决前面的svn client版本太新问题http://jackxiang.com/post/8476/,又出现一新的问题,如下.
is not known to exist in the repository and is not part of the commit,yet its child:
在把写好的代码提交到svn上面时,遇到了一个错误如下:
svn: Commit failed (details follow):
svn: 'D:\eclipse\StatusInquiry\src\com\cnjmwl\scm\policy' is not under version control and is not part of the commit, yet its child 'D:\eclipse\StatusInquiry\src\com\cnjmwl\scm\policy\policyActivity.java' is part of the commit
仔细看错误的原文,翻译成中文大致的意思就是要提交的代码不在版本控制之下,并且不是提交的一部分,他的子文件也不是提交的一部分,我自个儿琢磨着就是要先提交父文件夹,然后再提交父文件夹的子文件,然后我先提交了父文件夹,然后提交其中的子文件,最后把问题解决了。。
PS:如果上面的方法不行的话,试试看吧要提交的文件先备份一下,然后把源文件删除了,然后再拷回来,再提交。。我这样屡试不爽,能解决问题的。。
摘自:http://blog.csdn.net/lufeng20/article/details/7641093
is not known to exist in the repository and is not part of the commit,yet its child:
在把写好的代码提交到svn上面时,遇到了一个错误如下:
svn: Commit failed (details follow):
svn: 'D:\eclipse\StatusInquiry\src\com\cnjmwl\scm\policy' is not under version control and is not part of the commit, yet its child 'D:\eclipse\StatusInquiry\src\com\cnjmwl\scm\policy\policyActivity.java' is part of the commit
仔细看错误的原文,翻译成中文大致的意思就是要提交的代码不在版本控制之下,并且不是提交的一部分,他的子文件也不是提交的一部分,我自个儿琢磨着就是要先提交父文件夹,然后再提交父文件夹的子文件,然后我先提交了父文件夹,然后提交其中的子文件,最后把问题解决了。。
PS:如果上面的方法不行的话,试试看吧要提交的文件先备份一下,然后把源文件删除了,然后再拷回来,再提交。。我这样屡试不爽,能解决问题的。。
摘自:http://blog.csdn.net/lufeng20/article/details/7641093
背景:一外包说是svn没权限,一截图根据里面的提示,感觉是svn client版本太新。
因为SVN客户端版本为1.8以上,太新,跟服务器端不匹配。请卸载,安装1.7版,并重启。
请在新的目录中重新checkout代码,原workspace目录请废弃,不要在其中再执行SVN操作。
来自:http://blog.sina.com.cn/s/blog_4c81e6230101e18a.html
因为SVN客户端版本为1.8以上,太新,跟服务器端不匹配。请卸载,安装1.7版,并重启。
请在新的目录中重新checkout代码,原workspace目录请废弃,不要在其中再执行SVN操作。
来自:http://blog.sina.com.cn/s/blog_4c81e6230101e18a.html
Nginx代理超时参数设置,对Tomcat的一次代理Nginx报504 Gateway Time-out排查出是tomcat出现500内部错误的备案。
Unix/LinuxC技术 jackxiang 2016-1-29 15:14
背景:Nginx代理到tomcat时出现504 Gateway Time-out。
如果是设置IP直接proxy则设置在nginx的http{ 里面即可,不用设置在server里。
摘自:http://www.ha97.com/5194.html
超时有问题不光是超时,更有可能是被反向代理的出现了500的内部服务器错误:
如果是设置IP直接proxy则设置在nginx的http{ 里面即可,不用设置在server里。
摘自:http://www.ha97.com/5194.html
超时有问题不光是超时,更有可能是被反向代理的出现了500的内部服务器错误:
背景:对于java和tomcat结合的程序,其实还是一个服务器,可能会有各种线程啥的如上传分片文件时会合并,这种对于PHP来讲是个问题,但是对于java来讲是能实现的边上传边合并的,也是非常好的,但是呢,这种办法如果写得不够好,很可能出现一些问题,假死、僵死,还不如用PHP写个上传,后台用那个守护进程进行合并来得更稳定。
阅读全文
阅读全文
[网络流量]Idle 是干嘛用的怎么占CPU98.5%id啥意思?用sar命令分析CPU的瓶颈,以及sar -n DEV查看网卡网络流量。
Unix/LinuxC技术 jackxiang 2016-1-29 10:51
背景:在一个Java分片上传时发现其CPU idle为98.5,以为值越高越危险,于是查了下,表明"System Idle Process" 中的 idle 是“空闲”得很。
sar -n DEV查看网卡网络流量:
cpu ide 是 cpu 的一个命令,cpu 见到这个命令,就停止工作一个指令。变相的可以降低功耗和休息一下。
对于系统来说,如果调度程序没有可以让 cpu 执行的任务,那么就自动发送 ide 命令让 cpu 休眠一个指令。
估计你的程度运行出现了冲突,导致大部分时间都在等待。
在CPU空闲的时候,发出一个IDLE命令,使CPU挂起(暂时停止工作),可有效的降低CPU内核的温度,在操作系统服务里面,都没有禁止它的选项;默认它是占用除了当前应用程序所分配的处理器(CPU)百分比之外的所有占用率;一旦应用程序发出请求,处理器会立刻响应的。在这个进程里出现的CPU占用数值并不是真正的占用而是体现的CPU的空闲率,也就说这个数值越大CPU的空闲率就越高,反之就是CPU的占用率越高。
当“System Idle Process”进程占用资源为2%时,说明机器目前只有2%的资源是空闲的,即机器可能感染了病毒或被其他程序占用了98%的资源。换句话说,“System Idle Process”进程占用资源占用资源越大则系统可用资源越多,其字面意思是“系统空闲进程”。
用sar进行CPU利用率的分析
[root@wh-appserver413 its]# sar -u 2 10
Linux 2.6.18-92.el5 (wh-appserver413) 01/29/2016
10:53:17 AM CPU %user %nice %system %iowait %steal %idle
10:53:19 AM all 0.06 0.00 1.00 0.00 0.00 98.94
10:53:21 AM all 0.56 0.00 0.56 0.25 0.00 98.62
10:53:23 AM all 0.00 0.00 0.06 0.62 0.00 99.31
10:53:25 AM all 0.06 0.00 0.25 2.87 0.00 96.81
我的个人博客:
Linux 4.4.0-1.el7.elrepo.x86_64 (iZ25dcp92ckZ) 2016年01月29日 _x86_64_ (1 CPU)
10时54分45秒 CPU %user %nice %system %iowait %steal %idle
10时54分47秒 all 0.00 0.00 0.00 0.00 0.00 100.00
10时54分49秒 all 0.00 0.00 0.00 0.50 0.50 99.00
10时54分51秒 all 0.50 0.00 0.00 0.00 0.00 99.50
平均时间: all 0.17 0.00 0.00 0.17 0.17 99.50
%idle:CPU空闲时间百分比。
在所有的显示中,我们应主要注意%iowait和%idle,%iowait的值过高,表示硬盘存在I/O瓶颈,%idle值高,表示CPU较空闲,如果%idle值高但系统响应慢时,有可能是CPU等待分配内存,此时应加大内存容量。%idle值如果持续低于10,那么系统的CPU处理能力相对较低,表明系统中最需要解决的资源是CPU。
参考:http://blog.itpub.net/8554499/viewspace-580300/
sar -n DEV查看网卡网络流量:
cpu ide 是 cpu 的一个命令,cpu 见到这个命令,就停止工作一个指令。变相的可以降低功耗和休息一下。
对于系统来说,如果调度程序没有可以让 cpu 执行的任务,那么就自动发送 ide 命令让 cpu 休眠一个指令。
估计你的程度运行出现了冲突,导致大部分时间都在等待。
在CPU空闲的时候,发出一个IDLE命令,使CPU挂起(暂时停止工作),可有效的降低CPU内核的温度,在操作系统服务里面,都没有禁止它的选项;默认它是占用除了当前应用程序所分配的处理器(CPU)百分比之外的所有占用率;一旦应用程序发出请求,处理器会立刻响应的。在这个进程里出现的CPU占用数值并不是真正的占用而是体现的CPU的空闲率,也就说这个数值越大CPU的空闲率就越高,反之就是CPU的占用率越高。
当“System Idle Process”进程占用资源为2%时,说明机器目前只有2%的资源是空闲的,即机器可能感染了病毒或被其他程序占用了98%的资源。换句话说,“System Idle Process”进程占用资源占用资源越大则系统可用资源越多,其字面意思是“系统空闲进程”。
用sar进行CPU利用率的分析
[root@wh-appserver413 its]# sar -u 2 10
Linux 2.6.18-92.el5 (wh-appserver413) 01/29/2016
10:53:17 AM CPU %user %nice %system %iowait %steal %idle
10:53:19 AM all 0.06 0.00 1.00 0.00 0.00 98.94
10:53:21 AM all 0.56 0.00 0.56 0.25 0.00 98.62
10:53:23 AM all 0.00 0.00 0.06 0.62 0.00 99.31
10:53:25 AM all 0.06 0.00 0.25 2.87 0.00 96.81
我的个人博客:
Linux 4.4.0-1.el7.elrepo.x86_64 (iZ25dcp92ckZ) 2016年01月29日 _x86_64_ (1 CPU)
10时54分45秒 CPU %user %nice %system %iowait %steal %idle
10时54分47秒 all 0.00 0.00 0.00 0.00 0.00 100.00
10时54分49秒 all 0.00 0.00 0.00 0.50 0.50 99.00
10时54分51秒 all 0.50 0.00 0.00 0.00 0.00 99.50
平均时间: all 0.17 0.00 0.00 0.17 0.17 99.50
%idle:CPU空闲时间百分比。
在所有的显示中,我们应主要注意%iowait和%idle,%iowait的值过高,表示硬盘存在I/O瓶颈,%idle值高,表示CPU较空闲,如果%idle值高但系统响应慢时,有可能是CPU等待分配内存,此时应加大内存容量。%idle值如果持续低于10,那么系统的CPU处理能力相对较低,表明系统中最需要解决的资源是CPU。
参考:http://blog.itpub.net/8554499/viewspace-580300/
背景:作为swoole顾问,当然需要对新版本发布作下相关的描述,一直想rango推rpc,此次暂搁置了,底层实现对RPC性能提升没有多大意义,swoole应该专注php的弱点,而不是把所有的东西都封装到底层,成为大杂会。觉得能用PHP实现的不再实现,定位上只是对PHP功能的增强。总之,1.8.0 是一个里程碑的版本。
最好要在PHP版本V5.4以上运行,对各种DB和缓存及服务器客户端的异步支持以高效利用IO:
增加原生异步 MySQL 客户端
增加原生异步 Redis 客户端,基于 Redis 官方提供的 hiredis 库
增加原生异步 Http 客户端
增加原生异步 WebSocket 客户端支持
——————————————————————————————————————————
....各种优化及bug修改相关特性融入内核....
重构底层 swClient,异步 TCP 客户端实现放到 swoole 内核中
增加 swoole_client->reuse 属性,SWOOLE_KEEP 长连接模式下标识是否为复用的连接
修改Bug:重构定时器,修复after、tick定时器偶然出现的core dump的问题
新加特性:异步Redis客户端
预告一下:1.8.1 版本,即将增加 命名空间的类别名
计划搁置:RPC暂时没有开发计划,因为这个东西PHP代码就能实现,没必要底层去支持。
——————————————————————————————————————————
Swoole-1.8.0版本增加了对异步Redis客户端的支持,基于redis官方提供的hiredis库实现。Swoole提供了__call魔术方法,来映射绝大部分Redis指令。
编译安装hiredis
使用Redis客户端,需要安装hiredis库。下载hiredis源码后,执行
make -j
sudo make install
sudo ldconfig
hiredis下载地址:https://github.com/redis/hiredis/releases
启用异步Redis客户端
编译swoole是,在configure指令中加入--enable-async-redis
./configure --enable-async-redis
make clean
make -j
sudo make install
来自:http://wiki.swoole.com/wiki/page/521.html
更多:http://www.oschina.net/news/70266/swoole-1-8-0
最好要在PHP版本V5.4以上运行,对各种DB和缓存及服务器客户端的异步支持以高效利用IO:
增加原生异步 MySQL 客户端
增加原生异步 Redis 客户端,基于 Redis 官方提供的 hiredis 库
增加原生异步 Http 客户端
增加原生异步 WebSocket 客户端支持
——————————————————————————————————————————
....各种优化及bug修改相关特性融入内核....
重构底层 swClient,异步 TCP 客户端实现放到 swoole 内核中
增加 swoole_client->reuse 属性,SWOOLE_KEEP 长连接模式下标识是否为复用的连接
修改Bug:重构定时器,修复after、tick定时器偶然出现的core dump的问题
新加特性:异步Redis客户端
预告一下:1.8.1 版本,即将增加 命名空间的类别名
计划搁置:RPC暂时没有开发计划,因为这个东西PHP代码就能实现,没必要底层去支持。
——————————————————————————————————————————
Swoole-1.8.0版本增加了对异步Redis客户端的支持,基于redis官方提供的hiredis库实现。Swoole提供了__call魔术方法,来映射绝大部分Redis指令。
编译安装hiredis
使用Redis客户端,需要安装hiredis库。下载hiredis源码后,执行
make -j
sudo make install
sudo ldconfig
hiredis下载地址:https://github.com/redis/hiredis/releases
启用异步Redis客户端
编译swoole是,在configure指令中加入--enable-async-redis
./configure --enable-async-redis
make clean
make -j
sudo make install
来自:http://wiki.swoole.com/wiki/page/521.html
更多:http://www.oschina.net/news/70266/swoole-1-8-0
[实践OK]LInux下的Cron Job定期删除其Log(日志)文件 - kevin_song
Unix/LinuxC技术 jackxiang 2016-1-27 11:46
背景:阿里上买了一小vps,空间本来就小,居然发现一个大文件,442M /var/log/cron,于是想把它干掉,以减少占用的磁盘空间。
我的vps是一个文件:
echo "" > /var/log/cron
du -sh /var/log/cron
而有的那个机器是一个目录,目录怎么办,一样删除,如下:
最近刚好有一个小任务 - 由于产品产生的Log很多,而且增长很快,所以需要用脚本(Bash scripts)删除过期的Log文件 。
使用Linux下的Cron Job可以很好的解决这个问题。
什么是Cron Job?
建立Cron Job需要用到命令crontab,维基百科定义: crontab 命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令 。
查阅了一些资料(发现技术查询还是要用Google)参考后,期间也遇到很多问题,通过摸索和学习,实现步骤如下:
一. 写一个Bash shell script,作用: 检索日志文件夹下的所有log文件,查询每个文件的日期,如果日期过期,则删除这个log文件
二. 新建一个Cron Job,周期性的执行上面的脚本
命令:
注意:
1. 这里我用的是 sudo crontab -e ,不是crontab -e,这样做是使用root的crontab,可以使用sudo,获取root某些权限。
2. Cron Job的格式如下:
具体可参见http://www.cyberciti.biz/faq/how-do-i-add-jobs-to-cron-under-linux-or-unix-oses/,Cron Job的用法讲解很详细。
3. 如何通过日志查看Cron Job的执行情况?
" >> /home/user/cron_job.log 2>&1 "的作用是可以方便的将Cron Job执行情况的日志记录到自己指定的Log文件中,方便查看Job执行情况。另外还可通过下面这个命令,查看Job执行的一些其他信息,感觉主要还是看自己指定的日志文件,如果执行出错,如Permisson Denied错误,在里面记录的很清楚。
三. 小结
经过以上的步骤,就可以很轻松的在Linux中建立起一个Cron Job,用于周期性的做某些事情,如删Log等。
四. 赔偿是参考资料和摘自:
原文 http://www.cnblogs.com/KevinSong/p/3816981.html
我的vps是一个文件:
echo "" > /var/log/cron
du -sh /var/log/cron
而有的那个机器是一个目录,目录怎么办,一样删除,如下:
最近刚好有一个小任务 - 由于产品产生的Log很多,而且增长很快,所以需要用脚本(Bash scripts)删除过期的Log文件 。
使用Linux下的Cron Job可以很好的解决这个问题。
什么是Cron Job?
建立Cron Job需要用到命令crontab,维基百科定义: crontab 命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令 。
查阅了一些资料(发现技术查询还是要用Google)参考后,期间也遇到很多问题,通过摸索和学习,实现步骤如下:
一. 写一个Bash shell script,作用: 检索日志文件夹下的所有log文件,查询每个文件的日期,如果日期过期,则删除这个log文件
二. 新建一个Cron Job,周期性的执行上面的脚本
命令:
注意:
1. 这里我用的是 sudo crontab -e ,不是crontab -e,这样做是使用root的crontab,可以使用sudo,获取root某些权限。
2. Cron Job的格式如下:
具体可参见http://www.cyberciti.biz/faq/how-do-i-add-jobs-to-cron-under-linux-or-unix-oses/,Cron Job的用法讲解很详细。
3. 如何通过日志查看Cron Job的执行情况?
" >> /home/user/cron_job.log 2>&1 "的作用是可以方便的将Cron Job执行情况的日志记录到自己指定的Log文件中,方便查看Job执行情况。另外还可通过下面这个命令,查看Job执行的一些其他信息,感觉主要还是看自己指定的日志文件,如果执行出错,如Permisson Denied错误,在里面记录的很清楚。
三. 小结
经过以上的步骤,就可以很轻松的在Linux中建立起一个Cron Job,用于周期性的做某些事情,如删Log等。
四. 赔偿是参考资料和摘自:
原文 http://www.cnblogs.com/KevinSong/p/3816981.html
[实践OK]整合freeBSD下nginx+php+mysql安装方案(ports安装)
Unix/LinuxC技术 jackxiang 2016-1-27 11:19
安装Nginx:
wget --no-check-certificate http://ftp.exim.llorien.org/pcre/pcre-8.39.tar.bz2
wget --no-check-certificate http://nginx.org/download/nginx-1.11.6.tar.gz
tar xf pcre-8.39.tar.bz2
tar xf nginx-1.11.6.tar.gz
cd nginx-1.11.6/
vi auto/lib/openssl/conf
# 将下面的内容修改
CORE_INCS="$CORE_INCS $OPENSSL/.openssl/include"
CORE_DEPS="$CORE_DEPS $OPENSSL/.openssl/include/openssl/ssl.h"
CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libssl.a"
CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libcrypto.a"
CORE_LIBS="$CORE_LIBS $NGX_LIBDL"
# 为
CORE_INCS="$CORE_INCS $OPENSSL/include"
CORE_DEPS="$CORE_DEPS $OPENSSL/ssl.h"
CORE_LIBS="$CORE_LIBS /usr/local/lib/libssl.a"
CORE_LIBS="$CORE_LIBS /usr/local/lib/libcrypto.a"
CORE_LIBS="$CORE_LIBS $NGX_LIBDL"
pkg install google-perftools
./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_gzip_static_module --with-http_v2_module --with-http_realip_module --with-google_perftools_module --with-http_stub_status_module --with-http_sub_module --with-http_flv_module --with-http_ssl_module --with-openssl=/usr/local/include/openssl --with-pcre=../pcre-8.39 --with-pcre-jit
gmake -j `sysctl hw.ncpu | wc -w`
gmake install -j `sysctl hw.ncpu | wc -w`
=========================From:https://my.oschina.net/ericliu77/blog/801539=================================
php5.6.17是最后一个php5版本,后来就到php7了。
FreeBSD 10系统编译安装Nginx, PHP, MariaDB环境
可惜的是 FreeBSD 10 用 Clang 替代 gcc 为默认编译器,这让用惯了 gcc 的同学们很不爽:
http://www.php1.cn/article/62718.html
整合freeBSD下nginx+php+mysql安装方案(ports安装):
http://blog.csdn.net/shaobingj126/article/details/5620702
freebsd+nginx+php+mysql+zend+phpmyadmin+系统优化+防止ddos +傻瓜式ports安装法:
http://blog.163.com/023_dns/blog/static/11872736620091029306126/
http://blog.163.com/dyc_888@126/blog/static/100443351201021910057781/
FreeBSD下NGINX 1.8+PHP5.6 +PERL 5.20 +Mysql 5.6+FTP 环境搭建与优化:
http://www.douban.com/note/524153021/
在FreeBSD上配置Apache+SSL:
http://wenku.baidu.com/link?url=Wp51oiSGtk7yQF2x_fqI7g9vDWylT218Rs2q2rRWs-WJJwSbyMepcmclmuKCu9QZ4UVkiXCAkemZfj4CIQNT7OU9L3uvEuQgeNngeqfJ78e
This post will describe how to install and configure Apache, MySQL, PHP and phpMyAdmin on FreeBSD for basic local web development:
https://www.iceflatline.com/2011/11/how-to-install-apache-mysql-php-and-phpmyadmin-on-freebsd/
FreeBSD下Nginx配置ssl-自建CA给网站签发SSL证书 [原创]:
http://www.92csz.com/42/494.html
FreeBSD下防火墙设置:
http://blog.163.com/caizhongyi@126/blog/static/3391683920102594249139/
X3.2针对PHP7的兼容版本-测试ing:
https://github.com/branchzero/discuz-x32-php7/releases
FreeBSD+Rsync文件同步 :
http://blog.chinaunix.net/uid-20496698-id-1664047.html
http://blog.chinaunix.net/uid-20496698-id-1664047.html
How to Install Official PHP 7 release on FreeBSD 10.2:
http://rasyid.net/2015/12/05/install-official-php-7-release-on-freebsd-10-2/
http://rasyid.net/2015/01/23/how-to-install-phpng-aka-php7-on-freebsd-10/
内容管理框架 ThinkCMFX 2.0.0 发布,支持 PHP7:
http://www.oschina.net/news/68813/thinkcmfx-2-0-0
http://demo.thinkcmf.com/
wget --no-check-certificate http://ftp.exim.llorien.org/pcre/pcre-8.39.tar.bz2
wget --no-check-certificate http://nginx.org/download/nginx-1.11.6.tar.gz
tar xf pcre-8.39.tar.bz2
tar xf nginx-1.11.6.tar.gz
cd nginx-1.11.6/
vi auto/lib/openssl/conf
# 将下面的内容修改
CORE_INCS="$CORE_INCS $OPENSSL/.openssl/include"
CORE_DEPS="$CORE_DEPS $OPENSSL/.openssl/include/openssl/ssl.h"
CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libssl.a"
CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libcrypto.a"
CORE_LIBS="$CORE_LIBS $NGX_LIBDL"
# 为
CORE_INCS="$CORE_INCS $OPENSSL/include"
CORE_DEPS="$CORE_DEPS $OPENSSL/ssl.h"
CORE_LIBS="$CORE_LIBS /usr/local/lib/libssl.a"
CORE_LIBS="$CORE_LIBS /usr/local/lib/libcrypto.a"
CORE_LIBS="$CORE_LIBS $NGX_LIBDL"
pkg install google-perftools
./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_gzip_static_module --with-http_v2_module --with-http_realip_module --with-google_perftools_module --with-http_stub_status_module --with-http_sub_module --with-http_flv_module --with-http_ssl_module --with-openssl=/usr/local/include/openssl --with-pcre=../pcre-8.39 --with-pcre-jit
gmake -j `sysctl hw.ncpu | wc -w`
gmake install -j `sysctl hw.ncpu | wc -w`
=========================From:https://my.oschina.net/ericliu77/blog/801539=================================
php5.6.17是最后一个php5版本,后来就到php7了。
FreeBSD 10系统编译安装Nginx, PHP, MariaDB环境
可惜的是 FreeBSD 10 用 Clang 替代 gcc 为默认编译器,这让用惯了 gcc 的同学们很不爽:
http://www.php1.cn/article/62718.html
整合freeBSD下nginx+php+mysql安装方案(ports安装):
http://blog.csdn.net/shaobingj126/article/details/5620702
freebsd+nginx+php+mysql+zend+phpmyadmin+系统优化+防止ddos +傻瓜式ports安装法:
http://blog.163.com/023_dns/blog/static/11872736620091029306126/
http://blog.163.com/dyc_888@126/blog/static/100443351201021910057781/
FreeBSD下NGINX 1.8+PHP5.6 +PERL 5.20 +Mysql 5.6+FTP 环境搭建与优化:
http://www.douban.com/note/524153021/
在FreeBSD上配置Apache+SSL:
http://wenku.baidu.com/link?url=Wp51oiSGtk7yQF2x_fqI7g9vDWylT218Rs2q2rRWs-WJJwSbyMepcmclmuKCu9QZ4UVkiXCAkemZfj4CIQNT7OU9L3uvEuQgeNngeqfJ78e
This post will describe how to install and configure Apache, MySQL, PHP and phpMyAdmin on FreeBSD for basic local web development:
https://www.iceflatline.com/2011/11/how-to-install-apache-mysql-php-and-phpmyadmin-on-freebsd/
FreeBSD下Nginx配置ssl-自建CA给网站签发SSL证书 [原创]:
http://www.92csz.com/42/494.html
FreeBSD下防火墙设置:
http://blog.163.com/caizhongyi@126/blog/static/3391683920102594249139/
X3.2针对PHP7的兼容版本-测试ing:
https://github.com/branchzero/discuz-x32-php7/releases
FreeBSD+Rsync文件同步 :
http://blog.chinaunix.net/uid-20496698-id-1664047.html
http://blog.chinaunix.net/uid-20496698-id-1664047.html
How to Install Official PHP 7 release on FreeBSD 10.2:
http://rasyid.net/2015/12/05/install-official-php-7-release-on-freebsd-10-2/
http://rasyid.net/2015/01/23/how-to-install-phpng-aka-php7-on-freebsd-10/
内容管理框架 ThinkCMFX 2.0.0 发布,支持 PHP7:
http://www.oschina.net/news/68813/thinkcmfx-2-0-0
http://demo.thinkcmf.com/
背景:一个队列client的服务器上,有一天运维网络调整后,发现其访问队列状态出现下面的提示:
根本原因是队列一直在跑,网络调整时出现有些请求因调整没有及时返回,网络可能路很差了,一堆的timewait导致client机上的fd耗尽引发上面的问题,
可以用netstat看下TIMEWAIT情况,发现一大堆的TIMEWAIT,如下图:阅读全文
根本原因是队列一直在跑,网络调整时出现有些请求因调整没有及时返回,网络可能路很差了,一堆的timewait导致client机上的fd耗尽引发上面的问题,
可以用netstat看下TIMEWAIT情况,发现一大堆的TIMEWAIT,如下图:阅读全文
[实践OK]Centos/centos是7.0,而内核是3.10.0,CentOS 7 升级内核版本至 4.20,而centos7.1.1内核是4.1.1,直接升级内核到4.1.1的办法,CentOS 7.4默认内核是:3.10.0,升级到内核是升级到4.12,我的是4.15.9,再降级到4.12.4-1。
Unix/LinuxC技术 jackxiang 2016-1-24 12:23
核心操作:
如何从grub提示符返回grub菜单?执行normal命令使我回到grub菜单。
ubuntu 直接在开启时,(不要和我说vi,进不了系统)修改grub修改后怎么保存?此时不能保存,只能ctrl+x或F10运行,无误引导启动能进入系统后,再用软件编辑修改相关配置文件,保存。
grub相关命令:https://wenku.baidu.com/view/452dbe11f18583d04964591f.html
背景:阿里去的Centos是到7.0,而内核是3.10.0,而centos7.1.1内核是4.1.1,Linus说是新的内核性能上应该更强一些,实践证明升级后的感觉的确要强一些,新内核真不错。
最近,那个工控机出现升级后,黑屏,乃至进入不了系统,其Grub位置还不是在/etc/grub2.cfg,而是在 /boot/efi/EFI/centos/grub.cfg,怎么办
1)改Bios:BIos里设置为:UEFI CentOS7那个。
2)修改:/boot/efi/EFI/centos/grub.cfg在100行下面,也就是linuxefi /vmlinuz-4.16.1-1.el7.elrepo.x86_64 root=/dev/mapper/centos-root ro crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet LANG=en_US.UTF-8 下面加一行,并将成功的那个img给拷贝过去(我用的nc),注意权限:chmod 600 /boot/initramfs-4.16.1-1.el7.elrepo.x86_64.img chown root:root /boot/initramfs-4.16.1-1.el7.elrepo.x86_64.img:
initrdefi /initramfs-4.16.1-1.el7.elrepo.x86_64.img
步骤:
CentOS 7.4默认内核是:3.10.0,升级到内核是升级到4.12,我的是4.15.9,步骤如下,下面这个是在我的家里的小机器安装的,不是阿里云:
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available #主要看有无 kernel-ml-headers编译网卡之用到。
yum --enablerepo=elrepo-kernel install kernel-ml-devel kernel-ml kernel-ml-headers -y
Installing:
kernel-ml x86_64 5.17.0-1.el7.elrepo elrepo-kernel 56 M
kernel-ml-devel x86_64 5.17.0-1.el7.elrepo elrepo-kernel 14 M
kernel-ml-headers x86_64 5.17.0-1.el7.elrepo elrepo-kernel 1.6 M
https://jackxiang.com/post/11261/
yum --enablerepo=elrepo-kernel install kernel-ml-devel kernel-ml
cat /etc/grub2.cfg |grep menuentry
if [ x"${feature_menuentry_id}" = xy ]; then
menuentry_id_option="--id"
menuentry_id_option=""
export menuentry_id_option
menuentry 'CentOS Linux (4.20.3-1.el7.elrepo.x86_64) 7 (Core)' --class centos --class gnu-linux
cat /etc/grub2.cfg |grep menuentry
cat /boot/efi/EFI/centos/grub.cfg |grep menuentry
grub2-set-default 'CentOS Linux (4.16.1-1.el7.elrepo.x86_64) 7 (Core)'
grub2-set-default 'CentOS Linux (4.16.9-1.el7.elrepo.x86_64) 7 (Core)'
grub2-set-default 'CentOS Linux (4.19.0-1.el7.elrepo.x86_64) 7 (Core)'
grub2-set-default 'CentOS Linux (5.7.10-1.el7.elrepo.x86_64) 7 (Core)'
if [ x"${feature_menuentry_id}" = xy ]; then
menuentry_id_option="--id"
menuentry_id_option=""
export menuentry_id_option
menuentry 'CentOS Linux (4.15.9-1.el7.elrepo.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-693.el7.x86_64-advanced-0f2e2aec-2180-46ea-bb6a-9c39d7819d60' {
设置最新版本内核为默认启动:
此时,查看默认启动的系统版本grub2-editenv list:
[root@localhost tmp]# grub2-set-default 'CentOS Linux (4.15.9-1.el7.elrepo.x86_64) 7 (Core)'
[root@localhost tmp]# grub2-editenv list
saved_entry=CentOS Linux (4.15.9-1.el7.elrepo.x86_64) 7 (Core)
grub2-editenv list
saved_entry=CentOS Linux (4.20.3-1.el7.elrepo.x86_64) 7 (Core)
[实践OK]Centos7修改grub启动菜单等待时间:
https://jackxiang.com/post/10238/
reboot,重启之后再次查看 uname -a
uname -a
Linux localhost.localdomain 4.15.9-1.el7.elrepo.x86_64 #1 SMP Sun Mar 11 16:19:17 EDT 2018 x86_64 x86_64 x86_64 GNU/Linux
关于启动时加载哪个内核的更多设置参考:http://blog.csdn.net/wuhualong1314/article/details/79542904
升级指定旧版本的回退并指定版本的方法:
http://elrepo.org/linux/kernel/el7/x86_64/RPMS/
将rpm包下载上传到服务器上,使用下面的命令安装即可@http://mirror.rc.usf.edu/compute_lock/elrepo/kernel/el7/x86_64/RPMS/:
# yum -y install kernel-ml-devel-4.12.4-1.el7.elrepo.x86_64.rpm
# yum -y install kernel-ml-4.12.4-1.el7.elrepo.x86_64.rpm
yum localinstall kernel-ml-4.12.4-1.el7.elrepo.x86_64.rpm
yum localinstall kernel-ml-devel-4.12.4-1.el7.elrepo.x86_64.rpm
cat /boot/grub2/grub.cfg |grep menuentry
grub2-set-default 'CentOS Linux (4.12.4-1.el7.elrepo.x86_64) 7 (Core)'
Linux localhost.localdomain 4.12.4-1.el7.elrepo.x86_64 #1 SMP Thu Jul 27 20:03:28 EDT 2017 x86_64 x86_64 x86_64 GNU/Linux
删除没有用的内核:来自:https://blog.51cto.com/u_15079076/4296146,两点:一是开机时误按键盘出现问题是新的内核无法联网。(我估计是新内核与硬件网卡不兼容,不如旧的,于是得删除新的内核和太旧的内核 ,只留下一个就可以了。)
yum remove $(rpm -qa|grep kernel|grep -v $(uname -r))
==============================================================================================================================
Package 架构 版本 源 大小
==============================================================================================================================
正在删除:
kernel x86_64 3.10.0-693.21.1.el7 @updates 60 M
kernel x86_64 3.10.0-862.2.3.el7 @updates 62 M
kernel x86_64 3.10.0-862.3.2.el7 @updates 62 M
kernel x86_64 3.10.0-862.6.3.el7 @updates 62 M
kernel-ml x86_64 4.16.7-1.el7.elrepo @elrepo-kernel 199 M
kernel-ml x86_64 4.16.9-1.el7.elrepo @elrepo-kernel 200 M
kernel-ml x86_64 6.6.11-1.el7.elrepo @elrepo-kernel 345 M
kernel-ml-devel x86_64 4.16.7-1.el7.elrepo @elrepo-kernel 45 M
kernel-ml-devel x86_64 4.16.9-1.el7.elrepo @elrepo-kernel 45 M
kernel-ml-devel x86_64 6.6.11-1.el7.elrepo @elrepo-kernel 62 M
事务概要
==============================================================================================================================
移除 10 软件包
这个是用阿里云论坛里手工做好的rpm包进行升级:
https://bbs.aliyun.com/read/249016.html?spm=5176.bbsr250035.0.0.ATHIBV
用二进制包升级的下载并成功升级的地址:http://down.7qy.com/Hot-kerne/rpm/hot-centos-kernel-4.x-up-1.2.0.bin
======================================================================
======================================================================
* 热点 CentOS 6/7 内核升级程序 Ver.1.2.0 by blog.7QY.Com *
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*
* 安装完成后需要重新启动系统才能使用新内核 *
* 按Ctrl+C键退出本安装程序,然后输入shutdown -r now 或 reboot 重启系统 *
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*
* Tips: Select < 1 > to 升级CENTOS 6.X内核 *
* Tips: Select < 2 > to 升级CENTOS 7.X内核 *
=========================================================================
Please input ( 1 or 2 ) to 热点 CentOs 6/7 内核升级程序
Select: (1) 升级CENTOS 6.X内核 | (2) 升级CENTOS 7.X内核
(1/2): 2
开始升级CENTOS 7.X内核...
准备中... ################################# [100%]
......
警告:RPM 数据库已被非 yum 程序修改。
正在安装 : kernel-ml-4.4.0-1.el7.elrepo.x86_64 1/2
正在安装 : kernel-ml-devel-4.4.0-1.el7.elrepo.x86_64 2/2
验证中 : kernel-ml-devel-4.4.0-1.el7.elrepo.x86_64 1/2
验证中 : kernel-ml-4.4.0-1.el7.elrepo.x86_64 2/2
已安装:
kernel-ml.x86_64 0:4.4.0-1.el7.elrepo kernel-ml-devel.x86_64 0:4.4.0-1.el7.elrepo
完毕!
会立即重新启动(有可能不是,是挂载新内核,因为后面发现内存还剩下37M,分页的那个进程占用CPU高达95%,后来把PHP-fpm重新调小一点重新启动一下php-fpm就好了,但一会儿CPU又上来了:http://jackxiang.com/post/8438/。),后一会儿就连接上了,发现内核成功升级,数据也正常(我没有挂载,就是阿里云默认的20G),新内核是相当的高效,通过ssh就能感觉得到。
[root@iZ25dcp92ckZ ~]# uname -rasp
Linux iZ25dcp92ckZ 4.4.0-1.el7.elrepo.x86_64 #1 SMP Sun Jan 10 21:17:16 EST 2016 x86_64 x86_64 x86_64 GNU/Linux
如何从grub提示符返回grub菜单?执行normal命令使我回到grub菜单。
ubuntu 直接在开启时,(不要和我说vi,进不了系统)修改grub修改后怎么保存?此时不能保存,只能ctrl+x或F10运行,无误引导启动能进入系统后,再用软件编辑修改相关配置文件,保存。
grub相关命令:https://wenku.baidu.com/view/452dbe11f18583d04964591f.html
背景:阿里去的Centos是到7.0,而内核是3.10.0,而centos7.1.1内核是4.1.1,Linus说是新的内核性能上应该更强一些,实践证明升级后的感觉的确要强一些,新内核真不错。
最近,那个工控机出现升级后,黑屏,乃至进入不了系统,其Grub位置还不是在/etc/grub2.cfg,而是在 /boot/efi/EFI/centos/grub.cfg,怎么办
1)改Bios:BIos里设置为:UEFI CentOS7那个。
2)修改:/boot/efi/EFI/centos/grub.cfg在100行下面,也就是linuxefi /vmlinuz-4.16.1-1.el7.elrepo.x86_64 root=/dev/mapper/centos-root ro crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet LANG=en_US.UTF-8 下面加一行,并将成功的那个img给拷贝过去(我用的nc),注意权限:chmod 600 /boot/initramfs-4.16.1-1.el7.elrepo.x86_64.img chown root:root /boot/initramfs-4.16.1-1.el7.elrepo.x86_64.img:
initrdefi /initramfs-4.16.1-1.el7.elrepo.x86_64.img
步骤:
CentOS 7.4默认内核是:3.10.0,升级到内核是升级到4.12,我的是4.15.9,步骤如下,下面这个是在我的家里的小机器安装的,不是阿里云:
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available #主要看有无 kernel-ml-headers编译网卡之用到。
yum --enablerepo=elrepo-kernel install kernel-ml-devel kernel-ml kernel-ml-headers -y
Installing:
kernel-ml x86_64 5.17.0-1.el7.elrepo elrepo-kernel 56 M
kernel-ml-devel x86_64 5.17.0-1.el7.elrepo elrepo-kernel 14 M
kernel-ml-headers x86_64 5.17.0-1.el7.elrepo elrepo-kernel 1.6 M
https://jackxiang.com/post/11261/
yum --enablerepo=elrepo-kernel install kernel-ml-devel kernel-ml
cat /etc/grub2.cfg |grep menuentry
if [ x"${feature_menuentry_id}" = xy ]; then
menuentry_id_option="--id"
menuentry_id_option=""
export menuentry_id_option
menuentry 'CentOS Linux (4.20.3-1.el7.elrepo.x86_64) 7 (Core)' --class centos --class gnu-linux
cat /etc/grub2.cfg |grep menuentry
cat /boot/efi/EFI/centos/grub.cfg |grep menuentry
grub2-set-default 'CentOS Linux (4.16.1-1.el7.elrepo.x86_64) 7 (Core)'
grub2-set-default 'CentOS Linux (4.16.9-1.el7.elrepo.x86_64) 7 (Core)'
grub2-set-default 'CentOS Linux (4.19.0-1.el7.elrepo.x86_64) 7 (Core)'
grub2-set-default 'CentOS Linux (5.7.10-1.el7.elrepo.x86_64) 7 (Core)'
if [ x"${feature_menuentry_id}" = xy ]; then
menuentry_id_option="--id"
menuentry_id_option=""
export menuentry_id_option
menuentry 'CentOS Linux (4.15.9-1.el7.elrepo.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-693.el7.x86_64-advanced-0f2e2aec-2180-46ea-bb6a-9c39d7819d60' {
设置最新版本内核为默认启动:
此时,查看默认启动的系统版本grub2-editenv list:
[root@localhost tmp]# grub2-set-default 'CentOS Linux (4.15.9-1.el7.elrepo.x86_64) 7 (Core)'
[root@localhost tmp]# grub2-editenv list
saved_entry=CentOS Linux (4.15.9-1.el7.elrepo.x86_64) 7 (Core)
grub2-editenv list
saved_entry=CentOS Linux (4.20.3-1.el7.elrepo.x86_64) 7 (Core)
[实践OK]Centos7修改grub启动菜单等待时间:
https://jackxiang.com/post/10238/
reboot,重启之后再次查看 uname -a
uname -a
Linux localhost.localdomain 4.15.9-1.el7.elrepo.x86_64 #1 SMP Sun Mar 11 16:19:17 EDT 2018 x86_64 x86_64 x86_64 GNU/Linux
关于启动时加载哪个内核的更多设置参考:http://blog.csdn.net/wuhualong1314/article/details/79542904
升级指定旧版本的回退并指定版本的方法:
http://elrepo.org/linux/kernel/el7/x86_64/RPMS/
将rpm包下载上传到服务器上,使用下面的命令安装即可@http://mirror.rc.usf.edu/compute_lock/elrepo/kernel/el7/x86_64/RPMS/:
# yum -y install kernel-ml-devel-4.12.4-1.el7.elrepo.x86_64.rpm
# yum -y install kernel-ml-4.12.4-1.el7.elrepo.x86_64.rpm
yum localinstall kernel-ml-4.12.4-1.el7.elrepo.x86_64.rpm
yum localinstall kernel-ml-devel-4.12.4-1.el7.elrepo.x86_64.rpm
cat /boot/grub2/grub.cfg |grep menuentry
grub2-set-default 'CentOS Linux (4.12.4-1.el7.elrepo.x86_64) 7 (Core)'
Linux localhost.localdomain 4.12.4-1.el7.elrepo.x86_64 #1 SMP Thu Jul 27 20:03:28 EDT 2017 x86_64 x86_64 x86_64 GNU/Linux
删除没有用的内核:来自:https://blog.51cto.com/u_15079076/4296146,两点:一是开机时误按键盘出现问题是新的内核无法联网。(我估计是新内核与硬件网卡不兼容,不如旧的,于是得删除新的内核和太旧的内核 ,只留下一个就可以了。)
yum remove $(rpm -qa|grep kernel|grep -v $(uname -r))
==============================================================================================================================
Package 架构 版本 源 大小
==============================================================================================================================
正在删除:
kernel x86_64 3.10.0-693.21.1.el7 @updates 60 M
kernel x86_64 3.10.0-862.2.3.el7 @updates 62 M
kernel x86_64 3.10.0-862.3.2.el7 @updates 62 M
kernel x86_64 3.10.0-862.6.3.el7 @updates 62 M
kernel-ml x86_64 4.16.7-1.el7.elrepo @elrepo-kernel 199 M
kernel-ml x86_64 4.16.9-1.el7.elrepo @elrepo-kernel 200 M
kernel-ml x86_64 6.6.11-1.el7.elrepo @elrepo-kernel 345 M
kernel-ml-devel x86_64 4.16.7-1.el7.elrepo @elrepo-kernel 45 M
kernel-ml-devel x86_64 4.16.9-1.el7.elrepo @elrepo-kernel 45 M
kernel-ml-devel x86_64 6.6.11-1.el7.elrepo @elrepo-kernel 62 M
事务概要
==============================================================================================================================
移除 10 软件包
这个是用阿里云论坛里手工做好的rpm包进行升级:
https://bbs.aliyun.com/read/249016.html?spm=5176.bbsr250035.0.0.ATHIBV
用二进制包升级的下载并成功升级的地址:http://down.7qy.com/Hot-kerne/rpm/hot-centos-kernel-4.x-up-1.2.0.bin
======================================================================
======================================================================
* 热点 CentOS 6/7 内核升级程序 Ver.1.2.0 by blog.7QY.Com *
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*
* 安装完成后需要重新启动系统才能使用新内核 *
* 按Ctrl+C键退出本安装程序,然后输入shutdown -r now 或 reboot 重启系统 *
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*
* Tips: Select < 1 > to 升级CENTOS 6.X内核 *
* Tips: Select < 2 > to 升级CENTOS 7.X内核 *
=========================================================================
Please input ( 1 or 2 ) to 热点 CentOs 6/7 内核升级程序
Select: (1) 升级CENTOS 6.X内核 | (2) 升级CENTOS 7.X内核
(1/2): 2
开始升级CENTOS 7.X内核...
准备中... ################################# [100%]
......
警告:RPM 数据库已被非 yum 程序修改。
正在安装 : kernel-ml-4.4.0-1.el7.elrepo.x86_64 1/2
正在安装 : kernel-ml-devel-4.4.0-1.el7.elrepo.x86_64 2/2
验证中 : kernel-ml-devel-4.4.0-1.el7.elrepo.x86_64 1/2
验证中 : kernel-ml-4.4.0-1.el7.elrepo.x86_64 2/2
已安装:
kernel-ml.x86_64 0:4.4.0-1.el7.elrepo kernel-ml-devel.x86_64 0:4.4.0-1.el7.elrepo
完毕!
会立即重新启动(有可能不是,是挂载新内核,因为后面发现内存还剩下37M,分页的那个进程占用CPU高达95%,后来把PHP-fpm重新调小一点重新启动一下php-fpm就好了,但一会儿CPU又上来了:http://jackxiang.com/post/8438/。),后一会儿就连接上了,发现内核成功升级,数据也正常(我没有挂载,就是阿里云默认的20G),新内核是相当的高效,通过ssh就能感觉得到。
[root@iZ25dcp92ckZ ~]# uname -rasp
Linux iZ25dcp92ckZ 4.4.0-1.el7.elrepo.x86_64 #1 SMP Sun Jan 10 21:17:16 EST 2016 x86_64 x86_64 x86_64 GNU/Linux
http://www.91cto.com.cn/detail/udepnxs/
一)FreeBSD前提是能连上网,配置成功的实践步骤在:https://jackxiang.com/post/8518/
二)后就是安装Lamp架构了,如下pkg,port目前好像用的人较少,先使这个吧,特别是Raspberry这种cpu相对太差,自己编译太麻烦了也更耗时,就别在上面整port了,直接pkg安装即可,也解决了依赖问题:
まず静的リンクしたコマンドでpkg自体をインストール
# fetch http://www.peach.ne.jp/archives/rpi/pkg-static
# chmod 755 pkg-static
# ./pkg-static add http://www.peach.ne.jp/archives/rpi/ports/pkg.txz
デフォルトのパッケージを無効化
# mkdir -p /usr/local/etc/pkg/repos
# echo "FreeBSD: { enabled: no }" > /usr/local/etc/pkg/repos/FreeBSD.conf
独自パッケージリポジトリを追加
# fetch http://www.peach.ne.jp/archives/rpi/rpi.conf
# mv rpi.conf /usr/local/etc/pkg/repos
リポジトリカタログを最新状態に更新
pkg update
pkg install screen
freebsd-update fetch
freebsd-update install
pkg install php56 mod_php56 php56-mysql php56-mysqli
如何在 FreeBSD 10.2 上安装 Nginx 作为 Apache 的反向代理:http://www.linuxidc.com/Linux/2016-01/127139.htm
FreeBSD 10 + Nginx 1.4.4 + PHP 5.5.9 + MySQL 5.6.15: http://my.oschina.net/neochen/blog/198979
三) FreeBSD的pkg使用方法 :
http://blog.chinaunix.net/uid-20332519-id-4063284.html
====================================================================
在 FreeBSD 10.0 上安装和配置 Nginx+PHP+APC+MySQL:
http://www.vpsee.com/2014/04/install-nginx-php-apc-mysql-on-freebsd-10-0/
安装软件:
pkg search php
FreeBSD 11-CURRENT on Raspberry Pi Apache 2.4/MySQL 5.6/PHP 5.6:
http://www.bigsea.com.cn/archives/1393/
如何在树莓派 2B 上安装 FreeBSD:
http://www.linuxidc.com/Linux/2015-12/126724.htm
FreeBSD 网络配置:
https://wiki.freebsdchina.org/faq/networking
修改raspberry pi上安装的freebsd可用内存大小:
http://blog.sina.com.cn/s/blog_a0aacb430101mj69.html
背景:试着把libcurl进行post到服务器102k分片时,发现返回:100 continue怎么办?
PHP修改:
CURLOPT_HTTPHEADER => array("Content-Type: application/binary","Expect:")
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:'));
// Disable Expect: header (lighttpd does not support it)
libcurl修改为:
使用HTTP/1.1协议的curl,发送一个请求,在post数据量超过1K的时候,接口会返回:
HTTP/1.1 100 Continue
HTTP/1.1 200 OK
Date: Sat, 07 Dec 2013 10:09:11 GMT
Server: Apache/2.2.24 (Unix) PHP/5.3.25
X-Powered-By: PHP/5.3.25
Content-Length: 43
Content-Type: text/html
从表面上看,100 Continue表明请求一次没发送完,需要继续发送;搜索后看到现在新浪微博PHP架构师的一片博文,介绍了100的信息;详见在使用curl做POST的时候, 当要POST的数据大于1024字节的时候, curl并不会直接就发起POST请求, 而是会分为俩步,;
流程如下:
1. 发送一个请求, 包含一个Expect:100-continue, 询问Server使用愿意接受数据
2. 接收到Server返回的100-continue应答以后, 才把数据POST给Server
使用libcurl的时候会碰到这样的问题;
在w3c的官网介绍看到如下一段话:
8.2.3 Use of the 100 (Continue) Status
The purpose of the 100 (Continue) status (see section 10.1.1) is to allow a client that is sending a request message with a request body to determine if the origin server is willing to accept the request (based on the request headers) before the client sends the request body. In some cases, it might either be inappropriate or highly inefficient for the client to send the body if the server will reject the message without looking at the body.
Requirements for HTTP/1.1 clients:
– If a client will wait for a 100 (Continue) response before
sending the request body, it MUST send an Expect request-header
field (section 14.20) with the “100-continue” expectation.
– A client MUST NOT send an Expect request-header field (section
14.20) with the “100-continue” expectation if it does not intend
to send a request body.
简单翻译一下:
使用100(不中断,继续)状态码的目的是为了在客户端发出请求体之前,让服务器根据客户端发出的请求信息(根据请求的头信息)来决定是否愿意接受来自客户端的包含了请求内容的请求;在某些情况下,在有些情况下,如果服务器拒绝查看消息主体,这时客户端发送消息主体是不合适的或会降低效率
对HTTP/1.1客户端的要求:
-如果客户端在发送请求体之前,想等待服务器返回100状态码,那么客户端必须要发送一个Expect请求头信息,即:”100-continue”请求头信息;
-如果一个客户端不打算发送请求体的时候,一定不要使用“100-continue”发送Expect的请求头信息;
来自:http://zhidao.baidu.com/question/1495713785713961379.html?fr=iks&word=HTTP%2F1.1+100+Continue&ie=gbk
参考:http://www.laruence.com/2011/01/20/1840.html
PHP修改:
CURLOPT_HTTPHEADER => array("Content-Type: application/binary","Expect:")
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:'));
// Disable Expect: header (lighttpd does not support it)
libcurl修改为:
使用HTTP/1.1协议的curl,发送一个请求,在post数据量超过1K的时候,接口会返回:
HTTP/1.1 100 Continue
HTTP/1.1 200 OK
Date: Sat, 07 Dec 2013 10:09:11 GMT
Server: Apache/2.2.24 (Unix) PHP/5.3.25
X-Powered-By: PHP/5.3.25
Content-Length: 43
Content-Type: text/html
从表面上看,100 Continue表明请求一次没发送完,需要继续发送;搜索后看到现在新浪微博PHP架构师的一片博文,介绍了100的信息;详见在使用curl做POST的时候, 当要POST的数据大于1024字节的时候, curl并不会直接就发起POST请求, 而是会分为俩步,;
流程如下:
1. 发送一个请求, 包含一个Expect:100-continue, 询问Server使用愿意接受数据
2. 接收到Server返回的100-continue应答以后, 才把数据POST给Server
使用libcurl的时候会碰到这样的问题;
在w3c的官网介绍看到如下一段话:
8.2.3 Use of the 100 (Continue) Status
The purpose of the 100 (Continue) status (see section 10.1.1) is to allow a client that is sending a request message with a request body to determine if the origin server is willing to accept the request (based on the request headers) before the client sends the request body. In some cases, it might either be inappropriate or highly inefficient for the client to send the body if the server will reject the message without looking at the body.
Requirements for HTTP/1.1 clients:
– If a client will wait for a 100 (Continue) response before
sending the request body, it MUST send an Expect request-header
field (section 14.20) with the “100-continue” expectation.
– A client MUST NOT send an Expect request-header field (section
14.20) with the “100-continue” expectation if it does not intend
to send a request body.
简单翻译一下:
使用100(不中断,继续)状态码的目的是为了在客户端发出请求体之前,让服务器根据客户端发出的请求信息(根据请求的头信息)来决定是否愿意接受来自客户端的包含了请求内容的请求;在某些情况下,在有些情况下,如果服务器拒绝查看消息主体,这时客户端发送消息主体是不合适的或会降低效率
对HTTP/1.1客户端的要求:
-如果客户端在发送请求体之前,想等待服务器返回100状态码,那么客户端必须要发送一个Expect请求头信息,即:”100-continue”请求头信息;
-如果一个客户端不打算发送请求体的时候,一定不要使用“100-continue”发送Expect的请求头信息;
来自:http://zhidao.baidu.com/question/1495713785713961379.html?fr=iks&word=HTTP%2F1.1+100+Continue&ie=gbk
参考:http://www.laruence.com/2011/01/20/1840.html
[实践OK]freebsd网卡安装与dhcp配置方法
Unix/LinuxC技术 jackxiang 2016-1-19 22:45
背景:如果FreeBSD安装在vmware里,想上网,那么Vmware8及nat模式想上网,那么dhcp分配IP是难免的。在笔记本用wifi上网那个网卡共享给Vmware8后,vmware8会有一个IP 192.168.137.1 ,经过上面配置后FreeBSD获得IP是 192.168.137.129,没有curl,用ping一个就能获取到IP说明初步成功,但能否上外网和dns有关。
1、运行命令ifconfig查看当前网卡列表,确定名称,如果不在列表内,可能是驱动没装好
% ifconfig
dc0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet 192.168.1.3 netmask 0xffffff00 broadcast 192.168.1.255
ether 00:a0:cc:da:da:da
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
dc1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet 10.0.0.1 netmask 0xffffff00 broadcast 10.0.0.255
ether 00:a0:cc:da:da:db
media: Ethernet 10baseT/UTP
status: no carrier
lp0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
inet 127.0.0.1 netmask 0xff000000
tun0: flags=8010<POINTOPOINT,MULTICAST> mtu 1500
2、vi /etc/rc.conf 添加
ifconfig_dc0="DHCP"
dhcp_program="/sbin/dhclient"
dhcp_flags=""
3、reboot后,应该就可以用了
来自:http://www.jb51.net/article/15810.htm
1、运行命令ifconfig查看当前网卡列表,确定名称,如果不在列表内,可能是驱动没装好
% ifconfig
dc0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet 192.168.1.3 netmask 0xffffff00 broadcast 192.168.1.255
ether 00:a0:cc:da:da:da
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
dc1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet 10.0.0.1 netmask 0xffffff00 broadcast 10.0.0.255
ether 00:a0:cc:da:da:db
media: Ethernet 10baseT/UTP
status: no carrier
lp0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
inet 127.0.0.1 netmask 0xff000000
tun0: flags=8010<POINTOPOINT,MULTICAST> mtu 1500
2、vi /etc/rc.conf 添加
ifconfig_dc0="DHCP"
dhcp_program="/sbin/dhclient"
dhcp_flags=""
3、reboot后,应该就可以用了
来自:http://www.jb51.net/article/15810.htm