欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

Linux服务器管理日记分享

程序员文章站 2023-01-05 21:18:58
这篇文章主要介绍了Linux服务器管理日记,包含了日常管理的方方页面,持续更新中,需要的朋友可以参考下... 14-04-17...

1. 安装 webmin

复制代码
代码如下:

# 安装 webmin
cd /usr/local/ieternal/
mkdir download
cd download</p> <p>wget <a href="http://downloads.sourceforge.net/project/webadmin/webmin/1.660/webmin-1.660-1.noarch.rpm?r=http%3a%2f%2fwww.webmin.cn%2f&ts=1387801624&use_mirror=jaist">http://downloads.sourceforge.net/project/webadmin/webmin/1.660/webmin-1.660-1.noarch.rpm?r=http%3a%2f%2fwww.webmin.cn%2f&ts=1387801624&use_mirror=jaist</a></p> <p>rpm -u webmin-1.660-1.noarch.rpm </p> <p># 此时,可以通过: <a href="http://115.28.9.136:10000/">http://115.28.9.136:10000/</a> 进行访问,用户名,密码是root的.</p> <p>

2. ssh tunnel端口转发,端口代理


复制代码
代码如下:

##############################################
#### ssh tunnel; 经测试,已经打通
##############################################
# 公网服务器外网ip: 115.28.9.136
# 公网服务器内网ip: 10.144.7.195
# 内网服务器内网ip: 10.144.7.191</p> <p>### 1 先登录 115.28.9.136</p> <p>ssh <a href="mailto:root@115.28.9.136">root@115.28.9.136</a> -p 22</p> <p>#通过 webmin 修改 ssh配置,并应用变更
# 实质是 /etc/ssh/sshd_config 文件
gatewayports yes</p> <p>
### 2 在 136 上登录 10.144.7.191</p> <p>ssh <a href="mailto:root@10.144.7.191">root@10.144.7.191</a> -p 22</p> <p>### 3 在 10.144.7.191 上执行:
# 即通过此ssh后台登陆 195机器,监听了 195:19122端口,
# 此时访问 136:19122 的请求,相当于都转发到本地的22端口了。
# -nf 是后台命令的意思
ssh -nf 10.144.7.195 -r 19122:10.144.7.191:22</p> <p># 此时,客户端通过 115.28.9.136:19122 登录,实际上登陆的就是 10.144.7.191:22 服务器了。

3. 安装squid代理


复制代码
代码如下:

##### 1. 安装squid
yum -y remove squid
yum -y install squid</p> <p>##### 2. 修改配置文件
#搜索”http_access deny all”改为”http_access allow all”
# esc, /http_access 可以进行搜索
vim /etc/squid/squid.conf</p> <p># 执行以下修改</p> <p>#http_access deny connect !ssl_ports
http_access allow connect !ssl_ports</p> <p>#http_access deny all
http_access allow all</p> <p>#coredump_dir /var/spool/squid
coredump_dir /usr/local/ieternal/squid_cache</p> <p>##### 3. 设置缓存目录
##### !!!必须修改该目录的所属用户及用户组
mkdir /usr/local/ieternal/squid_cache
chown squid:squid /usr/local/ieternal/squid_cache
cd /usr/local/ieternal/squid_cache/
/usr/sbin/squid -k shutdown
/usr/sbin/squid -z</p> <p>##### 4. 启动
#/usr/sbin/squid
service squid start </p> <p>##### 5. 查看监听端口状态
netstat -ntl

4. 在内网机器上设置yum代理


复制代码
代码如下:

#### 在191上执行:设置代理</p> <p>#yum的代理可以单独设置
vim /etc/yum.conf
# 在最后加上
proxy=http://10.144.7.195:3128
# 也可以如此执行
#cp /etc/yum.conf /etc/yum.conf_original
#echo 'proxy=http://10.144.7.195:3128' >> /etc/yum.conf</p> <p>#在linux的命令行底下,一般的程序都是使用http_proxy和ftp_proxy这两个环境变量来获得代理设置的。</p> <p>#所以只要使用export http_proxy=10.144.7.195:3128就可以使用代理了。
#export http_proxy=10.144.7.195:3128</p> <p># 如果要设置系统级别的代理,使用如下语句:
#vim /etc/profile</p> <p>#http_proxy="10.144.7.195:3128"
#export_http_proxy

