文章列表
 
您正在查看 "Linux" 分类下的文章

2010年03月24日 星期三 14:58
Autofs, NIS + Autofs 操作备忘
  • 使用Autofs 自動掛載NFS、SAMBA (Windows) 分享路徑使用Autofs 自动挂载NFS、SAMBA (Windows) 分享路径
  • NIS + Autofs: 本機登入NIS 帳號, 自動掛載遠端家目錄 NIS + Autofs: 本机登入NIS 帐号, 自动挂载远端家目录

操作環境: Fedora Core 3操作环境: Fedora Core 3

使用Autofs 自動掛載NFS、SAMBA (Windows) 分享路徑 使用Autofs自动挂载NFS、SAMBA (Windows)分享路径

#編輯autofs 主要設定檔, 加入NFS 和SAMBA 兩組設定 #编辑autofs主要设定档,加入NFS和SAMBA两组设定
vi /etc/auto.master vi /etc/auto.master

/mnt/nfs /mnt/nfs /etc/auto.nfs /etc/auto.nfs
/mnt/smb /mnt/smb /etc/auto.samba /etc/auto.samba

#最前面的"test" 是自訂的本機端掛載點, 和auto.master 的設定組合起來是: /mnt/nfs/test #最前面的"test"是自订的本机端挂载点,和auto.master的设定组合起来是: /mnt/nfs/test
vi /etc/auto.nfs vi /etc/auto.nfs

test    nfs_server:/nfs/shared/path test    nfs_server:/nfs/shared/path

#credentials 的用法亦可適用於/etc/fstab #credentials的用法亦可适用于/etc/fstab
vi /etc/auto.samba vi /etc/auto.samba

test    -fstype=cifs,credentials=/etc/smb.auth    ://smb_server/shared/path test -fstype=cifs,credentials=/etc/smb.auth ://smb_server/shared/path

#將連線遠端samba share 的帳密獨立成一個檔案, 增加安全性, 也便於管理 #将连线远端samba share的帐密独立成一个档案,增加安全性,也便于管理
vi /etc/smb.auth vi /etc/smb.auth

username=someone username=someone
password=someone's_passwd password=someone's_passwd

#僅允許root 讀寫samba share 的帳密檔 #仅允许root读写samba share的帐密档
chmod 600 /etc/smb.auth chmod 600 /etc/smb.auth

#重新啟動autofs 服務, 讓設定生效 #重新启动autofs服务,让设定生效
/etc/init.d/autofs restart /etc/init.d/autofs restart

#使用相關路徑時, autofs 會自動掛載對應的遠端分享 #使用相关路径时, autofs会自动挂载对应的远端分享
ls -l /mnt/nfs/test ls -l /mnt/nfs/test
ls -l /mnt/smb/test ls -l /mnt/smb/test

#查看掛載狀態 #查看挂载状态
mount mount

NIS + Autofs: 本機登入NIS 帳號, 自動掛載遠端家目錄 NIS + Autofs:本机登入NIS帐号,自动挂载远端家目录

NIS Server: NIS Server:

yum -y install ypserv yum -y install ypserv

mkdir /rhome mkdir /rhome

#為避免與NIS Client 的本機UID 衝突, 特別指定一個UID 作為區分 #为避免与NIS Client的本机UID冲突,特别指定一个UID作为区分
useradd -u 30000 -d /rhome/someone someone useradd -u 30000 -d /rhome/someone someone

vi /etc/sysconfig/network vi /etc/sysconfig/network

NISDOMAIN= MYDOMAIN NISDOMAIN= MYDOMAIN

nisdomainname MYDOMAIN nisdomainname MYDOMAIN

/etc/init.d/ypserv start /etc/init.d/ypserv start

/usr/lib/yp/ypinit -m /usr/lib/yp/ypinit -m

next host to add: 192.168.1.1 (本機LAN IP) next host to add: 192.168.1.1 (本机LAN IP)

Ctrl + D 結束設定 Ctrl + D结束设定

vi /etc/exportfs vi /etc/exportfs

/rhome 192.168.1.0/24 (rw,sync) /rhome 192.168.1.0/24 (rw,sync)

exportfs -rv exportfs -rv

NIS Client: NIS Client:

vi /etc/auto.master vi /etc/auto.master

/rhome    /etc/auto.nfs /rhome    /etc/auto.nfs

vi /etc/auto.nfs vi /etc/auto.nfs

*    192.168.1.1:/rhome/& *    192.168.1.1:/rhome/&

ps. man 5 autofs and search for "wildcard" for more information ps. man 5 autofs and search for "wildcard" for more information

/etc/init.d/autofs restart /etc/init.d/autofs restart

#執行setup 設定啟用NIS 登入驗證, #执行setup设定启用NIS登入验证,
setup → Authentication configuration → Use NIS → Domain: MYDOMAIN , Server: 192.168.1.1 setup → Authentication configuration → Use NIS → Domain: MYDOMAIN , Server: 192.168.1.1

/* 或修改以下檔案 /*或修改以下档案

vi /etc/sysconfig/network vi /etc/sysconfig/network

NISDOMAIN= MYDOMAIN NISDOMAIN= MYDOMAIN

vi /etc/yp.conf vi /etc/yp.conf

domain MYDOMAIN server 192.168.1.1 domain MYDOMAIN server 192.168.1.1

vi /etc/nsswitch.conf vi /etc/nsswitch.conf

passwd: files nis passwd: files nis
shadow: files nis shadow: files nis
group: files nis group: files nis

/etc/init.d/ypbind start /etc/init.d/ypbind start

chkconfig ypbind on chkconfig ypbind on

end of editing */ end of editing */

#此時可查到NIS Server 上的使用者 #此时可查到NIS Server上的使用者
id someone id someone

#登入後, autofs 會自動掛載NIS Server 上的使用者家目錄 #登入后, autofs会自动挂载NIS Server上的使用者家目录
su - someone su - someone

#此時帳號應為someone, 家目錄為/rhome/someone #此时帐号应为someone,家目录为/rhome/someone
whoami && pwd whoami && pwd

 
2010年03月24日 星期三 11:30
Linux+Svn+apache2+ssl配置
Linux+Svn+apache2+ssl配置
Svn在使用apache访问的时候,登录的用户名密码是以明文传输的,因此要给传输加密,选择了用openssl来制作CA自签证书。来加密与服务端的传输。
一、环境:
目前已经正确配置svn与apache,已经能用apache和客户端正常访问svn,目前只需将apache的ssl配置成功即可。确保系统中安装了openssl。
二、理解:
配置ssl需要服务器要有证书支持,这时有两种选择:一是从互联网的某台CA服务器上申请证书。二是在linux里配置自己的CA服务器自己给自己签发证书,这时就需要openssl这个工具。
SSL是Secure Socket Layer(安全套接层协议)的缩写,可以在Internet上提供秘密性传输。Netscape公司在推出第一个Web浏览器的同时,提出了SSL协议标准,目前已有3.0版本。SSL采用公开密钥技术。其目标是保证两个应用间通信的保密性和可靠性,可在服务器端和用户端同时实现支持。
OpenSSL整个软件包大概可以分成三个主要的功能部分:密码算法库、SSL协议库以及应用程序。OpenSSL的目录结构自然也是围绕这三个功能部分进行规划的。
因此,创建CA以及签发证书的过程如下:
1.       创建根CA以及根CA证书
这包括:创建根CA私钥(ca.key)->创建根证书(ca.crt)->修改证书权限为最小
2.       创建服务器证书
包括:创建apache服务器私钥(server.key)->从CA签发服务器证书(server.crt)
3.       需要的话可以创建客户端证书
三、配置步骤如下:
注意证书的文件夹要统一放在一个地方,比如可以全部apache/conf/crt里面。因为下面的命令要直接用到key文件和csr文件,因此在证书制作过程中全部放在一起,等生成完毕再将其放在不同的文件夹,然后在配置文件中写入相应的目录即可。

