Linux服务器管理日记分享
发布时间:2014-05-22 17:04:56作者:知识屋
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).