完整的命令如下所示:

复制代码
代码如下:

cp /root/.bash_profile /root/.bash_profile_bak_1231
echo 'http_proxy=10.144.7.195:3128' >> /root/.bash_profile
echo 'export http_proxy' >> /root/.bash_profile
source /root/.bash_profile
echo $http_proxy

此时,可以使用yum安装,更新软件了

5. 使用 kill 杀死某些僵死的进程


复制代码
代码如下:

# 查看含有tomcat的进程
ps -aux | grep tomcat</p> <p># 杀死指定的进程
# xxx 是看到的进程号
kill -9 xxx</p> <p># 重新启动tomcat
# ... ...


6. 远程主机签名更改的解决办法

因为重置了131服务器,所以从linux上再次登录时提示远程主机已更改,提示的信息如下:

复制代码
代码如下:

[root@ay1312181745044978b4z ~]# ssh 10.144.169.131
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ warning: remote host identification has changed! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
it is possible that someone is doing something nasty!
someone could be eavesdropping on you right now (man-in-the-middle attack)!
it is also possible that the rsa host key has just been changed.
the fingerprint for the rsa key sent by the remote host is
36:86:33:b9:61:f8:fc:92:df:0b:d7:b3:ae:e5:4e:fb.
please contact your system administrator.
add correct host key in /root/.ssh/known_hosts to get rid of this message.
offending key in /root/.ssh/known_hosts:2
rsa host key for 10.144.169.131 has changed and you have requested strict checking.
host key verification failed.

其实从上面的信息提示可以知道,需要修改 /root/.ssh/known_hosts 。解决方式是将此ip对应的行删除即可。
操作方式是使用 vi 或者 vim 打开该文件,然后按esc进入命令模式(如果按 a 或者 i 则进入编辑模式),并定位到需要删除的行,按 dd 即可删除一行。

复制代码
代码如下:

vim ~/.ssh/known_hosts

7. 安装rzsz

在xshell或者其他ssh客户端工具中,可以使用 rz来选择文件上传,也可以用 sz 选择文件下载。所以是个很好用的工具。

安装很简单:

复制代码
代码如下:

yum install lrzsz -y

下载文件示例:

复制代码
代码如下:

sz /etc/init.d/mysql

执行此命令后,会弹出一个对话框,选择本地存放路径后就开始下载. 但是对命令行显示可能会有些延迟,完成操作后再按一次回车即可。

至于rz的操作,就更简单了,先 cd 到需要上传的路径,然后执行 rz 命令即可. 然后也是弹出对话框,选择文件上传。

8.  查看磁盘空间使用情况


复制代码
代码如下:

# df -h
filesystem size used avail use% mounted on
/dev/xvda1 20g 6.1g 13g 33% /
tmpfs 939m 0 939m 0% /dev/shm
/dev/xvdb1 50g 21g 26g 45% /usr/local/ieternal

9. 查看当前目录的空间大小


复制代码
代码如下:

# du -ch --max-depth=1
4.5g ./video_source
270m ./client
8.5g ./video
23m ./family
14m ./sid
341m ./repository
20m ./guide
127m ./style
1.5g ./photo
2.0g ./music
3.0g ./video_dest
21g .
21g total

-c 是在最后做一个统计的信息, -h 是显示人工可读的统计信息,如270m, 4.5g,等。 最大深度设置为1. 更多选项可以使用 "man du" 来查看

10. 安装jdk


复制代码
代码如下:

# 查看可用列表
yum list java*
# 然后安装jdk7,openjdk6有bug,所以...
yum install java-1.7.0-openjdk* -y

检查是否安装正确:

复制代码
代码如下:

