linux 标签文章 - 李海鑫个人博客

(2009-8-11)不能登陆ssh,提示Server refused to allocate pty

编辑文章 没有评论 :

本文HTML永久地址doc

今天远程ssh登录我的vps的时候,出现 Server refused to allocate pty

解决办法:

mknod -m 666 /dev/ptmx c 5 2 
chmod 666 /dev/ptmx 
mkdir /dev/pts 

添加后就ok了

(2009-6-26)Linux下/var/log/btmp文件

编辑文章 没有评论 :

今天查看了一下服务器,发现/var/log/btmp日志文件比较大,搜索一下,此文件是记录错误登录的日志,就是说有很多人试图使用密码字典登录ssh服务,此日志需要使用lastb程序打开

本文HTML永久地址doc

通过此文件发现有几个ip总是试图登录,可以使用防火墙把它屏蔽掉

命令如下:

iptables -A INPUT -i eth0 -s *.*.*.0/24 -j DROP

查看恶意ip试图登录次数:

 lastb | awk '{ print $3}' | sort | uniq -c | sort -n

删除这个日志:

rm -rf /var/log/btmp
touch /var/log/btmp

(2009-6-24)centos系统service的管理

编辑文章 没有评论 :

本文HTML永久地址doc

在centos下,可以通过下列命令来查看所有当前service的状态:

service --status-all

一般可以通过

service 服务脚本名称 stop/start/restart

来控制相应service的运行

上面的脚本是指保存在/etc/init.d/目录下的脚本或称守护进程对应的文件名,后面可用的指令通过都差不多,不过要根据实际情况来确定。

如果要指定某个服务在下次重启时不自动开启,也就是关闭掉该服务,可以通过chkconfig命令:

chkconfig [--level levels] name

linux默认的七个启动级别

  • 0 — Halt
  • 1 — Single-user mode
  • 2 — Not used (user-definable)
  • 3 — Full multi-user mode
  • 4 — Not used (user-definable)
  • 5 — Full multi-user mode (with an X-based login screen)
  • 6 — Reboot

查看当前linux系统所在的runlevel可以使用runleve命令

[root@server admin]# runlevel
N 3

--level是指在哪些启动级别上关闭。

name是指要操作的service

on,off,reset则是对服务的实际操作,打开,关闭,重置

(2009-1-9)bash学习笔记-命令行编辑

编辑文章 没有评论 :

本文HTML永久地址doc

设置bash编辑模式(emacs模式和vi模式), 一使用set,例如

#set -o emacs
或
#set -o vi

第二种方式是编辑

vi .inputrc

bash历史记录.bash_history在用户主目录下

fc命令

fc -l列出以前的命令

历史命令:

!启动历史替换
!!最后一个命令
!n 引用命令行n

(2009-1-9)bash学习笔记-基础知识

编辑文章 没有评论 :

本文HTML永久地址doc

查看当前bash版本:

echo $BASH_VERSION

查看可用的shell,使用:

echo $SHELL

查看帐号的bash :

grep bash /etc/passwd | awk -F: '{print $7}" | sort -u

要把某个bash安装为登录shell 可以键入 chsh bash-name 这里的bash-name为完整的路径 例如:

chsh /usr/local/bin/bash

用户一登录 shell就处于会话状态,要退出shell,可以用

exit
logout 
CTRL-D

通配符:

? 代表一个字符
* 代表任意字符
[a-zA-Z]代表a到z大小写字母
[!0-9]代表任何一个非数字符号
a{ob,cb,db}a 代表以a开通,中间是ob,或者cd 或者db 以a结尾的字符串
换行 除了使用\,还可以使用通过一个未结束引号标记,如
echo '这是另外一种使用换行的方法
通过一个未结束引号标记‘

(2009-1-8)mysql关于timeout的问题

编辑文章 没有评论 :

本文HTML永久地址doc

