https://linux.cn/article-8310-1.html#3_2458

====================================
[root@iz2ze0upl89i15wngnott5z tmp]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
[root@iz2ze0upl89i15wngnott5z tmp]# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noar
ch.rpm
Retrieving http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
Preparing...                          ################################# [100%]
Updating / installing...
   1:elrepo-release-7.0-2.el7.elrepo  ################################# [100%]
[root@iz2ze0upl89i15wngnott5z tmp]# yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
Loaded plugins: fastestmirror
Repository base is listed more than once in the configuration
Repository updates is listed more than once in the configuration
Repository extras is listed more than once in the configuration
elrepo-kernel                                                                    | 2.9 kB  00:00:00    
elrepo-kernel/primary_db                                                         | 1.7 MB  00:00:25    
Loading mirror speeds from cached hostfile
* elrepo-kernel: ftp.ne.jp
Available Packages
kernel-lt.x86_64                                    4.4.75-1.el7.elrepo                    elrepo-kernel
kernel-lt-devel.x86_64                              4.4.75-1.el7.elrepo                    elrepo-kernel
kernel-lt-doc.noarch                                4.4.75-1.el7.elrepo                    elrepo-kernel
kernel-lt-headers.x86_64                            4.4.75-1.el7.elrepo                    elrepo-kernel
kernel-lt-tools.x86_64                              4.4.75-1.el7.elrepo                    elrepo-kernel
kernel-lt-tools-libs.x86_64                         4.4.75-1.el7.elrepo                    elrepo-kernel
kernel-lt-tools-libs-devel.x86_64                   4.4.75-1.el7.elrepo                    elrepo-kernel
kernel-ml.x86_64                                    4.11.8-1.el7.elrepo                    elrepo-kernel
kernel-ml-devel.x86_64                              4.11.8-1.el7.elrepo                    elrepo-kernel
kernel-ml-doc.noarch                                4.11.8-1.el7.elrepo                    elrepo-kernel
kernel-ml-headers.x86_64                            4.11.8-1.el7.elrepo                    elrepo-kernel
kernel-ml-tools.x86_64                              4.11.8-1.el7.elrepo                    elrepo-kernel
kernel-ml-tools-libs.x86_64                         4.11.8-1.el7.elrepo                    elrepo-kernel
kernel-ml-tools-libs-devel.x86_64                   4.11.8-1.el7.elrepo                    elrepo-kernel
perf.x86_64                                         4.11.8-1.el7.elrepo                    elrepo-kernel
python-perf.x86_64                                  4.11.8-1.el7.elrepo                    elrepo-kernel
[root@iz2ze0upl89i15wngnott5z tmp]# yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
[root@iz2ze0upl89i15wngnott5z tmp]# yum --enablerepo=elrepo-kernel install kernel-ml
Loaded plugins: fastestmirror
Repository base is listed more than once in the configuration
Repository updates is listed more than once in the configuration
Repository extras is listed more than once in the configuration
elrepo                                                                           | 2.9 kB  00:00:00    
elrepo/primary_db                                                                | 427 kB  00:00:04    
Loading mirror speeds from cached hostfile
* elrepo: ftp.ne.jp
* elrepo-kernel: ftp.ne.jp
Resolving Dependencies
--> Running transaction check
---> Package kernel-ml.x86_64 0:4.11.8-1.el7.elrepo will be installed
--> Finished Dependency Resolution

Dependencies Resolved

========================================================================================================
Package              Arch              Version                          Repository                Size
========================================================================================================
Installing:
kernel-ml            x86_64            4.11.8-1.el7.elrepo              elrepo-kernel             41 M

Transaction Summary
========================================================================================================
Install  1 Package

Total download size: 41 M
Installed size: 185 M
Is this ok [y/d/N]: y
Downloading packages:
kernel-ml-4.11.8-1.el7.elrepo.x86_64. 16% [====                       ]  67 kB/s | 6.6 MB  00:08:46

vi /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DEFAULT=0
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet net.ifnames=0"
GRUB_DISABLE_RECOVERY="true"

[root@iz2ze0upl89i15wngnott5z tmp]# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.11.8-1.el7.elrepo.x86_64
Found initrd image: /boot/initramfs-4.11.8-1.el7.elrepo.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-514.26.1.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-514.26.1.el7.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-514.6.2.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-514.6.2.el7.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-327.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-327.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-3c6ff97c6fbe4598b53fd04e08937468
Found initrd image: /boot/initramfs-0-rescue-3c6ff97c6fbe4598b53fd04e08937468.img
done
基于Red Hat Enterprise Linux 7的自由发布源,CentOS 7分支继承了始终能获得最新内核安全更新的特性。今天,系统团队发布了一个非常重要的补丁,对近期发现的4个漏洞进行了及时修复,并推荐用户尽快安装补丁,升级至kernel-3.10.0-514.10.2.el7。

From:http://www.cnbeta.com/articles/soft/590259.htm


升级步骤:jackxiang.com/post/9319/
安装成功:
http://blog.csdn.net/ch593030323/article/details/53571807
默认的ls是由"ls --color=auto"组成的,假如某个目录中的文件特别多,我不希望显示颜色(可以加快显示),那就需要指定单独的参数。

[root@localhost ~]# ls --color=never
[root@localhost ~]# ls --color=any
[root@localhost ~]# ls --color=always

来自:http://www.cnblogs.com/t-road/p/6830037.html
实践如下:



在Linux下给grep命令添加颜色

Java代码 复制代码 收藏代码
grep --color "test" test.json  
[java] view plain copy print?
grep --color "test" test.json  

自动给grep加颜色

Java代码 复制代码 收藏代码
vim ~/.bashrc  
alias grep='grep --color'  
source ~/.bashrc  
[java] view plain copy print?
vim ~/.bashrc  
alias grep='grep --color'  
source ~/.bashrc  

在管道中的其他程序也可以有颜色

这里用到grep的一个参数--color,color有三个值供选择:never、always、auto。always和auto的区别就是,always会在任何情况下都给匹配字段加上颜色标记,当通过管道或重定向时就会多出一些控制字符,结果会变成
export ^[[1;32m^[[KGREP^[[m^[[K_OPTIONS='--color=always'
export ^[[1;32m^[[KGREP^[[m^[[K_COLOR='1;32'
而auto则只在输出到终端时才加上颜色。
可以在.bashrc里加上
export GREP_OPTIONS='--color=auto'
来实现高亮匹配,具体用什么颜色,可以通过
export GREP_COLOR='a;b' #默认是1;31,即高亮的红色
来设置,其中:
a可以选择:【0,1,4,5,7,8】
0 关闭所有属性
1 设置高亮度
4 下划线
5 闪烁
7 反显
8 消隐

Java代码 复制代码 收藏代码
vim ~/.bashrc  
export GREP_OPTTIONS='--color=always'  
source ~/.bashrc  

来自:http://blog.csdn.net/diy534/article/details/7025640
monaco字体是苹果系统下的字体,非常的好看,是我最喜欢的字体没有之一。现在我们就来在ubuntu下安装这个漂亮的字体
第一步:
             进入github下载这个字体,github地址是https://github.com/cstrap/monaco-font。我们选择download zip的压缩包就可以。
第二步:
             进入本地下载目录,解压刚刚下载的压缩包,进入解压后的文件夹,我们会看到这几个文件
             install-font-archlinux.sh
             install-font-centos.sh
             install-font-gentoo.sh
             install-font-ubuntu.sh
             README.md
             接下来我们打开README.md文件,里面写的很详细,如何安装,ttf文件的下载链接都有
第三步:
             在README.md中有一行这样的命令./install-font-ubuntu.sh http://usystem.googlecode.com/files/MONACO.TTF,但是googlecode已经关闭了,所以我们要在README.md中另外找个下载链接。我用的是https://github.com/todylu/monaco.ttf/blob/master/monaco.ttf?raw=true这个链接。
第四步:
             打开终端进入解压后的目录执行sudo ./install-font-ubuntu.sh https://github.com/todylu/monaco.ttf/blob/master/monaco.ttf?raw=true这个命令,OK安装完成。这样我们就可以把终端和文本编辑器的字体设置成monaco了,你所用的开发工具也一样可以使用这个字体了。完美。



./install-font-ubuntu.sh http://usystem.googlecode.com/files/MONACO.TTF
来自:http://blog.csdn.net/qq_26990831/article/details/51847416
字体下载:http://vdisk.weibo.com/s/IYNWXYSqrtI
less /root/.bash_history
-----------------------------------------------------------------------------------------------------------------------------------------
vi /etc/profile

export HISTTIMEFORMAT="%F %T `who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'` "
sudo su -
-bash: HISTTIMEFORMAT: readonly variable

cd /etc/profile.d/
grep -r "HISTTIMEFORMAT" ./
./hq.sh:        export HISTTIMEFORMAT="%Y.%m.%d-%H:%M:%S "
./hq.sh:        readonly HISTTIMEFORMAT HISTSIZE HISTFILE ORIGNALUSER USERIP IPLIST PROMPT_COMMAND

在这儿原来 vi /etc/profile.d/hq.sh:

#EXPORTS
        export HISTTIMEFORMAT="%Y.%m.%d-%H:%M:%S "
        export HISTSIZE=4096
        export HISTFILE="$histDir/${username}/${userIP}.hist.$DT"
        export ORIGNALUSER=`$ECHO $username`
        export USERIP=`$ECHO $userIP`
        export IPLIST=$(/sbin/ip ad sh |$GREP inet |$GREP -v inet6|awk -F' ' '{print $2}'|awk -F'/' '{print $1}' |
$GREP -v '127.0.0.1'|tr -s "\n" "," |sed "s/|$//g")
        export PROMPT_COMMAND='{ ec=$?; read seq time cmd < <(history 1); [ -z "$time" ] || { '$ECHO' "$time|$IPLI
ST|${ORIGNALUSER},$(whoami)|$(pwd)|$cmd|$ec|$USERIP" >> '$histDir'/`'$DATE' +%Y.%m.%d`_history; '$LOGGER' -t "audi
t.hist" -p 7 "$USERIP|${ORIGNALUSER}|$(whoami)|$(pwd)|$ec|$cmd"; } }'
        readonly HISTTIMEFORMAT HISTSIZE HISTFILE ORIGNALUSER USERIP IPLIST PROMPT_COMMAND


http://awesomeops.blogspot.com/2014/10/there-are-lot-of-possibilities-to-track.html

为何出现readonly的原因:

对于只读变量而言,若用户对其值进行修改,则会立即报错。例如,使用该指令定义一个只读变量"test",并且将其值初始化为"ok",输入如下命令:
readonly test='ok'
那么当用户直接修改该只读变量时,就会被报错,如下所示:
[root@localhost ~]# test='my' #试图修改只读变量的值 -bash: test: readonly variable
当用户试图修改只读变量的值时,会被提示该变量为只读变量。


实践:
readonly test='ok'  
test='my'
-bash: test: 只读变量



Linux查看History记录加时间,这个对于系统管理员还是很有帮助的,原因不解释,你懂得!
ora11g$ history  |  more  
1    rlwrap sqlplus / as sysdba
2    rlwrap sqlplus / as sysdba
3    date
4    rlwrap sqlplus / as sysdba
  但是这里只显示了命令,并没有显示执行命令的时间,因为保存历史命令的~/.bash_history里并没有保存时间。  
通过设置环境变量 export HISTTIMEFORMAT="%F %T `whoami` " 给history加上时间戳  
ora11g$ export HISTTIMEFORMAT="%F %T `whoami` "  
ora11g$ history
1  2014-03-25 21:29:53 oracle rlwrap sqlplus / as sysdba
2  2014-03-25 21:29:59 oracle rlwrap sqlplus / as sysdba  
3 2014-03-25 21:31:23 oracle date
4 2014-03-25 21:31:43oracle rlwrap sqlplus / as sysdba
可以看到,历史命令的时间,用户已经加上了,但是.bash_history里并没有加上这个时间。
其实这个时间记录是保存在当前shell进程内存里的,如果你logout并且重新登录的话会发现你上次登录时执行的那些命令的时间戳都为同一个值,即当时logout时的时间。  

尽管如此,对于加上screen的bash来说,这个时间戳仍然可以长时间有效的,毕竟只要你的server不重启,screen就不会退出,因而这些时间就能长时间保留。
你在root用户下也可以使用echo 'export HISTTIMEFORMAT="%F %T `whoami` "' >> /etc/profile 然后source一下就OK


===
当你从命令行执行 history 命令后,通常只会显示已执行命令的序号和命令本身。如果你想要查看命令历史的时间戳,那么可以执行:


# export HISTTIMEFORMAT='%F %T '
# history | more
1 2008-08-05 19:02:39 service network restart
2 2008-08-05 19:02:39 exit
3 2008-08-05 19:02:39 id
4 2008-08-05 19:02:39 cat /etc/redhat-release

注意:这个功能只能用在当 HISTTIMEFORMAT 这个环境变量被设置之后,之后的那些新执行的 bash 命令才会被打上正确的时间戳。在此之前的所有命令,都将会显示成设置 HISTTIMEFORMAT 变量的时间。

来自:
http://blog.csdn.net/needle2/article/details/7490583
http://blog.itpub.net/27144762/viewspace-1129567/
背景:组网相关的网络知识,网络划分啥的有一个大体的了解,无它。

有一B类网络,其子网掩码为 255.255.240.0,求每个子网的最大主机数
给出求解过程
子网掩码 255.255.240.0
化成二进制得 11111111 11111111 11110000 00000000
子网号里面的1代表网络号 0代表主机号 所以有 12位为0
即最大主机号为 2的12次方
又因为全0和全1的不能分配给主机地址(主机位全为0是网络地址,全为1是广播地址)
所以实际的主机数为 2的12次方减去2
即最大主机数为 4096-2=4094个
子网掩码 255.255.240.0
化成二进制得 11111111 11111111 11110000 00000000
子网号里面的1代表网络号 0代表主机号 所以有 12位为0
即最大主机号为 2的12次方
又因为全0和全1的不能分配给主机地址(主机位全为0是网络地址,全为1是广播地址)
所以实际的主机数为 2的12次方减去2 (减二是指去掉一个网络地址和一个广播地址)
即最大主机数为 4096-2=4094个

来自:https://zhidao.baidu.com/question/43544478.html
背景:发现df 特别慢,用strace df -h ,发现卡在/mnt/backup,想cd /mnt卡住了,于是,怎么办?发现NFS的Server端都宕机了。
cat /proc/mounts  
umount -lf   /mnt/backup
umount: only root can do that
Root:
umount -lf   /mnt/backup
More: http://justwinit.cn/post/6800/
-------------------------------------------------------------------------------------
这个问题是第二次遇到了。这次一定要记下来,免得日后麻烦!!
问题描述:

有两台服务器,其中一台向另一台通过nfs共享分区,如下:

server A: nfs server
server B: nfs Client

事件发生: Server A,B 因故障同时重启。 重启后,用putty登陆到server A ,运行‘df’命令:
           $ df

     $ Filesystem           1K-blocks      Used Available Use% Mounted on

    /dev/sda5             80632188   8899080  67636940  12% /

    none                   4086484         0   4086484   0% /dev/shm

    /dev/sda2            201582252  32076524 159265900  17% /opt

    /dev/sda3            201582252  44511180 146831244  24% /fs

    /dev/sda7             20161172    332916  18804116   2% /usr/local

    /dev/sda8             20161172     78360  19058672   1% /tmp

           $(没有出现这个命令提示符)  
        
无奈,只好再用putty 登陆Server A ,将 df 进程kill......


只好尝试重新mount

$mount -t nfs B:/data /mnt/data

failed: RPC Error: Program not registered


哦~~~ ,原来B的nfs 服务没有start...  登陆B:
      $serive nfs restart

重新再A上运行df,仍然死掉...

想到先卸载,在挂载:

$umount /mnt/data

device is busy 。



运行fuser -mk /mnt/data 杀掉访问/mnt/data所有进程。

/mnt/data: Stale NFS file handle



在server A 运行 A , ok ~~~

重新mount -t nfs B:/data /mnt/data  打完收工。

来自:http://blog.csdn.net/daniel_cao_/article/details/4584443
rpm -ihv python-simplejson-2.0.9-8.el5.x86_64.rpm
warning: waiting for transaction lock on /var/lib/rpm/__db.000

rm -f /var/lib/rpm/__db.*
rpm --rebuilddb
yum clean all


再安装也就好了:
rpm -ihv python-simplejson-2.0.9-8.el5.x86_64.rpm
Preparing...                ########################################### [100%]
   1:python-simplejson      ########################################### [100%]
================================================================
故障现象:
[root@localhost Mysql4.1.14.Rhel3]# rpm -ivh MySQL*
warning: waiting for transaction lock on /var/lib/rpm/__db.000

解决方法:
   因为prm数据库出现损坏导致,可能导致多数rpm软件的升级、安装或者删除都会有问题。
此错误,请以root身份输入以下命令:
rm -f /var/lib/rpm/__db.*
rpm --rebuilddb
yum clean all

来自:http://blog.csdn.net/yunsongice/article/details/5587631
fsck
fsck from util-linux-ng 2.17.2
e2fsck 1.41.12 (17-May-2010)
/dev/sda3: recovering journal
Error reading block 105417495 (Attempt to read block from filesystem resulted in short read).  Ignore error<y>? yes

Force rewrite<y>? yes

fsck.ext4: Bad magic number in super-block while trying to re-open /dev/sda3
e2fsck: io manager magic bad!

============================================
尽管上面没有啥文件,我选了Yes,于是出了问题:
fsck
-bash: /sbin/fsck: Input/output error
-------------------------------------------------
要选No:

尝试执行了一下fsck 直接出现了 修复提示,无任何异常!

如果出现这样的提示,就需要小心:

root@test ~]# fsck
fsck 1.35 (28-Feb-2004)
e2fsck 1.35 (28-Feb-2004)
/dev/sda1 is mounted.

WARNING!!! Running e2fsck on a mounted filesystem may cause
SEVERE filesystem damage.

Do you really want to continue (y/n)? no

check aborted.
[root@test ~]#
一定要选择NO,先拆卸文件系统,否则 对文件系统造成毁灭性的打击。


来自:http://blog.csdn.net/snowfoxmonitor/article/details/19121531
从网上搜索到方法进行解决:
cat /etc/zookeeper/conf/zoo.cfg
找到dataDir=/var/lib/zookeeper
切换到路径/var/lib/zookeeper
cd /var/lib/zookeeper
查看目录下的文件:
ls
存在version-2
删除version-2
mv ./version-2 ./version-2.bak
然后在zookeeper的实例中添加角色主机,启动成功。

看了老外的文章,下面是处理方法:
more /etc/zookeeper/conf.dist/zoo.cfg
找到datadir
[root@slave2 zookeeper]# pwd
/var/lib/zookeeper
[root@slave2 zookeeper]# ls
myid version-2 version-2.bak
清空version-2目录下的所有文件

来自:http://www.linuxdiyf.com/linux/16941.html
pmap -p pid
背景:突然Mount的磁盘脱落挂载了,是不是有人上去做过安全给搞丢了?想看看都是谁?

last -20



lastlog |less




Linux下查看用户登陆历史记录,可以用root用户下的last命令查看:
1.查看单个用户的操作历史
[root@DB-Server ~]# cat /home/username/.bash_history
#username要查看的用户名
2.使用root登陆可查看用户登陆历史
[root@DB-Server ~]# su root
[root@DB-Server ~]# last -10
root     pts/1        :0.0             Wed Dec 18 09:54   still logged in  
root     pts/4        :0.0             Wed Dec 18 09:43 - 09:48  (00:04)    
root     pts/1        :0.0             Wed Dec 18 09:43 - 09:48  (00:05)    
root     pts/3        192.168.103.79   Wed Dec 18 09:41 - 12:40  (02:59)    
root     pts/4        :0.0             Wed Dec 18 09:28 - 09:30  (00:01)    
root     pts/3        :0.0             Wed Dec 18 09:27 - 09:30  (00:02)    
root     pts/2        192.168.103.29   Wed Dec 18 09:27   still logged in  
root     pts/1        :0.0             Wed Dec 18 09:27 - 09:42  (00:15)    
root     pts/2        :0.0             Wed Dec 18 09:23 - 09:25  (00:01)    
root     pts/1        :0.0             Wed Dec 18 09:22 - 09:25  (00:02)
#查看最近10次用户历史操作记录
last 命令:

功能说明:列出目前与过去登入系统的用户相关信息。

语 法:last [-adRx][-f ][-n ][帐号名称…][终端机编号…]

参 数:

-a 把从何处登入系统的主机名称或IP地址,显示在最后一行;

-d 将IP地址转换成主机名称;

-f 指定记录文件;

-n 或- 设置列出名单的显示列数;

-R 不显示登入系统的主机名称或IP地址;

-x 显示系统关机,重新开机,以及执行等级的改变等信息;

lastlog可简单查看所有用户最后一次的登陆时间。

来自:https://zhidao.baidu.com/question/91897351.html
rpm -ihv python-simplejson-2.0.9-8.el5.x86_64.rpm
warning: waiting for transaction lock on /var/lib/rpm/__db.000

rm -f /var/lib/rpm/__db.*
rpm --rebuilddb
yum clean all


再安装也就好了:
rpm -ihv python-simplejson-2.0.9-8.el5.x86_64.rpm
Preparing...                ########################################### [100%]
   1:python-simplejson      ########################################### [100%]
================================================================
故障现象:
[root@localhost Mysql4.1.14.Rhel3]# rpm -ivh MySQL*
warning: waiting for transaction lock on /var/lib/rpm/__db.000

解决方法:
   因为prm数据库出现损坏导致,可能导致多数rpm软件的升级、安装或者删除都会有问题。
此错误,请以root身份输入以下命令:
rm -f /var/lib/rpm/__db.*
rpm --rebuilddb
yum clean all

来自:http://blog.csdn.net/yunsongice/article/details/5587631
结论:僵尸进程 杀杀杀  杀不死 重启机器  
The system is going down for halt NOW!
====================================================

uptime
16:22:19 up 735 days,  5:48,  7 users,  load average: 59.70, 58.29, 54.91
close_wait状态出现的原因是被动关闭方未关闭socket造成
tcp      179      0 127.0.0.1:80                127.0.0.1:4184              CLOSE_WAIT  -                  
tcp      175      0 127.0.0.1:80                127.0.0.1:6038              CLOSE_WAIT  -                  
tcp      177      0 127.0.0.1:80                127.0.0.1:4121              CLOSE_WAIT  -  

netstat -atlunp|grep 80|grep CLOSE_WAIT|wc
3716   26012  405044


----查看当前进程打开了多少句柄数

# lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr|more
162 34255
162 33984
162 33525
162 33356 
........

其中第一列是打开的句柄数,第二列是进程ID。


[root@itv-api_php_bj_syq_10_70_XX_XX www]# service nginx restart
Stopping nginx:                                            [  OK  ]
Starting nginx: nginx: [warn] conflicting server name "common.itv.cntv.cn" on 0.0.0.0:80, ignored
nginx: [warn] conflicting server name "api.itv.cntv.cn" on 0.0.0.0:80, ignored
nginx: [warn] conflicting server name "api.itv.cctv.com" on 0.0.0.0:80, ignored
nginx: [warn] conflicting server name "newcomment.cntv.cn" on 0.0.0.0:80, ignored
nginx: [warn] conflicting server name "common.newcomment.cntv.cn" on 0.0.0.0:80, ignored
nginx: [warn] conflicting server name "newcomment.cctv.com" on 0.0.0.0:80, ignored


strace  -f -p 56014  -p 56015  -p 56016  -p 56017  -p 56018  -p 56019  -p 56020  -p 56021  -p 56022  -p 56023  -p 56024  -p 56025
attach: ptrace(PTRACE_ATTACH, ...): Operation not permitted
Process 56015 attached - interrupt to quit
Process 56016 attached - interrupt to quit
Process 56017 attached - interrupt to quit
Process 56018 attached - interrupt to quit
Process 56019 attached - interrupt to quit

不是僵尸? 那就是孤儿

http://blog.csdn.net/wesleyluo/article/details/6079139
http://blog.chinaunix.net/uid-10257388-id-2967161.html
背景:面对一个不熟悉上面所跑哪些应用的16核心机器,出现负载到56这样的情况,而通过top命令后按P看CPU高的,也并不高,此时,可以想到的是某个核心太高,因为top里面默认的值是平均值,16个核心平均下来其CPU使用效率并不高,鉴于此,得在top输出时按下1,然后定位到某个核心高,才能有的放矢的查看该CPU上跑了哪些应用,贴个简单的命令吧,具体实践排查详细过程在:ps -eo 'psr pid pcpu command'|sort -k1 -n|grep -E '^ {1,2}(9|12|13|15) '|less  

ps -eo 'psr pid pcpu command'|sort -k1 -n|grep -E '^ {1,2}(9|12|13|15) '|less  



Top命令下按1后第三行显示比较关键:
Cpu0  :  0.0%us,  0.0%sy,  0.0%ni,  0.0%id,100.0%wa,  0.0%hi,  0.0%si,  0.0%st
top命令的第三行“Cpu(s):  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st”显示的内容依次为“用户空间占用CPU百分比”、“内核空间占用CPU百分比”、“用户空间内改变过优先级的进程占用CPU百分比”、“空闲CPU百分比”、“等待输入输出CPU时间百分比”、“CPU服务于硬件中断所耗费的时间总额”、“CPU服务软中断所耗费的时间总额”、“Steal Time”

Kipmi0 占用100% CPU1核:
https://yq.aliyun.com/articles/15198

方法1:使用iotop工具
这是一个python脚本工具,使用方法如:iotop -o


方法2:使用工具dmesg
使用dmesg之前,需要先开启内核的IO监控:
echo 1 >/proc/sys/vm/block_dump或sysctl vm.block_dump=1


然后可以使用如下命令查看IO最重的前10个进程:
dmesg |awk -F: '{print $1}'|sort|uniq -c|sort -rn|head -n 10


方法3:使用命令“iostat -x 1“确定哪个设备IO负载高:
# iostat -x 1 3
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.06    0.00    0.99    1.09    0.00   97.85


Device:    rrqm/s wrqm/s   r/s   w/s  rsec/s  wsec/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
sda          0.49  17.29  1.74  6.75   23.47  200.18    11.73   100.09    26.33     0.10   12.25   5.73   4.87


找“await”值最大的设备(Device),如上的结果即为sda。


然后使用mount找到sda挂载点,再使用fuser命令查看哪些进程在访问,如:
# fuser -vm /data

==================================================================================
进程占用cpu资源过多负载高的原因分析及解决步骤
2011-10-20 10:30:05
标签:负载高 nginx 休闲 apache linux
觉得写的非常好,以后会用到 ,所以转了过来,一切归原作者所有!
转自这里
服务器环境:redhat linux 5.5 , nginx , phpfastcgi


在此环境下,一般php-cgi运行是非常稳定的,但也遇到过php-cgi占用太多cpu资源而导致服务器响应过慢,我所遇到的php-cgi进程占用cpu资源过多的原因有:


1. 一些php的扩展与php版本兼容存在问题,实践证明 eAccelerater与某些php版本兼容存在问题,具体表现时启动php-cgi进程后,运行10多分钟,奇慢无比,但静态资源访问很快,服务器负载也很正常(说明nginx没有问题,而是php-cgi进程的问题),解决办法就是从php.ini中禁止掉eAccelerater模块,再重启 php-cgi进程即可


2. 程序中可能存在死循环,导致服务器负载超高(使用top指令查看负载高达100+), 需要借助Linux的proc虚拟文件系统找到具体的问题程序


3. php程序不合理使用session , 这个发生在开源微博记事狗程序上,具体表现是有少量php-cgi进程(不超过10个)的cpu使用率达98%以上, 服务器负载在4-8之间,这个问题的解决,仍然需要借助Linux的proc文件系统找出原因。


4. 程序中存在过度耗时且不可能完成的操作(还是程序的问题),例如discuz x 1.5的附件下载功能: source/module/forum/forum_attachement.php中的定义
function getremotefile($file) {
global $_G;
@set_time_limit(0);
if(!@readfile($_G['setting']['ftp']['attachurl'].'forum/'.$file)) {
$ftp = ftpcmd('object');
$tmpfile = @tempnam($_G['setting']['attachdir'], '');
if($ftp->ftp_get($tmpfile, 'forum/'.$file, FTP_BINARY)) {
@readfile($tmpfile);
@unlink($tmpfile);
} else {
@unlink($tmpfile);
return FALSE;
}
}
return TRUE;
}  


没有对传入的参数作任何初步检查,而且设置了永不超时,并且使用readfile一次读取超大文件,就可能存在以下问题:
A. 以http方式读取远程附件过度耗时
B. FTP无法连接时,如何及时反馈出错误?
C. readfile是一次性读取文件加载到内存中并输出,当文件过大时,内存消耗惊人


根据实验发现采用readfile一次性读取,内存消耗会明显增加,但是CPU的利用率会下降较多。如果采用分段读取的方式,内存消耗会稍微下降,而CPU占用却会明显上升。


对discuz x 1.5的这个bug较好解决方法就是后台重新正确设置远程附件参数。


以下是我逐步整理的故障排除步骤:


1. 得到占用cpu资源过多的php-cgi进程的pid(进程id), 使用top命令即可,如下图:
经过上图,我们发现,有两个php-cgi进程的cpu资源占用率过高,pid分别是10059,11570,这一般都是程序优化不够造成,如何定位问题的php程序位置?


2. 找出进程所使用的文件
/proc/文件系统保存在内存中,主要保存系统的状态,关键配置等等,而/proc/目录下有很多数字目录,就是进程的相关信息,如下图,我们看看进程10059正在使用哪些文件?
显然,使用了/home/tmp/sess_*文件,这明显是PHP的session文件, 我们查看这个session文件的内容为:view_time|123333312412


到这里,我们已经可以怀疑是由于php程序写入一个叫view_time的session项而引起, 那么剩余的事件就是检查包含view_time的所有php文件,然后修改之(比如改用COOKIE),这实话, 这个view_time并非敏感数据,仅仅记录用户最后访问时间,实在没必要使用代价巨大的session, 而应该使用cookie。


3. 找出有问题的程序,修改之
使用vi编辑以下shell程序(假设网站程序位于/www目录下)
#!/bin/bash
find /www/ -name "*.php" > list.txt

f=`cat ./list.txt`

for n in $f
do
r=`egrep 'view_time' $n`
if [ ! "$r" = "" ] ; then
echo $n
fi
done  
运行这个shell程序,将输出包含有view_time的文件, 对记事狗微博系统,产生的问题位于modules/topic.mod.class文件中
来自这里
大家好,公司有一台服务器上部署了mysql+php+apache!
但是发现apache有一个httpd进程占用很高的cup,请教有没有什么命令能查看到时什么文件调用了这个进程?

lsof -p 13321


http://blog.csdn.net/aquester/article/details/51557879
http://blog.chinaunix.net/uid-7934175-id-4013411.html
Linux字符串md5,注意得echo -n ,-n就是去空格,如果不加 -n则会有空格输出:
echo -n re0XY6?ki|md5sum|awk '{print $1}'
270899509597f424b626b14034622c89
------------------------------------------------------------
mysql> select md5("re0XY6?ki");
+----------------------------------+
| md5("re0XY6?ki")                 |
+----------------------------------+
| 270899509597f424b626b14034622c89 |
+----------------------------------+
1 row in set (0.00 sec)
=============================================

Linux系统有一个自带的生成密码的命令,这个命令异常强悍,可以帮助我们生成随机密码,要知道,现在的黑客无处不在,想一个难猜的密码还真的下点功夫,有了这个密码生成工具,就可以为管理员节省好多脑细胞啊,下面看下这个命令的使用:

[root@CentOS6 game-dir]# mkpasswd

JI>s64tyv

[root@centos6 game-dir]# mkpasswd -l 12

e/Hwyw8Kied6

[root@centos6 game-dir]# mkpasswd -l 12 -d 3

zas4Ery+5K8l

[root@centos6 game-dir]# mkpasswd -l 12 -c 4

ff9bT7b}npmM

[root@centos6 game-dir]# mkpasswd -l 12 -C 4

x3TwqtSKh}2T

[root@centos6 game-dir]# mkpasswd -l 12 -s 4

px}[aO8cF':8

[root@centos6 game-dir]# mkpasswd -l 18 -s 4 -c 4 -C 4

;.8zW3dGiwmb@dyWO&

下面来简单介绍一下常用的参数含义:

usage: mkpasswd [args] [user]

where arguments are:

-l #      (length of password, default = 7)

                  指定密码的长度,默认是7位数

-d #      (min # of digits, default = 2)

                  指定密码中数字最少位数,默认是2位

-c #      (min # of lowercase chars, default = 2)

                  指定密码中小写字母最少位数,默认是2位

-C #      (min # of uppercase chars, default = 2)

                  指定密码中大写字母最少位数,默认是2位

-s #      (min # of special chars, default = 1)

                  指定密码中特殊字符最少位数,默认是1位

-v        (verbose, show passwd interaction)

                  这个参数在实验的时候报错,具体不知道。
yum install -y sysstat

查看所有CPU内每一个处理器负载,刷新频率1S(根据物理CPU个数)
mpstat -P ALL 1

点击在新窗口中浏览此图片


查看指定的处理器负载(-P 后的数字从0开始),刷新频率1S
mpstat -P 0 -P 1 1

点击在新窗口中浏览此图片

yum install -y iotop

查看进程IO
iotop

点击在新窗口中浏览此图片


cpu使用率低负载高,原因分析:
http://www.fblinux.com/?p=281


Linux 系统没有业务程序运行,通过 top 观察,类似如下图所示,CPU 很空闲,但是 load average 却非常高:
处理办法:
load average 是对 CPU 负载的评估,其值越高,说明其任务队列越长,处于等待执行的任务越多。
出现此种情况时,可能是由于僵死进程导致的。可以通过指令 ps -axjf  查看是否存在 D 状态进程。
D 状态是指不可中断的睡眠状态。该状态的进程无法被 kill,也无法自行退出。只能通过恢复其依赖的资源或者重启系统来解决。
From:https://help.aliyun.com/knowledge_detail/41225.html
背景:百度云是个好东西,Linux 下能命令行使用是最好不过的了。

yum-config-manager --add-repo=https://copr.fedoraproject.org/coprs/mosquito/myrepo/repo/epel-$(rpm -E %?rhel)/mosquito-myrepo-epel-$(rpm -E %?rhel).repo
-bash: yum-config-manager: 未找到命令


系统默认没有安装这个命令,这个命令在yum-utils 包里,可以通过命令yum -y install yum-utils 安装就可以了。
步骤一:先找到软件包安装路径
whereis yum-config-manager
yum-config-manager: /usr/bin/yum-config-manager /usr/share/man/man1/yum-config-manager.1.gz

步骤二:再根据RPM包的命令传入程序路径后反查到这个软件所属于哪个RPM包:
rpm -qf /usr/bin/yum-config-manager
yum-utils-1.1.31-40.el7.noarch

================================================================
CentOS 7 使用如下命令安装 bcloud:
# yum-config-manager --add-repo=https://copr.fedoraproject.org/coprs/mosquito/myrepo/repo/epel-$(rpm -E %?rhel)/mosquito-myrepo-epel-$(rpm -E %?rhel).repo
# yum localinstall http://li.nux.ro/download/nux/dextop/el$(rpm -E %rhel)/x86_64/nux-dextop-release-0-2.el$(rpm -E %rhel).nux.noarch.rpm
# yum install bcloud


来自:http://jingyan.baidu.com/article/4dc40848b761cbc8d846f172.html

实践如下:

yum-config-manager --add-repo=https://copr.fedoraproject.org/coprs/mosquito/myrepo/repo/epel-$(rpm -E %?rhel)/mosquito-myrepo-epel-$(rpm -E %?rhel).repo
已加载插件:fastestmirror
adding repo from: https://copr.fedoraproject.org/coprs/mosquito/myrepo/repo/epel-7/mosquito-myrepo-epel-7.repo
grabbing file https://copr.fedoraproject.org/coprs/mosquito/myrepo/repo/epel-7/mosquito-myrepo-epel-7.repo to /etc/yum.repos.d/mosquito-myrepo-epel-7.repo
repo saved to /etc/yum.repos.d/mosquito-myrepo-epel-7.repo




yum localinstall http://li.nux.ro/download/nux/dextop/el$(rpm -E %rhel)/x86_64/nux-dextop-release-0-2.el$(rpm -E %rhel).nux.noarch.rpm
依赖关系解决

=========================================================================================================================================================================================
Package                                     架构                            版本                                  源                                                               大小
=========================================================================================================================================================================================
正在安装:
nux-dextop-release                          noarch                          0-2.el7.nux                           /nux-dextop-release-0-2.el7.nux.noarch                          3.5 k
为依赖而安装:
epel-release                                noarch                          7-9                                   epel                                                             14 k

事务概要
=========================================================================================================================================================================================
安装  1 软件包 (+1 依赖软件包)

总计:18 k
安装:
  nux-dextop-release.noarch 0:0-2.el7.nux                                                                                                                                                

作为依赖被安装:
  epel-release.noarch 0:7-9                                                                                                                      



yum clean all


yum install bcloud
已加载插件:fastestmirror
Repository epel is listed more than once in the configuration
Repository epel-debuginfo is listed more than once in the configuration
Repository epel-source is listed more than once in the configuration
https://copr-be.cloud.fedoraproject.org/results/mosquito/myrepo/epel-7-x86_64/repodata/repomd.xml: [Errno 14] HTTPS Error 404 - Not Found
正在尝试其它镜像。
To address this issue please refer to the below knowledge base article

https://access.redhat.com/articles/1320623

If above article doesn't help to resolve this issue please create a bug on https://bugs.centos.org/

nux-dextop                                                                                                                                                        | 2.9 kB  00:00:00    
nux-dextop/x86_64/primary_db                                                  44% [=============================-                                      ]  32 kB/s | 745 kB  00:00:29 ETA




http://www.linuxdown.net/soft/2015/0127/3799.html
https://github.com/houtianze/bypy/blob/master/README.md



./gh
529960480-handle-gethostbyname
hostname=justwinit-php-mysql_bj_sjs_10_44_202_177
addr:127.0.0.1

来自:http://blog.csdn.net/zzz_781111/article/details/7372024
背景:在用Ansible的脚本初始化环境时,在CentOS5.x出现No Package matching 'cronie' found available,而在CentOS6.x上是OK的。
原因:centos6有些商家镜像没有带crontab,需要的话要自己安装,但是centos6和centos5安装crontab是不一样的,因为变更了一些依赖关系。

CentOS6.x:
/usr/bin/crontab -e
rpm -qf /usr/bin/crontab
cronie-1.4.4-15.el6_7.1.x86_64

注意:On CentOs 6 you can still install vixie-cron, but the real package is cronie:
yum install vixie-cron
或者
yum install cronie


[root@rh08 ~]# service crond restart
Stopping crond:                                            [  OK  ]
Starting crond:                                            [  OK  ]

CentOS5.x:
/usr/bin/crontab -e
rpm -qf  /usr/bin/crontab
vixie-cron-4.1-81.el5

crontab package in CentOS is vixie-cron.
yum install vixie-cron
service crond start
chkconfig crond on


service crond restart
Stopping crond:                                            [  OK  ]
Starting crond:                                            [  OK  ]


On CentOS 7 vixie-cron is not longer available, so you need to use cronie:
yum install cronie

From:http://www.zxsdw.com/index.php/archives/1151/
背景:在多台机器上同步一个文件,尤其是刚开始重装系统或没有ansible这样的运维工具,比如想批量给升级一下yum源,用rz 是可以的,如果十来台还成,上五十台就有点麻烦了。sshpass是个好东西,结合scp和shell能完成很多台机器的文件的拷贝,然后结合sudo把文件挪动到root才能去的地方。其实还有一个expect脚步也有这个自动捕获输出并自动输入密码。但如果是第一次连接,expect可能捕获的输出可能是yes啥的输出,spawn这个命令也是expect的rpm包的一个命令,但都得yum安装,这个引出新的安装问题,http://justwinit.cn/post/5089/,还是讲sshpass包。

关于sshpass:
rpm -qf /usr/bin/sshpass
sshpass-1.05-1.el6.x86_64

sshpass: 用于非交互的ssh 密码验证

ssh登陆不能在命令行中指定密码,也不能以shell中随处可见的,sshpass 的出现,解决了这一问题。它允许你用 -p 参数指定明文密码,然后直接登录远程服务器。 它支持密码从命令行,文件,环境变量中读取

$> sshpass -h

Usage: sshpass [-f|-d|-p|-e] [-hV] command parameters
   -f filename Take password to use from file
   -d number Use number as file descriptor for getting password
   -p password Provide password as argument (security unwise)
   -e Password is passed as env-var "SSHPASS"
   With no parameters - password will be taken from stdin

   -h Show help (this screen)
   -V Print version information
At most one of -f, -d, -p or -e should be used

sshpass [-f|-d|-p|-e] [-hV] command parameters 中的 command parameters 和使用交互式密码验证的使用方法相同

#从命令行方式传递密码

    $> sshpass -p user_password ssh user_name@192.168..1.2
    $> sshpass -p user_password scp -P22 192.168.1.2:/home/test/t .

#从文件读取密码

    $> echo "user_password" > user.passwd
    $> sshpass -f user.passwd ssh user_name@192.168..1.2

#从环境变量获取密码

    $> export SSHPASS="user_password"
    $> sshpass -e ssh user_name@192.168..1.2


源码位置:http://sourceforge.net/projects/sshpass/
摘录自:http://m.blog.csdn.net/article/details?id=7293274
分页: 2/22 第一页 上页 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 下页 最后页 [ 显示模式: 摘要 | 列表 ]