# java -version
java version "1.7.0_45"
openjdk runtime environment (rhel-2.4.3.4.el6_5-x86_64 u45-b15)
openjdk 64-bit server vm (build 24.45-b08, mixed mode)
# javac -version
javac 1.7.0_45

11.  设置 wget 代理


复制代码
代码如下:

echo 'https_proxy=http://10.144.7.195:3128/' >> $home/.wgetrc
echo 'http_proxy=http://10.144.7.195:3128/' >> $home/.wgetrc
echo 'ftp_proxy=http://10.144.7.195:3128/' >> $home/.wgetrc


12. 安装 tomcat


复制代码
代码如下:

# 创建下载目录
mkdir /usr/local/ieternal/download
# 进入下载目录
cd /usr/local/ieternal/download</p> <p># 下载文件
wget <a href="http://mirror.bit.edu.cn/apache/tomcat/tomcat-6/v6.0.37/bin/apache-tomcat-6.0.37.tar.gz">http://mirror.bit.edu.cn/apache/tomcat/tomcat-6/v6.0.37/bin/apache-tomcat-6.0.37.tar.gz</a>
# 解压文件
tar -zxf apache-tomcat-6.0.37.tar.gz
# 剪切目录
mv apache-tomcat-6.0.37 /usr/local/tomcat
# 进入tomcat配置目录
cd /usr/local/tomcat/conf/
# 备份原始的配置文件
cp -a /usr/local/tomcat/conf/server.xml /usr/local/tomcat/conf/server.xml_original</p> <p># 按需要编辑
vim /usr/local/tomcat/conf/server.xml

完整的一个示例如下: 其中配置了 2个主机域, 其中也包括默认域的配置,并将 根目录 与 upload 目录都映射到了自定义文件夹。

需要注意的是,默认是不能有汉字存在的,因为默认保存的是ansi编码。

复制代码
代码如下:

<?xml version='1.0' encoding='utf-8'?></p> <p><server port="8005" shutdown="shutdown"></p> <p> <!--apr library loader. documentation at /docs/apr.html -->
<listener classname="org.apache.catalina.core.aprlifecyclelistener" sslengine="on" />
<!--initialize jasper prior to webapps are loaded. documentation at /docs/jasper-howto.html -->
<listener classname="org.apache.catalina.core.jasperlistener" />
<!-- prevent memory leaks due to use of particular java/javax apis-->
<listener classname="org.apache.catalina.core.jrememoryleakpreventionlistener" />
<!-- jmx support for the tomcat server. documentation at /docs/non-existent.html -->
<listener classname="org.apache.catalina.mbeans.serverlifecyclelistener" />
<listener classname="org.apache.catalina.mbeans.globalresourceslifecyclelistener" /></p> <p> <!-- global jndi resources
documentation at /docs/jndi-resources-howto.html
-->
<globalnamingresources>
<!-- editable user database that can also be used by
userdatabaserealm to authenticate users
-->
<resource name="userdatabase" auth="container"
type="org.apache.catalina.userdatabase"
description="user database that can be updated and saved"
factory="org.apache.catalina.users.memoryuserdatabasefactory"
pathname="conf/tomcat-users.xml" />
</globalnamingresources></p> <p><!--
renfufei,20131229,not loadbalance
-->
<service name="catalina">
<executor name="tomcatthreadpool" nameprefix="catalina-exec-"
maxthreads="250" minsparethreads="20"/>
<connector port="80" protocol="http/1.1"
connectiontimeout="20000"
redirectport="8443"
compression="on"
compressionminsize="2048"
nocompressionuseragents="gozilla,traviata"
compressablemimetype="text/html,text/xml,text/javascript,text/css,text/plain,application/json,application/javascript,application/x-javascript"
/>
<connector port="8009" protocol="ajp/1.3" redirectport="8443" executor="tomcatthreadpool"/>
<engine name="catalina" defaulthost="<a href="http://www.renfufei.com">www.renfufei.com</a>">
<realm classname="org.apache.catalina.realm.userdatabaserealm"
resourcename="userdatabase"/>
<host name="<a href="http://www.renfufei.com">www.renfufei.com</a>" appbase="webapps"
unpackwars="true" autodeploy="true"
xmlvalidation="false" xmlnamespaceaware="false">
<alias>localhost</alias>
<alias>www.renfufei.cn</alias>
<alias>renfufei.com</alias>
<alias>renfufei.cn</alias>
<context docbase="/usr/local/renfufei/upload" path="/upload" />
<context docbase="/usr/local/renfufei/index" path="" />
</host>
<host name="m.renfufei.com" appbase="webapps"
unpackwars="true" autodeploy="true"
xmlvalidation="false" xmlnamespaceaware="false">
<alias>m.renfufei.com</alias>
<alias>m.renfufei.cn</alias>
<context docbase="/usr/local/renfufei/upload" path="/upload" />
<context docbase="/usr/local/renfufei/blog" path="" />
</host>
</engine>
</service></p> <p></server>