一般来讲,程序配置优化所产生的生产力远比提高硬件配置要好,可能一行蹩脚的SQL要吃掉你服务器整个内存,导航你的网站或服务器宕机。 优化程序和服务器配置是提高效率的第一步也是最好的办法,如果实在不行再从去升级你的硬件配置。 在日常的MySQL服务器中,wait-timeout这个参数非常有用。 (在部分MySQL的默认配置中可能没有wait-timeout这个参数项,你在[mysqld]节中加上即可) 参数意义:MySQL客户端的数据库连接闲置最大时间值。 参数默认值:默认值为8小时 。 这个参数的大概意思是某一个MySQL客户端连接闲置的最大时间值,即某一个MySQL客户端连接过程中,闲置的最大时间到达后服务器将其关闭。 MySQL 服务器所支撑的最大连接数是有限的,因为每一个连接、第一个表打开的操作都要消耗服务器内存,理想状态是当一个MySQL客户端连接完成工作就自动断开释放内存,如果你的你的网站有大量的MySQL链接请求,这些连接完成SQL执行任务后空闲着啥事也不干,白白占用内存资源,如果这些连接堆积起来,将导致MySQL超过最大连接数,从而无法新建MySQL连接,有可能导致“Too many connections”的错误。 可以在设置之前用show processlist查看一下MySQL状态,如果你发现你的MYSQL中有大量的Sleep进程,哪么你真的需要设置你的wait-timeout 了。依你的程序而定设置多大的值,我的设置wait-timeout=10,MySQL中的所有Sleep线程最多只能“睡”10秒,之后就被强行关闭了。

(2009-1-6)测试你的linux主机性能(unixbench)

编辑文章 没有评论 :

今天看到一款不错的测试主机性能的软件。

官方网站:https://code.google.com/p/byte-unixbench/

安装使用如下: wget https://byte-unixbench.googlecode.com/files/UnixBench5.1.3.tgz tar zxvf UnixBench5.1.3.tgz cd UnixBench make ./Run

本文HTML永久地址doc

把我的系统测试数据粘贴出来, cpu信息:


[root@xingke ~]# cat /proc/cpuinfo
processor       : 0
vendorid       : GenuineIntel
cpu family      : 6
model           : 11
model name      : Intel(R) Celeron(TM) CPU                1000MHz
stepping        : 1
cpu MHz         : 1009.123
cache size      : 256 KB
fdivbug        : no
hltbug         : no
f00fbug        : no
comabug        : no
fpu             : yes
fpuexception   : yes
cpuid level     : 2
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 mtrr pge mca cmov pat pse36 mmx fxsr sse up
bogomips        : 2019.04

[root@xingke ~]#

内核信息:

[root@xingke ~]# uname -a
Linux xingke.dns0755.net 2.6.18-92.1.13.el5.028stab059.6 #1 SMP Fri Nov 14 20:22:51 MSK 2008 i686 i686 i386 GNU/Linux
[root@xingke ~]#
使用UnixBench输出的信息:

TEST                                        BASELINE     RESULT      INDEX

Dhrystone 2 using register variables 376783.7 1790071.3 47.5 Double-Precision Whetstone 83.1 476.8 57.4 Execl Throughput 188.3 990.0 52.6 File Copy 1024 bufsize 2000 maxblocks 2672.0 18548.0 69.4 File Copy 256 bufsize 500 maxblocks 1077.0 7816.0 72.6 File Read 4096 bufsize 8000 maxblocks 15382.0 128355.0 83.4 Pipe-based Context Switching 15448.6 78215.1 50.6 Pipe Throughput 111814.6 243433.7 21.8 Process Creation 569.3 3333.5 58.6 Shell Scripts (8 concurrent) 44.8 163.0 36.4 System Call Overhead 114433.5 295561.6 25.8 FINAL SCORE 48.7

总体分数不高,主要我这台电脑太旧了,2001年买的,不错做测试平台还比较合适,哈哈

常见几个问题 make出现: make: * [pgms/ubgears] Error 1 需要安装下列包 yum install -y SDL-devel mesa-libGL-devel

运行出现: # ./Run Can't locate Time/HiRes.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendorperl /usr/share/perl5/vendorperl /usr/lib64/perl5 /usr/share/perl5 .) at ./Run line 6. BEGIN failed--compilation aborted at ./Run line 6.

可能系统缺少“HiRes.pm”组件,或程序路径问题。解决方法如下:.pm实际上是Perl的包,只需安装对应的软件包

yum install perl-Time-HiRes

SSH执行以上命令,安装成功即可。

(2009-1-6)rpm database重建