1.        先建立一个 CA 的证书
注意红色字体为要求输入内容,绿色为注释。
首先为 CA 创建一个 RSA 私用密钥,
#openssl genrsa -des3 -out ca.key 1024
系统提示输入 PEM pass phrase,也就是密码,输入后牢记它。
生成 ca.key 文件,将文件属性改为400,并放在安全的地方。
#chmod 400 ca.key
你可以用下列命令查看它的内容,
# openssl rsa -noout -text -in ca.key
利用 CA 的 RSA 密钥创建一个自签署的 CA 证书(X.509结构)
#openssl req -new -x509 -days 3650 -key ca.key -out ca.crt
创建时需要输入下列证书信息:
Country Name: CN两个字母的国家代号
State or Province Name: ** 省份名称
Locality Name: **城市名称
Organization Name: **公司名称
Organizational Unit Name: ** 部门名称
Common Name:** 公用名
Email Address: ** 地址
生成 ca.crt 文件,将文件属性改为400,并放在安全的地方。
#chmod 400 ca.crt
你可以用下列命令查看它的内容,
#openssl x509 -noout -text -in ca.crt

用下面的命令也可以生成没有密码保护的CA密钥和证书文件:
#openssl req -new -x509 -out ca.crt -keyout ca.key
想给CA密钥加密码保护可以:
#openssl res -des3 -in ca.key -out ca.key.new
#mv ca.key.new ca.key

2.下面要创建服务器证书签署请求,
首先为你的 Apache 创建一个 RSA 私用密钥:
#openssl genrsa -des3 -out server.key 1024
这里也要设定pass phrase。
生成 server.key 文件,将文件属性改为400,并放在安全的地方。
#chmod 400 server.key
你可以用下列命令查看它的内容,
#openssl rsa -noout -text -in server.key
用 server.key 生成证书签署请求 CSR.
#openssl req -new -key server.key -out server.csr
这里也要输入一些证书信息,和生成ca.crt的信息类似
至于 'extra' attributes 不用输入。
“Common Name: Chen Yang 你的姓名”这条信息请你输入你的服务器的域名或者IP地址,
你可以查看 CSR 的细节
#openssl req -noout -text -in server.csr

3.下面签署证书
#openssl x509 -req -days 3650 -in server.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out server.crt

之后,便得到ca.key ca.crt server.key server.csr server.crt这几个私钥以及证书文件将他们归类放好。
4.接下来配置httpd.conf、和http-ssl.conf文档。
首先在htpd.conf里编辑。
将Listen 端口号 一行注释掉。
取消Include /opt/apache/conf/extra/httpd-ssl.conf前的注释,打开此选项。
在svn的配置中加入SSLRequireSSL这行。如下:
<Location /svn>
    里面内容省略
    SSLRequireSSL
</Location>
然后编辑apache/conf/ extra/httpd-ssl.conf 文档。
将Listen 端口 选项改为
Listen ip地址:443 的形式
如Listen 127.0.0.1:443
开启以下:
SSLPassPhraseDialog builtin
SSLEngine on

修改以下路径,将证书文件加载进来:
其中星号为你的真实路径,比如我的证书路径是/opt/apache/conf/ssl.crt/
SSLCertificateFile "/opt/apache/conf/ssl.crt/server.crt "
SSLCertificateKeyFile "/opt/apache/conf/ssl.crt/server.key"
SSLCACertificatePath "/opt/apache/conf/ssl.crt/" //注意此处是根证书的存放路径
可见,我将所有证书放在了一个文件夹内,即ssl.crt内。注意事前新建此文件夹。
其他默认即可。

这时已经完成了apache的ssl配置,在浏览器中访问https://ip/svn地址就能访问svn了。之间的传输已经被加密。如果需要指定客户端来访问svn的话,那就要制作客户端证书,然后将证书转换为浏览器可用的格式,导入浏览器就ok了。


参考:
证书制作过程中用到了openssl的语法,这里介绍openssl的参数意思。

openssl genrsa -des3 -out ca.key 1024
genrsa命令生成新的RSA私匙,推荐的私匙长度为1024位,不建议低于该值或者高于2048位。
缺省情况下私匙不被加密,但是可用DES、3DES或者IDEA加密。

openssl req -new -x509 -days 3650 -key ca.key -out ca.crt

本指令用来创建和处理PKCS#10格式的证书
x509
     本option将产生自签名的证书. 一般用来错测试用,或者自己玩下做个Root CA.证书的扩展项在 config文件里面指定
-days n
    如果-509被set, 那么这个option的参数指定我们自己的CA给人家签证书的有效期.缺省是30天.
-text
    将CSR文件里的内容以可读方式打印出来
-noout
    不要打印CSR文件的编码版本信息.
本文出自 “刘世发” 博客,请务必保留此出处http://gslsf223.blog.51cto.com/758047/223992
 