13.  安装ffmpeg转码程序

ffmpeg 是一个集播放,采集输入源,解码,转码,影音服务器这些功能的强大开源类库。我们主要用于转码。
编译安装的方式,需要下载源码包,大体操作如下:

复制代码
代码如下:

#### tran1 上</p> <p>首先安装编译环境。
yum install -y automake autoconf libtool gcc gcc-c++
yum install make
下载所需文件 ffmpeg.tar
wget <a href="http://m.ieternal.com/upload/ffmpeg.tar">http://m.ieternal.com/upload/ffmpeg.tar</a>
解压ffmpeg.tar
tar xvf ffmpeg.tar
切换到ffmpeg目录下,执行以下命令。</p> <p>./configure --prefix=/usr -- disable-yasm </p> <p>make </p> <p>make install
测试转码命令,注意区分文件名的大小写 包括后缀
ffmpeg -i /usr/local/movi/qq.mov -r 25 -b 3200k -vcodec mpeg4 -ab 128k -ac 2 -ar 44100 /usr/local/movi/kk.mp4。</p> <p>

另外一种是采用别人已经构建编译好的版本,如下所示:

复制代码
代码如下:

#########
#tran2.3.4上:
#下载目录: <a href="http://ffmpeg.gusari.org/static/64bit/">http://ffmpeg.gusari.org/static/64bit/</a>
#01-02版本: d1062ad9c208267241b6dfac7fa4ea25 (md5)</p> <p># 创建目录并下载
mkdir /usr/local/ieternal/download
mkdir /usr/local/ffmpeg
cd /usr/local/ieternal/download
wget <a href="http://ffmpeg.gusari.org/static/64bit/ffmpeg.static.64bit.2014-01-02.tar.gz">http://ffmpeg.gusari.org/static/64bit/ffmpeg.static.64bit.2014-01-02.tar.gz</a></p> <p>mv /usr/local/ieternal/download/ffmpeg.static.64bit.2014-01-02.tar.gz /usr/local/ffmpeg/ffmpeg.tar.gz</p> <p>cd /usr/local/ffmpeg
# md5校验
md5sum ffmpeg.tar.gz
# 解压到当前目录
tar zxf ffmpeg.tar.gz</p> <p>
# 设置 path
cp /root/.bash_profile /root/.bash_profile_bak_0102
echo 'path=$path:/usr/local/ffmpeg' >> /root/.bash_profile
echo 'export path' >> /root/.bash_profile
source /root/.bash_profile
echo $path</p> <p>

14.  启动内网端口转发


复制代码
代码如下:

### 2. 查看ip以及网卡信息
# 可以发现, eth0 的地址 inet addr:10.144.7.195, 此为内网网卡
# 公网网卡, eth1 的地址 inet addr:115.28.9.136,
# 此外,还有一个回环地址, 127.* </p> <p>ifconfig</p> <p>### 2.0 查看端口占用情况
netstat -ntl</p> <p>### 2.1 查看系统中现有的iptables规划集</p> <p>iptables --list -t nat</p> <p>### 2.2 查看ip转发的启用状态</p> <p>cat /proc/sys/net/ipv4/ip_forward</p> <p>########清空 nat table
# --flush -f , delete all rules
# --delete-chain -x , delete a user-defined chain
# --zero -z , zero counters in chain or all chains</p> <p>iptables -f -t nat
iptables -x -t nat
iptables -z -t nat</p> <p>
######### 启用ip包转送,即时生效
echo 1 > /proc/sys/net/ipv4/ip_forward</p> <p># ip包转送,也可以设置 net.ipv4.ip_forward = 1
vim /etc/sysctl.conf</p> <p># 然后执行生效, 重启依然有效
sysctl -p</p> <p># 将 3306端口映射到 10.144.169.131:3306,
# prerouting 和 postrouting 都必须设置
# 经测试已经打通
iptables -t nat -a prerouting -m tcp -p tcp --dport 6606 -j dnat --to-destination 10.144.169.131:6606
iptables -t nat -a postrouting -j masquerade</p> <p>

15.  压缩文件

将当前目录下的 blog 目录打包到 blog.tar.gz 文件中:

复制代码
代码如下:

tar -zcf blog.tar.gz blog

其中, -c 表示压缩,compress; -z表示进行zip压缩; -f 就表示输出到文件(而不是输出流,内存什么的.); 后面的 blog 就是相对的路径, 可以是空格分隔的多个文件/目录.
而命名为 .tar.gz 也是一种命名习惯,一眼就可以看出是经过 gzip 压缩的 tar文件。

如果不需要压缩,命令如下所示:

复制代码
代码如下:

tar -cf blog.tar blog

16. 解压文件

对应的目录如下:

复制代码
代码如下:
tar -zxf blog.tar.gz

如果不是gzip压缩,可以如下:

复制代码
代码如下:
tar -xf blog.tar

17. nfs简单使用


复制代码
代码如下:

# 说明,centos5使用的是portmap
# yum install nfs-utils portmap
# centos6 使用的是rpcbind
# yum -y install nfs-utils rpcbind

nfs服务端

复制代码
代码如下:

# 安装软件包
yum -y install nfs-utils rpcbind</p> <p># 创建测试目录
cd /usr/local/
mkdir /usr/local/nfstest
mkdir /usr/local/nfstest/nfsdir</p> <p># 添加内容
echo "/usr/local/nfstest 10.144.169.0/24(rw,no_root_squash)" >> /etc/exports</p> <p>cat /etc/exports</p> <p>chkconfig nfs on
# 启动
/etc/init.d/rpcbind start</p> <p>/etc/init.d/nfs start

nfs客户端

复制代码
代码如下:

# 安装软件包
yum -y install nfs-utils rpcbind</p> <p>showmount -e 10.144.169.135</p> <p>#
cd /usr/local/
mkdir /usr/local/nfstest</p> <p>mount -t nfs 10.144.169.135:/usr/local/nfstest/ /usr/local/nfstest/</p> <p>ll /usr/local/nfstest/</p> <p>
# 设置自动加载,需要写入到 /etc/fstab # 此处暂时还不理解
10.144.169.135:/usr/local/nfstest/ /usr/local/nfstest/ nfs nodev,ro,rsize=32768,wsize=32768 0 0

18.  虚拟机复制以后设置网卡信息

vmware虚拟机复制以后,可能出现网卡信息加载不成功的问题;

复制代码
代码如下:

bringing up interface eth0: device eth0 does not seem to be present,delaying initialization. [failed]

此时,需要修改 /etc/sysconfig/network-scripts/ifcfg-eth0 文件的信息以避免冲突。方法如下:


复制代码
代码如下:

# cat /etc/udev/rules.d/70-persistent-net.rules
# this file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# you can modify it, as long as you keep each rule on a single
# line, and change only the value of the name= key.</p> <p># pci device 0x8086:0x100f (e1000)
subsystem=="net", action=="add", drivers=="?*", attr{address}=="00:0c:29:d7:b6:a9", attr{type}=="1", kernel=="eth*", name="eth0"</p> <p># pci device 0x8086:0x100f (e1000)
subsystem=="net", action=="add", drivers=="?*", attr{address}=="00:0c:29:90:dd:db", attr{type}=="1", kernel=="eth*", name="eth1"