编辑文章 没有评论 :

如果在使用centos的时候,rpm数据库发生错误,可以通过下列操作进行rpm 数据库重建

本文HTML永久地址doc

RPM Database 重建:

root@server [~]# rpm --rebuilddb

或者

root@server [~]# rpmdb --rebuilddb

(2008-12-20)Linux Bash Date 日期命令的使用

编辑文章 没有评论 :

我的机器作为Web开发服务器,每一小时备份一个压缩包出来,每天将昨天的压缩包移动到一个文件夹里面,写的脚本文件一直没解决周末不上班造成的问题。因为man date -d 里面没有详细的 STRING 解释。

本文HTML永久地址doc

今天参考了朽木不可雕的一篇文章,终于找到答案:

date -d “1 days ago” +%Y%m%d ,描述用”2 days ago”,”yesterday”,”tomorrow”.”next-day”,”last-day”,”last-month”,”next- month”,”next-year”也可。

于是我的daily_webbackup.sh这样写:

#!/bin/bash
basedir=/backup/webbackup/
prefix=web
suffix=$(date +%Y%m%d -d “yesterday”)
suffix1=$(date +%Y%m%d -d “2 days ago”)
suffix2=$(date +%Y%m%d -d “3 days ago”)
destdir=$basedir$prefix$suffix
destdir1=$basedir$prefix$suffix1
destdir2=$basedir$prefix$suffix2
if [ -e $destdir*.tar.gz ]; then
if [ ! -e $destdir ]; then
mkdir $destdir
fi
mv $destdir*.tar.gz $destdir/
elif [ -e $destdir1*.tar.gz ]; then
if [ ! -e $destdir1 ]; then
mkdir $destdir1
fi
mv $destdir1*.tar.gz $destdir/
elif [ -e $destdir2*.tar.gz ]; then
if [ ! -e $destdir2 ]; then
mkdir $destdir2
fi
mv $destdir2*.tar.gz $destdir/
fi
exit 0

由于是在/etc/cron.daily/里面运行,脚本没有 echo 任何信息。

(2008-11-20)在vps上配置phpmyadmin

编辑文章 没有评论 :

本文HTML永久地址doc

安装mysql所需要的组件

yum -y install mysql-server php-mcrypt php-mbstring php-gd

进入预安装的目录

cd /var/www/html
wget http://prdownloads.sourceforge.net/phpmyadmin/phpMyAdmin-2.11.9.3-all-languages-utf-8-only.tar.gz


#tar zxvf phpMyAdmin-2.11.9.3-all-languages-utf-8-only.tar.gz
# mv phpMyAdmin-2.11.9.3-all-languages-utf-8-only phpmyadmin
#cd phpmyadmin
# mv config.sample.inc.php config.inc.php
# vi config.inc.php
修改$cfg['blowfish_secret'] = '' 为$cfg['blowfish_secret'] = 'test' 这里的test自个定义,

(2008-11-7)调整centos5文件打开数

编辑文章 没有评论 :

本文HTML永久地址doc

使用ulimit -a一下,发现OPEN FILES不能默认超过1024,昨天的在进行压力测试时,出现500错误,具体请查看NGINX出现 500 INTERNAL SERVER ERRORdoc

早上起来看一下,发现原来是通过如下方式调整

方法1 (永久调整)

vi /etc/security/limits.conf

在文件末加上:
*                soft   nofile          8192
*                hard   nofile          20480

同时vi /etc/sysctl.conf末尾添加

fs.file-max=8192

重新启动,在使用ulimit -n查看的数已经是8192

方法2 (临时用)

直接在终端输入 ulimit -n 8192 按回车就ok了

(2008-11-6)利用curl快速检查http服务器类型

编辑文章 没有评论 :

本文HTML永久地址doc

今天发现linux下不错的命令,curl

例如需要查看我博客的web服务器的类型输入:

[root@localhost ~]# curl --head http://blog.lihaixin.name/
HTTP/1.1 200 OK
Date: Thu, 06 Nov 2008 01:37:15 GMT
Server: Apache/2.2.9 (Unix) mod_ssl/2.2.9 OpenSSL/0.9.7a mod_auth_passthrough/2.1   mod_bwlimited/1.4 FrontPage/5.0.2.2635
X-Powered-By: PHP/5.2.6
X-Pingback: http://blog.lihaixin.name/xmlrpc.php
Content-Type: text/html; charset=UTF-8