2010年03月22日 星期一 10:18
解决VMware6.5 以上版本安装RHEL 5的自动安装的问题
解决VMware6.5 以上版本安装RHEL 5的自动安装的问题
记得在学习 RHEL5的时候,教室里用的VMware5.5.3的版本,在教室里安装的时候是很正常的有步骤的那种,回到寝室后,用我的VMware6.5 安装的时候却发现,完全变成了自动安装,你说自动安装就自动安装吧,装完了还是一个英文版,最最郁闷的是居然中文不可以正常的显示,全是小方块 为此之前还特地的做了一个解决办法
原本以为是VMware的版本问题,以为升级为最新的版本后会解决这个问题的 ,可是我的VMware版本升级到了6.5.2 问题依旧如故
按理说来高版本的软件怎么会连低版本的软件性能都不如呢
解决这个问题,实属偶然
借此机会和大家分享一下
希望遇到此困扰的同志多一个解决办法
clip_image002
一般我们在home页 选择新建虚拟机
clip_image004
选择自定义安装
下一步
clip_image006
以前就算我选择低版本的也不行的
下一步
clip_image008
我们选择用镜像文件进行安装 浏览到镜像的位置
下一步
clip_image010
与之前版本不同的是 这里先要输入一下 用户名 密码
下一步
clip_image012
选择存放的位置
下一步
clip_image014
选择处理器个数
下一步
clip_image016
选择 内存大小
下一步
clip_image018
选择网卡的模式
这里我选择桥接
下一步
clip_image020
选择I/O接口类型
下一步
clip_image022
创建一个新的磁盘
下一步
clip_image024
选择硬盘类型
clip_image026
选择硬盘大小
这里我就默认了
clip_image028clip_image030
这里呢 不要勾选这个勾
完成
clip_image032
这里我们选择编辑虚拟机的设置
clip_image034clip_image036
clip_image038
真正的镜像文件时第二个光驱在读的
这里呢 你会发现 有两个CD/DVD 我们选择上面的一个 会发现 有一个autoinst.iso 的镜像是默认选中的,而造成VMware 6.5中linux 自动安装的就是他在捣乱
我们这里选择 用物理光驱
clip_image040
或者直接 选择勾掉电源
选择ok
clip_image042
这个时候我们在选择打开电源启动虚拟机
clip_image044
这里直接回车即可
clip_image046
clip_image048
检测光盘这里用tab键切换 选择skip 跳过
clip_image050clip_image052
选择next
clip_image054
选择简体中文 下一步
clip_image056
美式键盘 下一步
clip_image058
跳过输入安装号码
clip_image060
选择跳过
clip_image062clip_image064
clip_image066
clip_image068
下一步
clip_image070
选择时区 下一步
clip_image072
输入根口令
clip_image074clip_image076
现在 定制软件 下一步
clip_image078
clip_image080
对于服务器上用的各种服务 习惯上是用哪个装哪个
下一步
clip_image082clip_image084
下一步
clip_image086
系统安装过程中
请稍等
clip_image088clip_image090
个人感觉这个过程还是较快的
clip_image092
选择重新引导
clip_image094clip_image096
老五的成长记录
前进
clip_image100
同意许可协议
clip_image102
选择关闭防火墙
clip_image104
clip_image106clip_image108clip_image110
设置时间
clip_image112
不注册系统
clip_image114
以后注册
clip_image116clip_image118
创建一个普通用户
clip_image120
测试声卡
clip_image122
选择完成
clip_image124
久违的汉字
终于回来了
clip_image126
clip_image128
安装VMware tools的方法 参考
http://yuzeying.blog.51cto.com/644976/147610

VMware 6.0 由于没有实验环境,就没有试,如果6.0也有类似的问题,也请这样试试,看行不行

本文出自 “老五的成长记录” 博客,请务必保留此出处http://yuzeying.blog.51cto.com/644976/192900

 
2010年03月20日 星期六 22:12
去除虚拟机Linux的报警声

Vmware上装的Redhat,在Shell下由于输错命令或是种种原因,会发出“嘟嘟”的报警声,并不是声卡发出的,而是主板的报警,所以不能通过关闭音箱来解决。办公室里经常响起这样的声音非常刺耳,今天在网上找到了解决方法,记下:
   

将/etc/inputrc中的set bell-style none 前的#去掉,重新登陆即可。

 
2010年03月16日 星期二 17:24
CentOS5.3下成功安装Cacti
操作系统:CentOS5.3(安装开发工具)
[root@centos53 ~]# lsb_release -a
LSB Version:    :core-3.1-ia32:core-3.1-noarch:graphics-3.1-ia32:graphics-3.1-noarch
Distributor ID: CentOS
Description:    CentOS release 5.3 (Final)
Release:        5.3