先查看物理硬件信息,然后记下 eth1网卡的mac地址信息,比如"00:0c:29:90:dd:db";
然后修改eth0配置脚本:

复制代码
代码如下:

vim /etc/sysconfig/network-scripts/ifcfg-eth0

修改以后的信息类似如下所示,其中,我这里的虚拟机nat对应的是 192.168.254.*网段,具体的网段信息可以看windows的 "vmware network adaptervmnet8" 这张网卡的信息,或者在cmd下输入 ipconfig 命令查看,而 192.168.254.2 是vmware的网关。自动nat的地址。如果审不准请查看vmware的自动dhcp信息。

复制代码
代码如下:

# cat /etc/sysconfig/network-scripts/ifcfg-eth0"
device=eth1
hwaddr=00:0c:29:90:dd:db
type=ethernet
uuid=cfb84a5c-c605-46ee-853c-214a7f4d7546
onboot=yes
nm_controlled=yes
bootproto=static
ipaddr="192.168.254.137"
netmask="255.255.255.0"
gateway="192.168.254.2"</p> <p>dns1="192.168.254.2"

然后,重启网络即可。在我这里是测试ping 是通的。

复制代码
代码如下:

#重启网络
service network restart

另外,针对安装vmware以后windows7的网络很慢的问题,可以在 控制面板 --> 网络连接 --> 本地连接 --> 属性 --> internet4设置 --> 高级 --> ip设置 --> 默认网关 设置跃点数为 1 即可。

19. 安装rsync

服务器端:

复制代码
代码如下:

############
############
## 服务器端</p> <p># 安装
yum -y install rsync xinetd</p> <p># 启动rsync依赖服务
/etc/init.d/xinetd start
chkconfig xinetd on</p> <p>mkdir /usr/local/ieternal
mkdir /usr/local/ieternal/upload
mkdir /etc/rsyncd</p> <p>#rsync服务器的配置文件
touch /etc/rsyncd/rsyncd.conf</p> <p>#定义服务器信息的文件
touch /etc/rsyncd/rsyncd.motd</p> <p>#用户密码文件
touch /etc/rsyncd/rsyncd.secrets
chmod 600 /etc/rsyncd/rsyncd.secrets</p> <p></p> <p>##############################
##############################
vim /etc/rsyncd/rsyncd.conf

文件 /etc/rsyncd/rsyncd.conf 的内容如下: 其中只定义了一个upload的节,后面的客户端连接需要指明连到此节


复制代码
代码如下:

address=192.168.254.137
port=873
max connections=10
uid=root
gid=root
use chroot=no
strict modes=yes</p> <p>
motd file =/etc/rsyncd/rsyncd.motd

log format=%t %a %m %f %b
syslog facility=local3
timeout =300</p> <p>[upload]
path=/usr/local/ieternal/upload/
exclude =repository/
comment =upload path
ignore errors
read only=no
list=yes
auth users =rsync_user
secrets file =/etc/rsyncd/rsyncd.secrets
hosts allow=192.168.254.0/255.255.255.0
hosts deny=*
pid file =/var/run/rsyncd.pid
lock file =/var/run/rsync.lock
log file =/var/log/rsync.log

指定用户与密码,此处显示了内容:

复制代码
代码如下:

#cat /etc/rsyncd/rsyncd.secrets
rsync_user:pass_word

欢迎信息:

复制代码
代码如下:

#cat /etc/rsyncd/rsyncd.motd
services user=rsync_user;pass_word=***

启动rsync服务

复制代码
代码如下:

#启动rsync服务:
/usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf

# 查看端口状态
netstat -ntl

客户端:

复制代码
代码如下:

# 1.安装
mkdir /usr/local/ieternal
mkdir /usr/local/ieternal/upload
mkdir /etc/rsyncd
yum -y install rsync xinetd</p> <p># 2.启动rsync依赖服务
/etc/init.d/xinetd start
chkconfig xinetd on</p> <p># 3.客户端必须配置密码文件
touch /etc/rsync.pas
chmod 600 /etc/rsync.pas
vim /etc/rsync.pas

指定密码:

复制代码
代码如下:

#cat /etc/rsync.pas
pass_word

执行同步:

复制代码
代码如下:

# 4.执行同步
# 下载:
rsync -auzv --progress --delete --password-file=/etc/rsync.pas <a href="mailto:rsync_user@192.168.254.137::upload">rsync_user@192.168.254.137::upload</a> /usr/local/ieternal/upload</p> <p># 上传:
rsync -auzv --progress --delete --password-file=/etc/rsync.pas /usr/local/ieternal/upload/* <a href="mailto:rsync_user@192.168.254.137::upload">rsync_user@192.168.254.137::upload</a>

错误信息:

复制代码
代码如下:

rsync: failed to connect to 192.168.254.137: no route to host (113)
rsync error: error in socket io (code 10) at clientserver.c(124) [receiver=3.0.6]

已查明是由于防火墙开启引起的,此时可以修改防火墙过滤规则,或者在客户端与服务器端停用防火墙:

复制代码
代码如下:

# 停止防火墙
service iptables stop

20. io监控工具

安装:

复制代码
代码如下:

yum -y install iotop

使用

复制代码
代码如下:

# iotop

大体的汇总信息如下:磁盘读写的速度

复制代码
代码如下:

total disk read: 0.00 b/s | total disk write: 0.00 b/s

21.  安装memcached

如果没有gcc,需要安装:

复制代码
代码如下:

# 安装 gcc
yum -y install gcc

安装依赖库 libevent::


复制代码
代码如下:

# 安装依赖库 libevent
yum -y install libevent libevent-devel

下载 程序包, 参考地址是:


复制代码
代码如下:

# 下载
mkdir /usr/local/ieternal
mkdir /usr/local/ieternal/download
cd /usr/local/ieternal/download
wget <a href="http://www.memcached.org/files/memcached-1.4.17.tar.gz">http://www.memcached.org/files/memcached-1.4.17.tar.gz</a>

对下载包校验:


复制代码
代码如下:

# 计算 sha1值,
# linux自带的哈希校验工具: sha1sum 或 md5sum;
# 2b4fc706d39579cf355e3358cfd27b44d40bd79c
sha1sum memcached-1.4.17.tar.gz

解压:

复制代码
代码如下:

# 解压
tar zxf memcached-1.4.17.tar.gz

安装:

复制代码
代码如下:

# 安装
# 默认情况, memcached 安装到 /usr/local/bin/ 目录下

cd memcached-1.4.17
./configure
make
make install

前台启动:

复制代码
代码如下:

# /usr/local/bin/memcached -p 11211 -m 64m -vv -u root
/usr/local/bin/memcached -u root

后台启动:

复制代码
代码如下:

# 后台启动
# -h 只显示帮助信息
# -u root 时指定以某个用户运行
# -p tcp端口号;
# -m 最大内存大小,默认为 64m
# -vv 用 very verbose 模式启动,调试信息和错误 输出到控制台
# -d 作为daemon在后台启动

/usr/local/bin/memcached -p 11211 -m 64m -d -u root

启动时使用pid文件,将进程id写入到特定文件:


复制代码
代码如下:

# 后台启动,端口号,内存,用户,pid文件
/usr/local/bin/memcached -d -p 11211 -m 128m -u root -p /usr/local/memcached.pid

ps aux |grep memcached

cat /usr/local/memcached.pid

# 杀进程,注意不是单引号,而是 大键盘数字1前面那个字符`
kill `cat /usr/local/memcached.pid`

22. 使用 gpg 生成密钥对


复制代码
代码如下:

# 安装gnupg, 即gpg,一般系统已经自带
yum install gpgme -y</p> <p># 查看帮助信息
gpg --help</p> <p># 生成密钥...
gpg --gen-key

23. apache bench基准测试

apache bench 简称 ab,是 apache服务器附带的一款压力基准测试工具。使用方式:


复制代码
代码如下:

/usr/local/apache2/bin/ab -c 10 -t 10 <a href="http://www.baidu.com/">http://www.baidu.com/</a>

其中, -c 是指concurrency,即并发线程数; -t 是指时间,单位是秒。上面的意思是: 测试 百度 10秒钟,采用 10个客户端线程.
另外还有一个常用的参数是 -n, 即总的限制测试次数是多少次,如果多个参数组合使用,应该是先达到的条件会成为限制条件。
当然,上面是使用的全路径,请根据安装路径决定。也可以先进入apache的bin目录:

复制代码
代码如下:

cd /usr/local/apache2/bin/
# 测试100次
./ab -c 10 -n 100 <a href="http://www.baidu.com/">http://www.baidu.com/</a>

在windows下的使用方式也是一样的,只是路径不一样而已。
当然,也可以将结果输出到文件之中,采用html格式:

复制代码
代码如下:

./ab -c 10 -t 10 -w <a href="http://www.baidu.com/">http://www.baidu.com/</a> >> /usr/local/ab_20140311204010.log.html

详细的帮助信息如下所示:

复制代码
代码如下:

[root@aly bin]# cd /usr/local/apache2/bin/
[root@aly bin]# ./ab -h
使用方式: ./ab [options] [http://]hostname[:port]/path
选项包括:
-n requests 要执行的请求的次数
-c concurrency 要构建多少个并发线程来执行
-t timelimit 最大限制时间,单位(second,秒). 时间到后会等待响应完成才退出
-b windowsize tcp协议 发送/接收的缓冲区大小, 单位字节(byte)
-p postfile post请求要发送的数据. 需要设置选项 -t
-u putfile put请求要发送的数据. 需要设置选项 -t
-t content-type 发送的内容格式头信息 (content-type), 例如
'application/x-www-form-urlencoded' 等,
默认值是 'text/plain'
-v verbosity 需要打印的故障排除日志信息级别
-w 使用 html tables 格式打印结果信息
-i 使用 head 方式请求,而不是 get 方式
-x attributes 要插入作为 table attributes 的字符串
-y attributes 要插入作为 tr attributes 的字符串
-z attributes 要插入作为 td/th attributes 的字符串
-c attribute 添加 cookie信息, 示例: 'apache=1234. (可多个)
-h attribute 添加任意的头信息(header line), 例如: 'accept-encoding: gzip'
插入到其他正常的头信息后面. (可多个)
-a attribute 添加基本网站认证信息(basic www authentication),
属性采用英文冒号(:) 来分隔 username 和 password.
-p attribute 添加代理用户密码(basic proxy authentication),
属性采用英文冒号(:) 来分隔 username 和 password.
-x proxy:port 要使用的代理服务器,以及端口号
-v 只打印版本号并且退出
-k 使用 http keepalive 特性
-d 不要显示响应时间统计百分比.
-s 不要显示 信任估计(? confidence estimators) 和警告信息.
-g filename 将收集的数据输出到 gnuplot交互式绘图 格式文件.
-e filename 将响应时间统计百分比输出到 csv 文件
-r 当 socket 接受到错误时不要退出.
-h 显示帮助信息(实际上就是此信息)

24. 时间同步

同步时间可以使用 root 执行如下命令完成:

复制代码
代码如下:

rdate -s time.nist.gov

如果需要自动同步,可以采用crontab自动调度,每小时执行一次:
编辑 crontab:

复制代码
代码如下:

crontab -e

按 i 进入插入模式,然后添加如下一行:

复制代码
代码如下:

1 * * * * root rdate -s time.nist.gov

然后依次按 esc进入命令模式, 看见冒号以后,输入 wq 和回车保存退出即可(其实就是vi /etc/crontab).