[root@localhost ~]#

就可以知道使用apache2.29 php 5.2.6

(2008-11-6)在centos5下安装nginx+fastcgi php+mysql

编辑文章 没有评论 :

本文HTML永久地址doc

概述:

Nginx ("engine x") 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该站点运行超过两年半了。Igor 将源代码以类BSD许可证的形式发布。

Nginx 超越 Apache 的高性能和稳定性,使得国内使用 Nginx 作为 Web 服务器的网站也越来越多,其中包括新浪博客、新浪播客、网易新闻等门户网站频道,六间房、56.com等视频分享网站,Discuz!官方论坛、水木社区等知名论坛,豆瓣、YUPOO相册、海内SNS、迅雷在线等新兴Web 2.0网站。

安装:

1、下载nginx rpm包 且安装

wget ftp://194.199.20.114/linux/EPEL/5/i386/nginx-0.6.32-1.el5.i386.rpm
rpm -Uvh nginx-0.6.32-1.el5.i386.rpm
chkconfig nginx on
/etc/init.d/nginx start

然后访问本机的80端口,就可以看到页面了,这表示安装一切正常。 修改/etc/nginx/nginx.conf文件中的server_name部分,修改IP地址为本机IP地址:

server_name 192.168.0.104;

修改/etc/nginx/nginx.conf文件的index部分,加入index.php

 index index.php index.html index.htm;

2、安装php

wget http://dag.wieers.com/rpm/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
yum -y install lighttpd-fastcgi lighttpd php-cli php-mysql
cd /usr/share/nginx/html/
echo "< ?phpinfo();?>" >phpinfo.php
spawn-fcgi -a 127.0.0.1 -p 9000 -C 10 -u nginx -f /usr/bin/php-cgi

重新配置nginx.conf,增加如下内容

location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html$fastcgi_script_name;
            include        fastcgi_params;
        }

3、重启nginx

/etc/init.d/nginx stop
/etc/init.d/nginx start

4、安装数据库

yum -y install mysql-server
chkconfig mysqld on
/etc/init.d/mysqld start

5、把php cgi程序开机自启动

在/etc/rc.d/rc.local文件后添加下面语句

spawn-fcgi -a 127.0.0.1 -p 9000 -C 10 -u nginx -f /usr/bin/php-cgi

(2008-11-3)如何快速修复grub

编辑文章 没有评论 :

本文HTML永久地址doc

用安装盘进入终端,DVD盘可以先在开机时输入linux rescue进入,然后:

#sudo grub
grub>find /boot/grub/stage1 得到/boot所在分区,如是(hd0,x)
grub>root (hd0,x)
grub>setup(hd0)
grub>quit

(2008-11-3)成功把系统更换到ubuntu

编辑文章 没有评论 :

本文HTML永久地址doc

自从上次的黑屏事件后,还要周一的联系oem光盘不能安装,只好把整个系统全部更换成linux,由于我以前有刻录8.04版本,所以就直接安装此版本,晚上把相关的设置一下

(2008-10-27)linux内核hz

编辑文章 没有评论 :

本文HTML永久地址doc

刚才看到有朋友讨论修改linux内核HZ,查阅了一下,hz在各系统的默认值如下:

v2.6 alpha 1024
arm 100
i386 1000 //v2.4以前应该是100吧,记不太清了
ia64 1024
mips 100
ppc 1000
x86-64 1000

hz就是一秒钟产生的时间片的数量,也就是时钟发生器产生时钟中断的次数

(2008-10-25)配置webmin通过apache访问

编辑文章 没有评论 :

本文HTML永久地址doc

昨天安装了webmin,一位朋友的vps主机使用的内部私有ip地址,如果需要访问,还需要在网关做端口转发,能否把访问webmin的10000端口地址,通过80端口的子目录访问,假设ip为:192.168.3.21 客户访问http://192.168.3.21/webmin 实际转发访问到http://192.168.3.21:10000,关于webmin安装请查看昨天的日志

WEBMIN安装手记doc

实际有四种解决办法,下面是用通过proxy模块进行配置