Codename:       Final
配置好网络(IP地址,DNS等)。
配置yum
(在服务器构建的过程中,我们将要用到的一些工具不存在于CentOS中yum的官方库中,所以需要定义yum的非官方库文件,让一些必需的工具通过yum也能够安装。)
[root@centos53 /]# vi /etc/yum.repos.d/dag.repo
建立dag.repo,定义非官方库,内容如下5行:
[dag]
name=Dag RPM Repository for Red Hat Enterprise Linux
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
gpgcheck=1
enabled=1
导入非官方库的GPG:
查看dag的安装包
[root@centos53 /]# yum list | grep dag
[root@centos53 /]# yum list | grep cacti
安装httpd、Mysql、Cacti、Cacti-spine、net-snmp
(httpd和net-snmp可以已经安装,可以一次性安装:
[root@centos53 /]# yum -y install httpd mysql-server cacti cacti-spine net-snmp
安装httpd          [root@centos53 /]# yum -y install httpd
安装mysql          [root@centos53 /]# yum -y install mysql-server
安装cacti          [root@centos53 /]# yum -y install cacti
安装cacti-spine    [root@centos53 ~]# yum -y install cacti-spine
安装net-snmp       [root@centos53 ~]# yum -y install net-snmp
相关配置
httpd的配置
[root@centos53 /]# vi /etc/httpd/conf/httpd.conf
更改或增加:
ServerName xxx.xxx.xxx.xxx
AddDefaultCharset GB2312
会发现我们并没有做“httpd和php整合”,以及对cacti的访问目录的相关配置,如有这个疑问,请注意httpd.conf中以下这行配置:
Include conf.d/*.conf
这个目录下的cacti.conf和php.conf等也是httpd.conf配置中的一部分,这两个配置文件就是对“httpd和php整合”,以及对cacti的访问目录的相关配置。
修改cacti.conf
[root@centos53 /]# vi /etc/httpd/conf.d/cacti.conf
相关行改成:
#    deny from all
    allow from all
本机net-snmp的配置
[root@centos53 /]# vi /etc/snmp/snmpd.conf
更改配置如下:
com2sec notConfigUser  localhost       public
access notConfigGroup ""      any       noauth    exact  all none none
view all    included .1                               80
mysqld的配置
[root@centos53 ~]# service mysqld start
[root@centos53 ~]# mysql -uroot
mysql> select user,host,password from mysql.user;
mysql> delete from mysql.user where user='';
mysql> select user,host,password from mysql.user;
mysql> set password for root@localhost=password("rootpw");
mysql> create database cactidb;
mysql> grant all on cactidb.* to root@localhost;
mysql> grant all on cactidb.* to cacti@localhost;
mysql> set password for cacti@localhost=password("cactipw");
mysql> flush privileges;
mysql> select user,host,password from mysql.user;
mysql> show databases;
mysql> exit
cacti的配置
[root@centos53 /]# cd /var/www/cacti/
[root@centos53 cacti]# mysql --user=root --password=rootpw cactidb <cacti.sql
[root@centos53 cacti]# vi /var/www/cacti/include/config.php
/* make sure these values refect your actual database/host/user/password */
$database_type = "mysql";
$database_default = "cactidb";
$database_hostname = "localhost";
$database_username = "cacti";
$database_password = "cactipw";
$database_port = "3306";
[root@centos53 cacti]# chown cacti rra/ log/
设置crontab定时任务
[root@centos53 cacti]# vi /etc/crontab
*/5 * * * * cacti /usr/bin/php /var/www/cacti/poller.php > /dev/null 2>&1
设置服务开机自启动
[root@centos53 /]# chkconfig snmpd on
[root@centos53 /]# chkconfig httpd on
[root@centos53 /]# chkconfig mysqld on
重启服务
[root@centos53 /]# service httpd restart
[root@centos53 /]# service snmpd restart
[root@centos53 /]# service mysqld restart
后话
就可以出再Cacti Installation Guide的页面了。NEXT--NEXT--FINISH。
用户名和密码为:admin/admin,之后输入新的密码,就完成了最基本的安装。

原文地址 http://http://blog.chinaunix.net/u2/71257/showart_2091043.html
 
2010年03月01日 星期一 14:31

tar.tar文件解压

tar.tar文件解压:
首先用file命令查看文件类型(可能是bz2或者gz),命令格式:file filename.tar.tar
我以MPlayer-0.91.tar.tar为例:
[root@localhost ~]# file MPlayer-0.91.tar.tar
MPlayer-0.91.tar.tar: bzip2 compressed data, block size = 900k

由bzip2 compressed data知道,此文件为bz2的文件,要用bunzip2解压 。
命令格式:bunzip2 filename.tar.tar

仍以MPlayer-0.91.tar.tar为例:
[root@localhost ~]# bunzip2 MPlayer-0.91.tar.tar
bunzip2: Can't guess original name for MPlayer-0.91.tar.tar -- using MPlayer-0.91.tar.tar.out

执行完后会生成一个filename.tar.tar.out文件,而原来filename.tar.tar的文件被删除了。这是bunzip2命令操作就是这样的,它会用生成的文件替换原来的文件。

生成了filename.tar.tar.out文件再用tar命令来解压。
命令格式:tar xvf filename.tar.tar.out
如:
tar xvf MPlayer-0.91.tar.tar.out


如果知道它是bz2的文件,也可以直接用把文件改为filename.tar.bz2的文件,
命令格式:mv filename.tar.tar filename.tar.bz2
再用bunzip2和tar命令来解压,格式与前面相同。就不重复了。

 
2010年02月04日 星期四 13:43
Debian apt-get 使用指南

经常忘记,总是man,索性就把要用到的都给整了出来.需要用到sudo,”packgeame”和”string”替换成你想要安装或者查找的程序

apt-get update —— 在修改/etc/apt/sources.list或者/etc/apt/preferences之後运行该命令。此外您需要定期运行这一命令以确保您的软件包列表是最新的。
apt-get install packagename——安装一个新软件包(参见下文的aptitude)
apt-get remove packagename —— 卸载一个已安装的软件包(保留配置文件)
apt-get –purge remove packagename —— 卸载一个已安装的软件包(删除配置文件)
dpkg –force-all –purge packagename —— 有些软件很难卸载,而且还阻止了别的软件的应用,就可以用这个,不过有点冒险。
apt-get autoclean apt —— 会把已装或已卸的软件都备份在硬盘上,所以如果需要空间的话,可以让这个命令来删除你已经删掉的软件
apt-get clean —— 这个命令会把安装的软件的备份也删除,不过这样不会影响软件的使用的。
apt-get upgrade —— 更新所有已安装的软件包
apt-get dist-upgrade —— 将系统升级到新版本
apt-cache search string —— 在软件包列表中搜索字符串
dpkg -l package-name-pattern —— 列出所有与模式相匹配的软件包。如果您不知道软件包的全名,您可以使用“*package-name-pattern*”。
aptitude —— 详细查看已安装或可用的软件包。与apt-get类似,aptitude可以通过命令行方式调用,但仅限于某些命令——最常见的有安装和卸载命令。由于aptitude比apt-get —— 了解更多信息,可以说它更适合用来进行安装和卸载。
apt-cache showpkg pkgs —— 显示软件包信息。
apt-cache dumpavail —— 打印可用软件包列表。
apt-cache show pkgs —— 显示软件包记录,类似于dpkg –print-avail。
apt-cache pkgnames —— 打印软件包列表中所有软件包的名称。
dpkg -S file —— 这个文件属于哪个已安装软件包。
dpkg -L package —— 列出软件包中的所有文件。
apt-file search filename —— 查找包含特定文件的软件包(不一定是已安装的),这些文件的文件名中含有指定的字符串。apt-file是一个独立的软件包。您必须 先使用apt-get install来安装它,然後运行apt-file update。如果apt-file search filename输出的内容太多,您可以尝试使用apt-file search filename | grep -w filename(只显示指定字符串作为完整的单词出现在其中的那些文件名)或者类似方法,例如:apt-file search filename | grep /bin/(只显示位于诸如/bin或/usr/bin这些文件夹中的文件,如果您要查找的是某个特定的执行文件的话,这样做是有帮助的)。

* apt-get autoclean——定期运行这个命令来清除那些已经卸载的软件包的.deb文件。通过这种方式,您可以释放大量的磁盘空间。如果您的需求十分迫切,可 以使用apt-get clean以释放更多空间。这个命令会将已安装软件包裹的.deb文件一并删除。大多数情况下您不会再用到这些.debs文件,因此如果您为磁盘空间不足 而感到焦头烂额,这个办法也许值得一试。
典型应用

我是个赛车发烧友,想装个赛车类游戏玩玩。有哪些赛车类游戏可供选择呢?
apt-cache search racing game

出来了一大堆结果。看看有没有更多关于torcs这个游戏的信息。
apt-cache show torcs

看上去不错。这个游戏是不是已经安装了?最新版本是多少?它属于哪一类软件,universe还是main?
apt-cache policy torcs

好吧,现在我要来安装它!
apt-get install torcs

在控制台下我应该调用什么命令来运行这个游戏呢?在这个例子中,直接用torcs就行了,但并不是每次都这么简单。我们可一通过查找哪些文件被安装 到了“/usr/bin”文件夹下来确定二进制文件名。对于游戏软件,这些二进制文件将被安装到“/usr/games”下面。对于系统管理工具相应的文 件夹是“/usr/sbin”。
dpkg -L torcs|grep /usr/games/

这个命令的前面一部分显示软件包“torcs”安装的所有文件(您自己试试看)。通过命令的第二部分,我们告诉系统只显示前一部分的输出结果中含有“/usr/games”的那些行。

这个游戏很酷哦。说不定还有其他赛道可玩的?
apt-cache search torcs

我的磁盘空间不够用了。我得把apt的缓存空间清空才行。
apt-get clean

哦不,老妈叫我把机器上的所有游戏都删掉。但是我想把配置文件保留下来,这样下次我想玩的时候只要重装一下就可以了。
apt-get remove torcs

如果我想连配置文件一块删除:
apt-get remove –purge torcs

额外的软件包

deborphan和debfoster工具可以找出已经安装在系统上的不会被用到的软件包。

提高命令行方式下的工作效率

您可以通过定义别名(alias)来提高这些命令的输入速度。例如,您可以在您的*~/.bashrc*文件中添加下列内容
alias acs=’apt-cache search’
alias agu=’sudo apt-get update’
alias agg=’sudo apt-get upgrade’
alias agd=’sudo apt-get dist-upgrade’
alias agi=’sudo apt-get install’
alias agr=’sudo apt-get remove’

或者使用前面介绍的aptitude命令,如“alias agi=’sudo aptitude install’”。

为apt-get设置http代理

可以通过三种方法为apt-get设置http代理

方法一

这是一种临时的手段,如果您仅仅是暂时需要通过http代理使用apt-get,您可以使用这种方式。

在使用apt-get之前,在终端中输入以下命令(根据您的实际情况替换yourproxyaddress和proxyport)。
export http_proxy=http://yourproxyaddress:proxyport

方法二

这种方法要用到/etc/apt/文件夹下的apt.conf文件。如果您希望apt-get(而不是其他应用程序)一直使用http代理,您可以使用这种方式。

注意: 某些情况下,系统安装过程中没有建立apt配置文件。下面的操作将视情况修改现有的配置文件或者新建配置文件。
sudo gedit /etc/apt/apt.conf

在您的apt.conf文件中加入下面这行(根据你的实际情况替换yourproxyaddress和proxyport)。
Acquire::http::Proxy “http://yourproxyaddress:proxyport”;

保存apt.conf文件。

方法三

这种方法会在您的主目录下的.bashrc文件中添加两行。如果您希望apt-get和其他应用程序如wget等都使用http代理,您可以使用这种方式。
gedit ~/.bashrc

在您的.bashrc文件末尾添加如下内容(根据你的实际情况替换yourproxyaddress和proxyport)。
http_proxy=http://yourproxyaddress:proxyport
export http_proxy

保存文件。关闭当前终端,然後打开另一个终端。

使用apt-get update或者任何您想用的网络工具测试代理。我使用firestarter查看活动的网络连接。

如果您为了纠正错误而再次修改了配置文件,记得关闭终端并重新打开,否自新的设置不会生效。

 
2010年02月02日 星期二 10:10

在 debian etch 上配置 lighttpd 反向代理虚拟主机

前几天在 debian etch 上配置了一个 apache2 反向代理虚拟主机,因为不能实现代理到应用服务器的负载均衡,所以感觉不太完美。今天配置了一下 lighttpd,发现用 lighttpd 实现反向代理虚拟主机比用 apache2 还要简单,而且实现负载均衡也很容易。早知如此,就不捣鼓 apache2 了。

debian etch 中有 lighttpd 这个包,直接 apt-get 就可以安装了。

安装之后,运行一下:

lighty-enable-mod proxy

就打开 proxy 扩展了。

编辑 /etc/lighttpd/conf-enabled/10-proxy.conf,加入:

$HTTP["host"] =~ "gatetest.(ujn.edu.cn|ujn.cn|ujn6.edu.cn|ujn.org.cn)" {
proxy.balance = "hash"
proxy.server = ( "" => ( ( "host" => "10.0.0.10" ),
  
( "host" => "10.0.0.11" ),
  
( "host" => "10.0.0.12" ),
  
( "host" => "10.0.0.13" ) ) )

这样的配置信息就可以了。

至于 lighttpd.conf 文件,可以去掉一些模块和配置,一般只需要保留这些就可以了:

server.modules = ( "mod_accesslog" )
server.document-root = "/var/www/"
server.errorlog = "/var/log/lighttpd/error.log"
accesslog.filename = "/var/log/lighttpd/access.log"
server.pid-file = "/var/run/lighttpd.pid"
server.dir-listing = "disable"
server.username = "www-data"
server.groupname = "www-data"
include_shell "/usr/share/lighttpd/include-conf-enabled.pl"

如果要允许 IPv6,可以加入:

server.use-ipv6 = "enable"

选项。

以上配置就实现了一个反向代理。这种方式配置的话不需要修改 /etc/hosts,而且能够实现负载均衡,相当不错。不过 debian 的 lighttpd 包是不带 mod_cache 这个模块的,因为这个模块是第三方模块,需要打补丁自己编译。为了方便,我重新编译了 lighttpd 的 debian 包,这个包里已经包含了 mod_cache 模块了,只需要安装好之后,只需要执行一下:

lighty-enable-mod cache

就可以开启 cache 模块了。

编译好的带 cache 模块的 lighttpd 包可以在这里下载:lighttpd_1.4.13-4_i386.deb.zip

 
2010年02月01日 星期一 11:20

在linux下解压rar文件
默认在linux下是没rar的解压软件的,因此一般本地压缩使用winrar,选择压成ZIP后上传,使用unzip来解压。
但昨天下了一个大文件rar文件,没办法,只好去找来linux下的rar解压软件,来完成解压。

还找了一段时间,才找到。发到软件下载那边共享,rarlinux下载 :http://down.itlearner.com/soft/2412.shtml

这个是3.6.0的版本
tar -zxf rarlinux-3.6.0.tar.gz
cd rarlinux-3.6.0
make
没看到configure,所以就直接make了。

解压hx.rar文件:
rar x hx.rar

具体参数可以rar -h查看,下面例出一些。
RAR 3.60   Copyright (c) 1993-2006 Alexander Roshal   5 Aug 2006
Shareware version         Type RAR -? for help

Usage:     rar <command> -<switch 1> -<switch N> <archive> <files...>
               <@listfiles...> <path_to_extract\>

<Commands>
a             Add files to archive
c             Add archive comment
cf            Add files comment
ch            Change archive parameters
cw            Write archive comment to file
d             Delete files from archive
e             Extract files to current directory
f             Freshen files in archive
i[par]=<str> Find string in archives
k             Lock archive
l[t,b]        List archive [technical, bare]
m[f]          Move to archive [files only]
p             Print file to stdout
r             Repair archive
rc            Reconstruct missing volumes
rn            Rename archived files
rr[N]         Add data recovery record
rv[N]         Create recovery volumes
s[name|-]     Convert archive to or from SFX
t             Test archive files
u             Update files in archive
v[t,b]        Verbosely list archive [technical,bare]
x             Extract files with full path

最新的版本可以去官方获取,官方主页是:http://www.rarlab.com

本文转自:http://www.9enjoy.com/post/290/


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/Leeiee/archive/2009/04/12/4067158.aspx

 
2010年02月01日 星期一 9:37
RHEL 5 上 dovecot+sendmail 的 SSL/TLS 实现
By albertxu  http://freelamp.com/58139
qmail 在那台 Sun E450 上的免费日子终于结束了。 迎来了自己的 RHEL5 跑在
Intel(R) Core(TM)2 Duo CPU E8300 @ 2.83GHz
MemTotal: 4002428 kB
而新的邮件系统添加的 SSL/TLS 功能,也让系统有了更亮丽的特色。
1. 检查相关软件是否已经安装:
dovecot-1.0-1.2.rc15.el5
sendmail-8.13.8-2.el5
sendmail-cf-8.13.8-2.el5
spamassassin-3.1.7-4.el5
2.配置 dovecot
我用的是简单的 /etc/shadow 文件的认证
[root@freelamp certs]# dovecot -n
# /etc/dovecot.conf
protocols: pop3s
login_dir: /var/run/dovecot/login
login_executable: /usr/libexec/dovecot/pop3-login
login_greeting: FreeLAMP.com Day Day Up
mail_location: mbox:~/mail:INBOX=/var/mail/%u
mail_executable: /usr/libexec/dovecot/pop3
mail_plugin_dir: /usr/lib/dovecot/pop3
auth default:
mechanisms: plain login
cache_size: 1024
passdb:
driver: shadow
userdb:
driver: passwd
这里只用了 pop3s 协议,也就是 995 端口。
3. 配置 dovecot 证书
vi /etc/pki/dovecot/dovecot-openssl.cnf
mv /etc/pki/dovecot/private/dovecot.pem /etc/pki/dovecot/private/dovecot.pem.orig
mv /etc/pki/dovecot/certs/dovecot.pem /etc/pki/dovecot/certs/dovecot.pem.orig
生成新的自己 domain 的证书
/usr/share/doc/dovecot-1.0/examples/mkcert.sh
mv /etc/pki/dovecot/private/dovecot.pem /etc/pki/dovecot/private/mydomain.pem
mv /etc/pki/dovecot/certs/dovecot.pem /etc/pki/dovecot/certs/mydomain.pem
主要修改的地方是:
ssl_disable=no
ssl_cert_file=/etc/pki/dovecot/certs/mydomain.pem
ssl_key_file=/etc/pki/dovecot/private/mydomain.pem
ssl_parameters_regenerate=168
verbose_ssl=no
这样,POP3S 收取邮件时,就可以在 /etc/log/maillog 里看到这样的日志:
Oct 8 22:22:40 freelamp dovecot: pop3-login: Login: user=, method=PLAIN, rip=::ffff:61.171.62.106, lip=::ffff:61.152.249.2, TLS
至此,POP3 的加密完成。下面介绍 SMTP 的加密。
1. 生成 CA 证书
cd /etc/pki/tls/misc
./CA -newca
根据提示输入,Common Name 输入自己的邮件服务器主机名字,mail.yourdomain.com
会生成两个文件:
/etc/pki/CA/cacert.pem (CA证书,你可以和其他通信的机构交换这个证书)
/etc/pki/CA/private/cakey.pem(密码保护的私密证书,用来签名和撤销证书)
2.生成私密和证书签名请求(CSR)
./CA -newreq
在 /etc/pki/tls/misc 目录下生成两个文件:
/etc/pki/tls/misc/newreq.pem
/etc/pki/tls/misc/newkey.pem
3.签名:
./CA -sign
这一步生成 /etc/pki/CA/newcerts/.pem 和 /etc/pki/tls/misc/newcert.pem 2个一样的文件。
4.拷贝证书到 sendmail 的证书目录下,并修改文件权限
mkdir /etc/mail/certs
cp /etc/pki/CA/cacert.pem /etc/mail/certs
cp /etc/pki/tls/misc/newcert.pem /etc/mail/certs/mycert.pem
openssl pkcs8 -in newkey.pem -topk8 -nocrypt -out mykey.pem (解决 SSL_CTX_use_PrivateKey_file Error 问题)
cp /etc/pki/tls/misc/mykey.pem /etc/mail/certs
chmod -R 700 /etc/mail/certs
chown -R root:sys /etc/mail/certs
5.配置 sendmail,并重启
修改 /etc/mail/sendmail.mc
define(`confCACERT_PATH’, `/etc/mail/certs’)dnl
define(`confCACERT’, `/etc/mail/certs/cacert.pem’)dnl
define(`confSERVER_CERT’, `/etc/mail/certs/mycert.pem’)dnl
define(`confSERVER_KEY’, `/etc/mail/certs/mykey.pem’)dnl
define(`confCLIENT_CERT’, `/etc/mail/certs/mycert.pem’)dnl
define(`confCLIENT_KEY’, `/etc/mail/certs/mykey.pem’)dnl
测试 Sendmail 是否编译支持 STARTTLS:
$ sendmail -bt -d0.8 < /dev/null
Compiled with: DNSMAP HESIOD HES_GETMAILHOST LDAPMAP LOG MAP_REGEX
MATCHGECOS MILTER MIME7TO8 MIME8TO7 NAMED_BIND NETINET NETINET6
NETUNIX NEWDB NIS PIPELINING SASLv2 SCANF STARTTLS TCPWRAPPERS
USERDB USE_LDAP_INIT
m4 /etc/mail/sendmail.mc >/etc/mail/sendmail.cf
service sendmail restart
6.从客户端检查:
telnet mail.freelamp.com 25
EHLO your_hostname
应该看到:
250-STARTTLS
至此, SMTP 的加密功能完成,下面结合 Spamassassin 的反垃圾邮件功能。
spamassassin 结合 procmail 实现 Anti Spamming 机制:
vi /etc/sysconfig/spamassassin
SPAMDOPTIONS=”-d -c -l -m5 -H”
建立 /etc/procmailrc 文件:
[root@freelamp mail]# cat /etc/procmailrc
# /etc/procmailrc
LOGABSTRACT=all
LOGFILE=/var/spool/mail/procmail.log
VERBOSE=off
# Send all mail through Spamassassin
:0 fw
* < 256000
| /usr/bin/spamc -u mail
:0:
* ^X-Spam-Level: \*\*\*\*\*\*\*\*\*\*
/var/mail/spam10
如果 SA 分数大于10 的话,邮件就被移到 /var/mail/spam10 文件里。
而 procmail.log 里面会看到下面的日志:
From CharleyhaugenKoch@wftv.com Sat Oct 18 00:46:18 2008
Subject: [SPAM] free slot machines to play
Folder: /var/mail/spam10 2662
用 statmail /var/spool/mail/procmail.log 可以查看邮件过滤的统计。
其他需要注意的一些小事情:
其他,每次修改配置,需要重启服务,例如:
service spamassassin restart
可以修改 /etc/mail/spamassassin/local.cf 来添加白名单,黑名单等等。
sendmail 对多个 domain 的支持:
把需要转发的域名加入 /etc/mail/local-host-names
修改域名,用户映射表:/etc/mail/virtusertable
makemap hash /etc/mail/virtusertable < /etc/mail/virtusertable
对 alias 的修改: /etc/aliases,然后运行 newaliases 。
ThunderBird 邮件客户端使用加密的 SMTP/POP3 的设置:
POP3S: 账户设置->服务器设置->安全设置->SSL,端口会自动变成 995 。
SMTPS: 外发服务器(SMTP)->也是选择 SSL,端口自动变成 465。
安装 Remember Mismatched Domains 1.4.6 插件 (https://addons.mozilla.org/en-US/thunderbird/addon/2131)
以解决每次都遇到 Remember Mismatched Domains Extension – Mozilla Add-ons
thunderbird security error domain name mismatch
iptables 的设置文件为: /etc/sysconfig/iptables ,修改后 servie iptables restart
SA 默认的分数清单:
http://spamassassin.apache.org/tests_3_2_x.html
From - http://freelamp.com/58139
 
2010年01月29日 星期五 16:45
添加samba用户并设定密码的方法:
1.直接用mksmbpasswd.sh这个工具将系统用户转换成samba用户
cat /etc/passwd | mksmbpasswd.sh >/etc/samba/smbpasswd
2.用smbpasswd命令直接设置.首先要添加系统用户然后用
smbpasswd -a 用户名 #添加samba用户
smbpasswd -e 用户名 #激活用户
 
2010年01月13日 星期三 11:18
生成密钥对文件
Linux实战:用SSH远程管理RHEL 5

将公钥复制到远程计算机

Linux实战:用SSH远程管理RHEL 5

再次连接到服务器

Linux实战:用SSH远程管理RHEL 5

将私钥文件保存到本机

Linux实战:用SSH远程管理RHEL 5
 
2010年01月11日 星期一 13:57

#检查自带的yum 包

[root@ns ~]# rpm -qa|grep yum

clip_image002

#卸载所有yum开头的软件包

[root@ns ~]# rpm -e --nodeps yum-metadata-parser

[root@ns ~]# rpm -e --nodeps yum

[root@ns ~]# rpm -e --nodeps yum-updatesd

[root@ns ~]# rpm -e --nodeps yum-rhn-plugin

[root@ns ~]# rpm -e --nodeps yum-security

[root@ns ~]# rpm -e --nodeps yum-metadata-parser

#下载安装中科大2个软件包

wget http://centos.ustc.edu.cn/centos/5.3/os/i386/CentOS/yum-3.2.19-18.el5.centos.noarch.rpm

wget http://centos.ustc.edu.cn/centos/5.3/os/i386/CentOS/yum-metadata-parser-1.1.2-2.el5.i386.rpm

rpm -ivh yum-metadata-parser-1.1.2-2.el5.i386.rpm

rpm -ivh --nodeps yum-3.2.19-18.el5.centos.noarch.rpm

#下载中科大的yum配置文件

[root@ns ~]# cd /etc/yum.repos.d/

[root@ns ~]# wget http://centos.ustc.edu.cn/CentOS-Base.repo.5

[root@ns ~]# mv CentOS-Base.repo.5 CentOS-Base.repo

#修改yum配置文件内容

在vi编辑器中进行全文件替换,保存退出。

:1,$s/$releasever/5.3/g

#更新yum 库

[root@ns ~]# yum update

 
2009年12月31日 星期四 13:32

自动ssh登录的几种方法
此帖转载自:http://blueicer.blog.51cto.com/395686/88175

不过好像那个地方的也是转载。

我依照下面的方法尝试了一下。在2中其实并不需要# ssh -i /root/.ssh/id_rsa_192.168.60.110 someone@192.168.60.110 这样写。只需要ssh root@192.168.60.110即可。或许是版本的问题吧。

1. 自动ssh/scp方法==

A为本地主机(即用于控制其他主机的机器) ;
B为远程主机(即被控制的机器Server), 假如ip为192.168.60.110;
A和B的系统都是Linux

在A上运行命令:
# ssh-keygen -t rsa (连续三次回车,即在本地生成了公钥和私钥,不设置密码)
# ssh root@192.168.60.110 "mkdir .ssh" (需要输入密码)
# scp ~/.ssh/id_rsa.pub root@192.168.60.110 :.ssh/id_rsa.pub (需要输入密码)

在B上的命令:
# touch /root/.ssh/authorized_keys (如果已经存在这个文件, 跳过这条)
# cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys (将id_rsa.pub的内容追加到authorized_keys 中)

回到A机器:
# ssh root@192.168.60.110 (不需要密码, 登录成功)


2. 控制n个机器如上所述自动登录
那就需要n对钥匙(密钥和公钥), ssh-keygen 命令可以随意更改钥匙对的名字, 比如:
# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): /root/.ssh/id_rsa_192.168.60.110

这样私钥和公钥的名字分别就是: id_rsa_192.168.60.110和 id_rsa_192.168.60.110.pub;然后将 id_rsa_192.168.60.110.pub 文件的内容, 追加到sever的 ~/.ssh/authorized_keys文件中,最后, 在本地用ssh命令的 -i 参数指定本地密钥, 并登录:
# ssh -i /root/.ssh/id_rsa_192.168.60.110 someone@192.168.60.110

scp也是一样的
# scp -i /root/.ssh/id_rsa_192.168.60.110 filename someone@192.168.60.110 :/home/someone

在文件.bashrc中加下两行,每次做同样的操作就不用敲入这样长的命令了:
alias sshcell='ssh -i /root/.ssh/id_rsa_192.168.60.110 someone@192.168.60.110 '
alias scpcell='scp -i /root/.ssh/id_rsa_192.168.60.110 filename someone@192.168.60.110 :/home/someone'

这样,直接键入一下指令实现ssh和scp自动登录:
# sshcell
# scpcell


3. 自动ssh/scp脚本
如果需要从A,到B,然后才能够到C,那么需要ssh和scp两次,是比较麻烦的。
ssh自动登录:
#!/usr/bin/expect -f
set timeout 30
spawn ssh weiqiong@B
expect "password:"
send "pppppp\r"
expect "]*"
send "ssh weiqiong@C\r"
expect "password:"
send "pppppp\r"
interact


scp从A拷贝文件到C:
#!/usr/bin/expect -f
set timeout 300
set file [lindex $argv 0]
spawn scp $file weiqiong@B:/home/weiqiong
expect "password:"
send "pppppp\r"
expect "]*"
spawn ssh weiqiong@B
expect "password:"
send "pppppp\r"
expect "]*"
send "scp $file weiqiong@C:/home/weiqiong\r"
expect "password:"
send "pppppp\r"
expect "]*"
exit
interact

scp从C拷贝文件到A:
#!/usr/bin/expect -f
set timeout 300
set file [lindex $argv 0]
spawn ssh weiqiong@B
expect "password:"
send "pppppp\r"
expect "]*"
send "scp weiqiong@C:/home/weiqiong/$file .\r"
expect "password:"
send "pppppp\r"
expect "]*"
send "exit\r"
expect "]*"
spawn scp weiqiong@B:/home/weiqiong/$file .
expect "password:"
send "pppppp\r"
interact

4. 建立ssh/scp通道
比如说我的机器是A,中间服务器为B,目标服务器是C<br>
从A可以ssh到B,从B可以ssh到C,但是A不能直接ssh到C<br>
现在展示利用ssh通道技术从A直接传输文件到C<br>
1. ssh -L1234:C:22 userid@B<br>
input B's password<br>
(1234是本机A的空闲端口,该指令需要A机器上的root用户权限,实际上是在本机1234端口建立了一个通道)<br>

2. 打开一个新的console,键入:<br>
scp -P1234 filename userid@localhost:<br>
input C's password

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/cctt_1/archive/2009/10/14/4667604.aspx

 
2009年12月30日 星期三 9:29

转载自:http://www.wenzizone.cn/?p=292

今天蚊子的一台接口程序的apache不知道被谁起错了,本来应该是编译安装的,结果起的是系统自带的那个,翻了所有日志也看不出什么端倪,后来在网上,发现了psacct这个,这个进程可以记录所有用户执行过的命令

对于centos来讲,默认是安装好了的

# rpm -qa|grep acct
psacct-6.3.2-44.el5

如果没有的话,使用yum安装就好

# yum –y install psacct

启动psacct/acct服务
在Ubuntu/Debian Linux系统上, pacct可以自动启动.(安装包会在系统上创建一个/var/account/pacct文件). 但是在Red Hat/Fedora Core/Cent OS, 你需要手动启动psacct服务. 敲入下面两个命令创建/var/account/pacct文件和启动pacct服务:
# chkconfig psacct on
# /etc/init.d/psacct start
现在我们可以了解如何利用这些工具来监视用户的命令和时间.

显示用户连线时间的统计信息
命令可以根据登陆数/退出数在屏幕上打印出用户的连线时间(单位为小时). 总计时间也可以打印出来. 如果你执行没有任何参数的ac命令, 屏幕将会显示总计的连线时间:
$ ac
输出:
total 95.08
显示每一天的连线统计时间:
$ ac -d
输出:
Nov 1 total 8.65
Nov 2 total 5.70
Nov 3 total 13.43
Nov 4 total 6.24
Nov 5 total 10.70
Nov 6 total 6.70
Nov 7 total 10.30
.....
..
...
Nov 12 total 3.42
Nov 13 total 4.55
Today total 0.52
显示每一个用户的总计连线时间和所有用户总计连线时间:
$ ac -p
输出:
vivek 87.49
root 7.63
total 95.11

查找用户过去执行的命令
你可以使用lastcomm命令打印出用户过去执行的命令. 你也可以通过用户名, tty名或命令名来搜索以往执行的命令.
比如显示vivek用户过去执行的命令:
$ lastcomm vivek
输出:
CODE:
userhelper        S   X vivek pts/0      0.00 secs Mon Nov 13 23:58
userhelper        S     vivek pts/0      0.00 secs Mon Nov 13 23:45
rpmq                    vivek pts/0      0.01 secs Mon Nov 13 23:45
rpmq                    vivek pts/0      0.00 secs Mon Nov 13 23:45
rpmq                    vivek pts/0      0.01 secs Mon Nov 13 23:45
gcc                     vivek pts/0      0.00 secs Mon Nov 13 23:45
which                   vivek pts/0      0.00 secs Mon Nov 13 23:44
bash               F    vivek pts/0      0.00 secs Mon Nov 13 23:44
ls                      vivek pts/0      0.00 secs Mon Nov 13 23:43
rm                      vivek pts/0      0.00 secs Mon Nov 13 23:43
vi                      vivek pts/0      0.00 secs Mon Nov 13 23:43
ping              S     vivek pts/0      0.00 secs Mon Nov 13 23:42
ping              S     vivek pts/0      0.00 secs Mon Nov 13 23:42
ping              S     vivek pts/0      0.00 secs Mon Nov 13 23:42
cat                     vivek pts/0      0.00 secs Mon Nov 13 23:42
netstat                 vivek pts/0      0.07 secs Mon Nov 13 23:42
su                S     vivek pts/0      0.00 secs Mon Nov 13 23:38
每一行信息都在屏幕上打印出来, 我们以第一行输出项为例:
userhelper S X vivek pts/0 0.00 secs Mon Nov 13 23:58
分析:
. userhelper 是进程的命令名
. S和X是标志信息, 由系统记帐程序管理. 每一个标志的含义是:
.. S -- 命令由超级用户执行
.. F -- 命令由fork产生, 但是没有exec(执行)
.. D -- 命令终止并创建一个core文件.
.. X -- 命令被SIGTERM信号终止.
. vivek是执行命令的用户名
. prts/0 终端名
. 0.00 secs -- 进程退出时间

你可以通过执行下面的命令来搜索进程记帐日志:
$ lastcomm rm
$ lastcomm passwd
输出:
rm                S     root     pts/0      0.00 secs Tue Nov 14 00:39
rm                S     root     pts/0      0.00 secs Tue Nov 14 00:39
rm                S     root     pts/0      0.00 secs Tue Nov 14 00:38
rm                S     root     pts/0      0.00 secs Tue Nov 14 00:38
rm                S     root     pts/0      0.00 secs Tue Nov 14 00:36
rm                S     root     pts/0      0.00 secs Tue Nov 14 00:36
rm                S     root     pts/0      0.00 secs Tue Nov 14 00:35
rm                S     root     pts/0      0.00 secs Tue Nov 14 00:35
rm                      vivek    pts/0      0.00 secs Tue Nov 14 00:30
rm                      vivek    pts/1      0.00 secs Tue Nov 14 00:30
rm                      vivek    pts/1      0.00 secs Tue Nov 14 00:29
rm                      vivek    pts/1      0.00 secs Tue Nov 14 00:29
你可以通过终端名pts/1作为关键字来搜索进程记帐日志:
$ lastcomm pts/1

统计记帐信息
你可以使用sa命令打印过去执行命令的统计信息. 另外, sa命令保存了一个叫做savacct文件, 文件包含了命令被调用的次数和资源使用的次数. 而且sa还提供每一个用户的统计信息, 这些信息保存在一个叫做usracct的文件当中.
# sa
输出:
579     222.81re       0.16cp     7220k
       4       0.36re       0.12cp    31156k   up2date
       8       0.02re       0.02cp    16976k   rpmq
       8       0.01re       0.01cp     2148k   netstat
      11       0.04re       0.00cp     8463k   grep
      18     100.71re       0.00cp    11111k   ***other*
       8       0.00re       0.00cp    14500k   troff
       5      12.32re       0.00cp    10696k   smtpd
       2       8.46re       0.00cp    13510k   bash
       8       9.52re       0.00cp     1018k   less
以结果输出的第一行为例:
4 0.36re 0.12cp 31156k up2date
分析:
. 0.36re "实际时间" 单位为分钟.
. 0.12cp 系统和用户时间总数(CPU时间, 单位为分钟)
. 31156K 核心使用所占的平均CPU时间, 一个单元的大小为1K
. up2date 命令名

显示每一个用户:
# sa -u
输出:
root       0.00 cpu      595k mem accton
root       0.00 cpu    12488k mem initlog
root       0.00 cpu    12488k mem initlog
root       0.00 cpu    12482k mem touch
root       0.00 cpu    13226k mem psacct
root       0.00 cpu      595k mem consoletype
root       0.00 cpu    13192k mem psacct           *
root       0.00 cpu    13226k mem psacct
root       0.00 cpu    12492k mem chkconfig
postfix    0.02 cpu    10696k mem smtpd
vivek      0.00 cpu    19328k mem userhelper
vivek      0.00 cpu    13018k mem id
vivek      0.00 cpu    13460k mem bash             *
lighttpd   0.00 cpu    48240k mem php              *
上面了显示了每一个用户的进程数量和CPU时间数

# sa -m
输出:
667     231.96re       0.17cp     7471k
root                                  544      51.61re       0.16cp     7174k
vivek                                 103      17.43re       0.01cp     8228k
postfix                                18     162.92re       0.00cp     7529k
lighttpd                                2       0.00re       0.00cp    48536k

找出谁在占用CPU
你可以通过查看re, k, cp/cpu(见上面输出解释)时间来找出可疑的活动, 或某个用户/命令占用了所有的CPU时间. 如果CPU/Memeory使用数(命令)在不断增加, 可以说明命令存在问题.
另外上面的所有命令和软件包也可以在其它的Unix类操作系统平台上运行, 比如Solaris和*BSD操作系统.

 
   
 
 
文章分类
 
 
Mysql(61)
 
Java(4)
 
Linux(238)
 
Cisco(16)
 
 
Jira(1)
 
Oracle(15)
 
Mail(12)
 
 
 
 
 
 
Live(81)
 
H3c(1)
 
Unix(2)
 
 
Php(3)
 
Lamp(19)
 
 
 
 
Isa(1)
 
 
 
 
 
 
 
Lvs(7)
 
Safe(19)
 
Rhce(99)
 
 
 
Cvs(4)
 
Ldap(2)
 
 
 
 
 
 
 
   
 
文章存档
 
     
 
最新文章评论
  

[表情]
 

230230yang@163.com请你发一份给我吧,谢谢了
 

[表情]
 

2003下是啥咩问题呢 权限给到位了
 

老大,为什么我按照你的方法为什么会不行啊。我的IP也添加进去了哦。 是不是因为我
   
帮助中心 | 空间客服 | 投诉中心 | 空间协议
©2012 Baidu