公告

关注WEB,关注系统运维

订阅我的博客


google reader 鲜果 QQ邮箱 有道 抓虾

博客统计信息

用户名:hxl2009
文章数:52
评论数:11
访问量:31272
无忧币:338
博客积分:460
博客等级:3
注册日期:2009-05-14

CentOS自从6.0以后启动方式有所变动默认是进度条方式启动,没有显示详细的硬件自检之类的信息。

root用户修改 /boot/grub/grub.conf 文件。

vim /boot/grub/grub.conf
将"rhgb"和 "quiet"去掉,保存即可
重启系统观察是不是和CentOS 5.xxx 启动过程一样了。
"rhgb"表示"redhat graphics boot",就是图形进度条模式。

"quiet"表示在启动过程中只显示重要启动信息,类似硬件自检之类的消息不会显示,可以有选择地选用。
如果实在是不想改动的话,我这里还有一个方法就是出现进度条的时候按键盘的F4即可,玩得开心。
2012-04-06 01:45:36
列出正在使用网络的进程

lsof -P -i -n | cut -f 1 -d " "| uniq | tail -n +2
用下面的命令找出僵死进程

ps -A -o stat,ppid,pid,cmd | grep -e '^[Zz]'

ps -A -o stat,ppid,pid,cmd | grep -e '^[Zz]' | awk '{print $2}' | xargs kill -9
对当前目录的文件按大小从大到小进行排序,不会计算子目录大小

ls -lSh
怎样知道某个进程在哪个CPU上运行?

ps -eo pid,args,psr

ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm

ps -eo euser,ruser,suser,fuser,f,comm,label 


快速找出发送arp包主机

tcpdump -l -n arp | grep 'arp who-has' | head -100 | awk '{printf $NF} ' | sort | uniq -c | sort -n
查找二个文件相同的内容

grep -Fx -f file1 file2

sort file1 file2 | uniq -d
查找file2里 file1里没有的内容

grep -Fxv -f file1 file2
查看服务器上一共开了多少的 php-cgi 进程:

ps -ef |grep "php" | grep -v "grep" | wc -l
查看已经有多少个php-cgi进程用来处理tcp请求:

netstat -anop | grep "php" | grep -v "grep" | wc -l
修改某目录下(含..
2011-12-07 17:03:47
lspci不能使用,安装记录下。
yum -y install pciutils
2011-11-14 14:52:26
【问       题】:snmp服务无故自动停止,人工不能及时的发现,造成系统无法被正常的监控
【解决思路】:通过脚本实现服务异常的情况下自动开启服务,确保系统被正常的监控
【脚本内容】
#!/bin/bash



A=`service snmpd status |awk '{print $2}'`

B=`netstat -puln | grep ":161 "`

C=`service snmpd status |awk '{print $4}'|cut  -c9-14`

if [ "$A = 停止" ];then

         /etc/init.d/snmpd start

echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~>" >> /var/log/check_snmpd.log

echo "snmpd start at [`date +"%Y-%m-%d %H:%M:%S"`]"   >> /var/log/check_snmpd.log

elif [ "$B" = "" ];then

         /etc/init.d/snmpd start

echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~>" >> /var/log/check_snmpd.log

echo "snmpd start at [`date +"%Y-%m-%..
2011-11-02 12:58:19
【 描述 】

Logwatch是使用 Perl 开发的一个日志分析工具

Logwatch能够对Linux 的日志文件进行分析,并自动发送mail给相关处理人员,可定制需求

Logwatch的mail功能是借助宿主系统自带的mail server 发邮件的,所以系统需安装mail server , 如sendmail,postfix,Qmail等


本文yum安装配置

yum install -y logwatch
【 配置 】
a. 配置文件在 /etc/logwatch , 相关配置模板在 /usr/share/logwatch
cp /usr/share/logwatch/default.conf/logwatch.conf /etc/logwatch/conf/logwatch.conf
如果不做这一步 , /etc/logwatch/conf/logwatch.conf 是一个空文件
默认配置会使用 /usr/share/logwatch/default.conf/logwatch.conf
b. vim /etc/logwatch/conf/logwatch.conf
LogDir = /var/log              logwatch 会去 /var/log 找你定义的 log 文件

TmpDir = /var/cache/logwatch

# Save = /tmp/logwatch         开启此项, 处理结果将保存在/tmp/logwatch, 不邮寄或显示

MailTo = your@mail.com       ..
2011-11-01 11:21:29
sed '1,3d' file //删除1-3行

sed '/[Aa]bc/p' file //打印包含Abc或者abc的行

sed '/ABC/d' //删除包含ABC的行

sed '/ABC/!d' //不删除包含ABC的行

sed '5,$d' //从第五行到最后一行全部删除

sed 1q  //显示第一行

sed 's/$/.../g' //每行的最后面添加 ...

sed 's/d.(sk)/1&/g' //满足d*sk的单词,在单词前添加sk

sed 's/<[^>]*>//g' //去除html标签

sed '/ABC/a123' //在包含ABC的行后面添加一行数值为123的行

sed '/ABC/i123' //跟a不同的是i是插入当前行的前面

sed '/ABC/c123' //包含ABC的行将更改为123

sed '/ABC/{n;s/123/ABC/g}' //精确匹配包含ABC的下一行,将123全部替换成ABC

sed '/ABC/{s/A/a/}' //在包含ABC的行将A替换成a

sed -e '/ABC/h' -e '$g' //将包含ABC的行复制,在最后一行添加.

sed -e '/ABC/{h;d}' -e '/123/G' //将包含ABC的行复制并删除,在包含123的行后添加.

g等于在当前行覆盖,G是在符合条件的行后新增加一行.

sed 's/^/ /g' //每行前面增加一个空格

sed 's/.(.)$/*1/' //将倒数第二位换成*

sed '/ABC/!s/1/*/g' //在不包含ABC的行里,将所有的1替换成*

sed ..
2011-09-30 10:38:46
yum -y install ntp
mv /etc/ntp.conf    /etc/ntp.conf_bak
vi /etc/ntp.conf

添加以下内容:

server 0.centos.pool.ntp.org
server 1.centos.pool.ntp.org
server 2.centos.pool.ntp.org
server 127.127.1.0  #local clock
fudge  127.127.1.0  stratum 10
driftfile /var/lib/ntp/drift
broadcastdelay  0.008
/etc/init.d/ntpd start
检查时间服务器的同步状态:

ntpq -p
netstat -atnpu|grep ntp
 
客户端配置:
在ntp server上重新启动ntp服务后,ntp server自身或者与其server的同步的需要一个时间段,这个过程可能是5分钟,在这个时间之内在客户端运行ntpdate命令时会产生no server suitable for synchronization found的错误。


执行同步命令 :

/usr/sbin/ntpdate 192.168.1.187
添加计划任务 :

*/5 * * * *  /usr/sbin/ntpdate  192.168.1.187 
注意事项

注意:将客户端和服务器端的SYNC_HWCLOCK这个参数修改成yes。同步成功以后,自动的更新BIOS.
vi /etc/sysconfig/ntpd
# Drop root to id 'ntp:ntp' by default.
OPTIONS="-u ntp:ntp -p /var/run/ntpd.p..
1、统计两个文本文件的相同行
grep -Ff file1 file2


2、统计file2中有,file1中没有的行
grep -vFf file2 file1
2011-09-29 14:38:24
vi /root/.bashrc
PS1="\[\e[37;40m\][\[\e[32;40m\]\u\[\e[37;40m\]@\h \[\e[35;40m\]\W\[\e[0m\]]\\$ \[\e[33;40m\]"
 
2011-09-28 20:37:15
  迫于生产环境需要,现升级文件系统ext3到ext4(好处就不说了网上一大把)。看见别个大牛写的都一篇篇的,现小弟整理最简单的方法,哈哈哈。
 
yum -y install e4fsprogs
mkfs.ext4 /dev/xxx  (实际分区)
到此你的linux系统已经能够支持ext4文件系统了!


记得加入/etc/fstab
1. 调用顺序

 (1)  RedHat系统

 执行顺序为:/etc/profile -> (~/.bash_profile | ~/.bash_login | ~/.profile) -> ~/.bashrc -> /etc/bashrc -> ~/.bash_logout

后面的配置文件继承前边的变量和Shell设置,相同的配置会被覆盖;



关于各个文件的作用域说明:

(1)/etc/profile: 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行. 并从/etc/profile.d目录的配置文件中搜集shell的设置。



(2)/etc /bashrc: 为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取。



(3)~/.bash_profile: 每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,然后执行用户的.bashrc文件。交互式登录shell调用此文件。



(4)~/.bashrc: 该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该文件被读取。这里可以设置别名。若删除此文件,提示符会变成 -bash-3.2$,可以复制/etc/skel/.bashrc到自己的家目录下。交互式非登录shell调用此文件。



(5) ~/.bash_logout:当每次退出系统(退..
2011-09-01 16:19:12
定制CentOS5.6 ServerCD系统安装盘
1、  在虚拟机中安装系统,选择所需的设置和软件包本次试验用的是CentOS-5.6-i386
2、  安装定制光盘所需软件
yum -y install createrepo mkisofs
 
3、  生成安装系统所需的rpm文件列表
awk '/Installing/{print $2}' install.log |sed 's/^[0-9]*://g' >/root/packages.list
 
4、  创建定制工作目录
mkdir /home/OS
mount /dev/cdrom /mnt
rsync –a --exclude=CentOS /mnt/ /home/OS
mkdir /home/OS/CentOS
 
5、  复制系统安装所需rpm包,如下脚本
vi cprpm.sh
 
#!/bin/bash
DEBUG=0
DVD_CD=/home/OS/CentOS            //目标地址,即要复制到的地方
ALL_RPMS_DIR=/mnt/CentOS/         //源目录,以CentOS 5.6为例
DVD_RPMS_DIR=$DVD_CD
packages_list=/root/packages.list
number_of_packages=`cat $packages_list | wc -l`
i=1
while [ $i -le $number_of_packages ] ; do
line=`head -n $i $packages_list | tail -n -1`
name=`echo $line ..
ps -A --sort -rss -o comm,pmem,pcpu |uniq -c |head -20
    网上流传着一份nginx fastcgi_params,大家在nginx下用fastcgi跑PHP大多用的是这个版本,但是这个版本有2个问题,1是默认的 buffersize太小,php一旦输出比较多的error_log就挂了,2是没有转发HTTP_X_FORWARD_FOR和 HTTP_CLIENT_IP这两个变量.我的服务器是在lighttpd后面跑的nginx+php,wordpress收不到正确的IP,于是垃圾评 论无法正常工作.现在我改了一份更合用的版本,提供出来.
  以下是代码片段:

fastcgi_buffers 8 128k; 

fastcgi_param  QUERY_STRING       $query_string; 

fastcgi_param  REQUEST_METHOD     $request_method; 

fastcgi_param  CONTENT_TYPE       $content_type; 

fastcgi_param  CONTENT_LENGTH     $content_length; 

  

fastcgi_param  SCRIPT_NAME        $fastcgi_script_name; 

fastcgi_param  REQUEST_U..
2011-08-05 16:32:47

在linux中,往往解析一个域名时,先会找/etc/hosts文件,如果/etc/hosts文件没有对应,才会去找DNS,那么有什么方式,让主机先找DNS呢?

当然有,在/etc/nsswitch.conf这个文件里定义,

#vi /etc/nsswitch.conf

hosts:      files dns    //找到这段,改成下面这样

hosts:      dns files

这样,你的主机就会先去找DNS,在去找hosts了



 
SSH 是一个强大且安全的工具,我们除了可以用它来远程管理主机外,还可以通过它建立 SSH tunnel 作 Proxy 用,远程传输文件等等。而这里我想要介绍另外一个功能,那就是结合 sshfs 这个工具可以把远程主机的文件系统映射到本地主机上,透过 SSH 把远程文件系统挂载到本机上,这样我们可以不必使用 scp 工具就可以做到直接复制及删除远程主机的文件了,就像操作本地磁盘一样方便。
sshfs 是基于 FUSE 构建的 SSH 文件系统客户端程序,通过它远程主机的配置无需作任何改变,就可以透过 SSH 协议来挂载远程文件系统了,非常方便及安全。
首先安装epel的yum源方便安装

rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
yum -y install sshfs


挂载远程 ssh 文件系统:


sshfs root@192.168.1.218:/home/ /mnt/
sshfs 用户名@远程主机IP:远程主机路径 本地挂载点
sshfs -o transform_symlinks -o follow_symlinks user@hostname: /home/username/sshfs
-o transform_symlinks 表示转换绝对链接符号为相对链接符号

-o follow_symlinks 沿用服务器上的链接符号

 
vim /etc/profile

在未行加入
export PROMPT_COMMAND='{ date "+[ %Y%m%d %H:%M:%S `whoami` ] `history 1 | { read x cmd; echo "$cmd  from ip:$SSH_CLIENT   $SSH_TTY";

}`"; }>> /home/login.log'
source /etc/profile 生效


========================================================================

vim /etc/profile

在未行加入
RMIP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`

TIME=`date +%Y%m%d.%H:%M.%S`

LOGS="/tmp/.hist/$TIME.$USER.hist"

HOST=`/bin/hostname`
if [ "$RMIP" = "" ]

then

  RMIP=`hostname`

fi
if [ ! -d /tmp/.hist ]

then

   mkdir /tmp/.hist

   chmod 777 /tmp/.hist

fi
script -q $LOGS && mail -s "$TIME, $USER FROM $RMIP LOGIN $HOST" user@domain.com < $LOGS && rm -f $LOGS
命令基本格式是: tar cvzf TARGET SOURCES -N TIME e.g tar cvzf foo.tgz /bak -N “2004-03-03 16:49:17″

记住全备份的时间f_time和上一次增量备份的时间i_time;(现在的办法是以job为单位记录这两个时间: “ [JobName] [F_TIME] [I_TIME] ‘\n’ ”)

全备份: tar cvzf foo.tgz /bak

增量备份: tar cvzf foo.tgz /bak -N i_time

差量备份: tar cvzf foo.tgz /bak -N f_time
一、介绍

本项目利用inotify与rsync对服务器进行实时同步,其中inotify用于监控文件系统事件,rsync是目前广泛使用的同步算法,其优点是只对文件不同的部分进行操作,所以其优势大大超过使用挂接文件系统的方式进行镜像同步,目前使用的比较多的同步程序版本是inotify-tools。


inotify 可以监视的文件系统事件包括:

IN_ACCESS,即文件被访问

IN_MODIFY,文件被 write

IN_ATTRIB,文件属性被修改,如 chmod、chown、touch 等

IN_CLOSE_WRITE,可写文件被 close

IN_CLOSE_NOWRITE,不可写文件被 close

IN_OPEN,文件被 open

IN_MOVED_FROM,文件被移走,如 mv

IN_MOVED_TO,文件被移来,如 mv、cp

IN_CREATE,创建新文件

IN_DELETE,文件被删除,如 rm

IN_DELETE_SELF,自删除,即一个可执行文件在执行时删除自己

IN_MOVE_SELF,自移动,即一个可执行文件在执行时移动自己

IN_UNMOUNT,宿主文件系统被 umount

IN_CLOSE,文件被关闭,等同于(IN_CLOSE_WRITE | IN_CLOSE_NOWRITE)

IN_MOVE,文件被移动,等同于(IN_MOVED_FROM | IN_MOVED_TO)

注:上面所说的文件也包括目录。
一.实验环境

两台服务器,系统均为CentOS 5.6 32位,内核..
2011-06-10 17:59:10
本文介绍了如何使用rsync服务从Linux到Windows进行远程备份
rsync官网下载http://rsync.samba.org/

cwrsync官网下载http://sourceforge.net/projects/sereds/files/cwRsync/
环境

192.168.88.129为rsync server CENTOS 5.5 32位,rsync源码包安装


下面开始安装:

tar zxvf rsync-3.0.8.tar.gz

cd rsync-3.0.8

./configure

make && make install

ln -s /usr/local/bin/rsync /usr/bin/rsync

mkdir /etc/rsyncd

touch /etc/rsyncd/rsyncd.conf

touch /etc/rsyncd/rsyncd.passwd

chmod 600 /etc/rsyncd/rsyncd.passwd
vi /etc/rsyncd/rsyncd.motd 输入欢迎信息

Welcome to rsync system
vi /etc/rsyncd/rsyncd.conf输入:
uid=root

gid=root

max connections=36000

use chroot=no

motd file = /etc/rsyncd/rsyncd.motd

log file=/var/log/rsyncd.log

log format = %t %a %m %f %b

transfer logging = yes

syslog facility = local3

pid file=/var/run/rsyncd.pid

lock file=/var/run/rsyncd.lock

hosts allow = 192.168.88.128,192.168.10.0/24

hosts deny = *

timeout=300
[data]

path=/opt

ignore..
2011-05-23 15:50:07
kudzu --probe --class=network |grep desc
lspci -vv | grep net &&  (lspci -vv | grep net | wc -l)
  一直用的都是CentOS系统,所以这次就试了试debian ,毕竟国外debian使用率占了半壁江山。
首先是添加源地址,目的只有一个,我要安装最新版的软件,debian默认的软件版本低啊
vi /etc/apt/sources.list

deb http://packages.dotdeb.org lenny all
接着,当然是更新一下系统啦.

apt-get update
下面是安装mysql5.1,安装过程会需要你输入root密码的
apt-get install mysql-server-5.1

/etc/init.d/mysql restart

/etc/init.d/mysql stop
接着是PHP5,自己选择需要安装的扩展吧
apt-get install php5-common php5-cgi php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl php5-apc
安装nginx,代码如下
apt-get install libpcre3 libpcre3-dev libpcrecpp0 libssl-dev zlib1g-dev build-essential

wget http://sysoev.ru/nginx/nginx-0.7.64.tar.gz

tar zxvf nginx-0.7.64.tar.gz

cd nginx-0.7.64/

./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_stat..
Jeremy Zawodny写了一篇Fixing Poor MySQL Default Configuration Values 关于mysql默认预设值的问题,其中提到了有4点是无论如何都要修改的.
首先是 max_connect_errors , 当某一个网站送了很多错误的请求时,mysql服务器就会当掉这个网站的权限.
第三个是 skip-name-resolve 这个设定很变态的,每一次链接都要做一次反DNS查询,mysql跑反DNS查询有什么用,浪费时间和资源.
最后我在my.cnf配置文件添加了以下语句:

max_connect_errors = 1844674407370954751

connect_timeout = 30

skip-name-resolve

slave_net_timeout = 30
2011-02-28 14:16:02
   不值啊,又败在HR这,支付宝没机会进了,前面都过了啊,哎这就是命!
2011-01-11 13:38:34
假设 test目录下有 1 2 3 4 5 这5个目录

现在要将 3 4 5目录tar打包,1和2目录不要

命令如下:
tar -zcvf test.tar.gz --exclude=1 --exclude=2 test

tar -zcvf test.tar.gz --exclude=test/1 --exclude=test/2 test
看man tar帮助,--exclude后面跟的好像是正则

注意: 要打包的test必须在命令最后,不然没有效果.
 
将 /etc/ 内的所有文件备份下来,并且保存其权限!

tar -zxvpf /tmp/etc.tar.gz /etc

#这个 -p 的属性是很重要的,尤其是当您要保留原本文件的属性时!
在 /home 当中,比 2010/06/01 新的文件才备份

tar -N '2010/06/01' -zcvf home.tar.gz /home
备份 /home, /etc ,但不要 /home/dmtsai

tar --exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc
 <<   1   2   3   >>   页数 ( 1/3 )

我最近发表的评论

LAMP搭建论坛 回复
汗哒哒...
业务升级风险及其.. 回复
大牛膜拜下。写的不错
varnish pipe 和p.. 回复
总结的不错,受用了
基于Centos6.2 X6.. 回复
有doc嘛求共享哈哈
关闭CentOS6启动.. 回复
看不到硬件自检信息,服务启动失败..