确保你服务器开启了mod_proxy

在/etc/httpd/conf/httpd.conf文件增加

<IfModule mod_proxy.c>ProxyRequests On
<Proxy /webmin>
Order allow,deny
Allow from all
</Proxy>
ProxyPass /webmin http://localhost:10000
ProxyPassReverse /webmin http://localhost:10000

在/etc/webmin/config未增加

webprefix=/webmin
webprefixnoredir=1
referer=apachehost

重启apache

通过上述4个步骤,就可以通过http://192.168.3.21/webmin访问webmin服务器了

参考资料:http://www.webmin.com/apache.html

(2008-10-25)设置RED HAT升级源使用CENTOS源

编辑文章 没有评论 :

本文HTML永久地址doc

红帽服务器版本想在官网升级,需要付费,

通过他的方法 找到了国内yum源 http://centos.ustc.edu.cn/centos/5.2/,更多国内的源可以访问

下面是我的rhel-debuginfo.repo文件,在/etc/yum.repos.d/里面修改为下面代码:

[base]
name=Red Hat Enterprise Linux $releasever -Base
baseurl=http://centos.ustc.edu.cn/centos/5.2/os/$basearch/
gpgcheck=1
[update]
name=Red Hat Enterprise Linux $releasever -Updates
baseurl=http://centos.ustc.edu.cn/centos/5.2/updates/$basearch/
gpgcheck=1
[extras]
name=Red Hat Enterprise Linux $releasever -Extras
baseurl=http://centos.ustc.edu.cn/centos/5.2/extras/$basearch/
gpgcheck=1
[addons]
name=Red Hat Enterprise Linux $releasever -Addons
baseurl=http://centos.ustc.edu.cn/centos/5.2/addons/$basearch/
gpgcheck=1

shell下面运行下面几步:

cd /etc/pki/rpm-gpg
wget http://centos.ustc.edu.cn/centos/5.2/os/i386/RPM-GPG-KEY-CentOS-5 (由于我是INTER32位的cpu,所以选I386)
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*

上述3步一定按顺序,不然得把key复制到/etc/pki/rpm-gpg目录

好了 到这里就可以运升级了,不过用的是centos系统的源

参考资料:http://linux.chinaunix.net/techdoc/system/2008/07/18/1018380.shtml

(2008-10-25)webmin安装手记

编辑文章 没有评论 :

本文HTML永久地址doc

官方下载地址:http://sourceforge.net/projects/webadmin/

下载rpm包

wget http://downloads.sourceforge.net/webadmin/webmin-1.440-1.noarch.rpm

使用rpm命令安装

[root@http ~]# rpm -Uiv webmin-1.440-1.noarch.rpm
Preparing packages for installation...
Operating system is CentOS Linux
webmin-1.440-1
Webmin install complete. You can now login to http://http.15099.net:10000/
as root with your root password.
[root@http ~]#

这样就可以通过游览器访问http://ip地址:10000/访问了,但是这样是明文传输,我们需要设置通过https访问

另外: ◎使用SSL加密
1.安装SSL
Webmin → Webmin Configuration → SSL Encryption → download and install → make and install
2.启动SSL
Webmin → Webmin Configuration → SSL Encryption
设定
Enable SSL if available? Yes (启动SSL)
Redirect non-SSL requests to SSL mode? Yes (自动转换HTTP网页到HTTPS)
Save储存设定

◎变更连接Port
Webmin → Webmin Configuration → Ports and Addresses
Listen on port 10000更改为想要使用的Port
Save储存设定

◎变更使用语言
Webmin → Webmin Configuration → Language
Display in language更改为Traditional Chinese或想使用的语系
Change Language储存设定

(2008-10-24)selinux关闭不重启系统

编辑文章 没有评论 :

本文HTML永久地址doc

CentOS使用了selinux来增强安全,但是使用起来有时候十分繁琐,就想关闭它,但是如果安装服务器的时候开始没有图形界面,还真不好找关闭selinux的地方。

下面介绍关闭selinux的方法 Redhat系统,修改/etc/sysconfig/selinux文件:

#SELINUX=enforcing
SELINUX=disabled

重启系统生效,如果不想重启系统,使用命令

setenforce 0