2012年10月25日 星期四

修改mysql密码

1.使用mysqladmin修改mysql密码
C:\>mysqladmin -udbuser -p password newpass
Enter password: oldpass
当然用此命令的前提是你把mysql加入了环境变量,如果没有加入环境变量的话那只能在命令行下cd到mysqladmin所在的目录下与此那个次命令了!
-----------------------------------------
2.重置root密码
方法一:
在my.ini的[mysqld]字段加入:
skip-grant-tables
重启mysql服务,这时的mysql不需要密码即可登录数据库
然后进入mysql
mysql>use mysql;
mysql>update user set password=password('新密码') WHERE User='root';
mysql>flush privileges;
运行之后最后去掉my.ini中的skip-grant-tables,重启mysqld即可。
修改mysql密码方法二:
不使用修改my.ini重启服务的方法,通过非服务方式加skip-grant-tables运行mysql来修改mysql密码
停止mysql服务
打开命令行窗口,在bin目录下使用mysqld-nt.exe启动,即在命令行窗口执行: mysqld-nt --skip-grant-tables
然后另外打开一个命令行窗口,登录mysql,此时无需输入mysql密码即可进入。
按以上方法修改好密码后,关闭命令行运行mysql的那个窗口,此时即关闭了mysql,如果发现mysql仍在运行的话可以结束掉对应进程来关闭。
启动mysql服务

在CSS中 ID与Class的区别

id与class
class的主要功能,用来对对象的样式设置,id除了可以定义样式之外,还可以成为网站交互行为一个特使标识。
id名字在每个页面中只能允许出现一次。
何时使用id:
1.样式只使用一次
2.用于对页面的区域进行标识
何时使用class
1.同一页面中出现多次
2.通用及经常使用的元素
3.class高级使用技巧-同事使用多个类
<p class="content red newsblock">hello</p>

div与span
div对象的默认显示模式display:block; span对象默认显示模式display:inline;
div对象的任务是呈现一个块状内容; span对行内元素进行结构编码以方便样式设计

rpc.statd端口及进程的处理

最近linux系统安全加固,一些漏洞修复经验和大家分享一下!
RPC Statd 服务  RPC类    危险级别:::高 
发现主机##########################################################
漏洞编号
漏洞分类RPC类
危险级别  高 
影响平台AIX IRIX DG/UX HPUX: 9.x, HPUX: 10.x NEC EWS-UX/V,NEC UP-UX/V,NEC UX/4800, NeXT STEP NCR  linux
详细描述:
  远程rpc.lockd 文件可能提供假的信息给rpc.statd 文件,使文件可以被移动或新建。RPC statd 与RPC lockd 一起工作维护状态信息,来提供跨NKS文件锁定的崩溃及恢
复功能。因为statd不验证从远程lockd 收到的信息,所以攻击者可以发送RPC去建立或取消系统上任何文件。
修补建议 建议您采取以下措施进行修补以降低威胁: 请用户联系供应商或他们的网站,索取补丁或参考供应商的指示。选定以下的操作系统:
1.Hewlett-Packard: 安装补丁前,请阅读Security Advisory HPSBUX9607-032 "Security Vulnerability in rpc.pcnfsd & rpc.statd." 输入patch Ids 作为搜索
字串及点击Search Technical Knowledge Base 链接,就可以看到这篇文章。The HP Patch Database 不需要付费口令。网址:http://us-
support.external.hp.com/wpsl/bin/doc.pl/.
登录后,到Individual Patches (Patch Database) 的库,搜索符合你漏洞版本的HP-UX 扑丁。
2.IBM 的补丁网址:http://aix.boulder.ibm.com/aix.us/aixfixes.
输入APAR 号,就可以得到有关资料及补丁。
3.Sony: NEWS-OS Patch Ids: 0124, 6063, 6176, 及6207.
4.NEWS-OS 补丁的网址:ftp://ftp1.sony.co.jp/pub/patch/news-os/un-official.
5.DEC (Digital Equipment Corporation): Ultrix ECO ID#: SSRT03901;OSF/1 ECO ID#: SSRT038301 网址 :
http://www.service.digital.com/html/patch_service.html
6.SunOS 补丁的网址:http://sunsolve.sun.com/sunsolve/pubpatches/patches.html.
7.Silicon Graphics:之前的版本升级到IRIX 5.3;之后的版本使用SGI Security Advisory描述的修复方法。安装补丁前,请阅读SGI Security Advisory 19971201-01-
P: "Buffer Overrun Vulnerability in statd(1M) Program" 网址:ftp://sgigate.sgi.com/security/19971201-01-P1391.SGI
补丁的网址:http://www.sgi.com/Support/security/security.html.
以前的版本一定要升级或采用“安全建议”给出的暂时修复方法,专为IRIX 5.3 平台的补丁在网址:ftp://sgigate.sgi.com/patches/5.3/patch1391.tar
8.linux平台: 联系系统厂商获取最新版本。 www.2cto.com
#########################################################################
我的修复之旅!
如果你的系统没有使用NFS服务就关掉rpc.statd服务,下面说一下,RPC的作用和如何关闭!
CentOS使用核心级的支持和守护进程的组合来提供NFS文件共享.NFS依靠远程过程调用(RPC)在客户端和服务器端路由请求。而在Linux下RPC服务由portmap服务控制。为了能够正常
使用NFS,还需要一些相关的服务来协同工作:
nfs:启动相应RPC服务进程来服务对于NFS文件系统的请求。
nfslock:一个可选的服务,用于启动相应的RPC进程,允许NFS客户端在服务器上对文件加锁。
portmap:Linux的RPC服务,它响应RPC服务的请求和与请求的RPC服务建立连接。
下面的RPC后台进程是为NFS提供服务的
rpc.mountd:这个进程接受来自NFS客户端的加载请求和验证请求的文件系统正在被输出。这个进程由NFS服务自动启动,不需要用户的配置。
rpc.nfsd:这个进程是NFS服务器.它和Linux核心一起工作来满足NFS客户端的动态需求,例如提供为每个NFS客户端的每次请求服务器线程。这个进程对应于nfs服务。
rpc.lockd:一个可选的进程,它允许NFS客户端在服务器上对文件加锁。这个进程对应于nfslock服务。
rpc.statd:这个进程实现了网络状态监控(NSM)RPC协议,通知NFS客户端什么时候一个NFS服务器非正常重启动。这个进程被nfslock服务自动启动。不需要用户的配置。
rpc.rquotad:这个进程对于远程用户提供用户配额信息。这个进程被nfs服务自动启动,不需要用户的配置。
所以说,要想关掉CentOS的rpc.statd服务,我们只需要执行下面的命令就能搞定
rpcgssd, rpcidmapd, rpcsvcgssd
用于NFS v4。除非你需要或使用NFS v4,否则关闭它。
具体操作如下:
1停服务
service nfslock stop
service portmap stop
/etc/init.d/rpcgssd stop
/etc/init.d/rpcidmapd stop
/etc/init.d/rpcsvcgssd stop
2禁止开机启动
chkconfig nfslock off
chkconfig portmap off
chkconfig  rpcgssd off
chkconfig  rpcidmapd off
chkconfig  rpcsvcgssd off
3查看状态
/etc/init.d/nfslock status
/etc/init.d/portmap status
/etc/init.d/rpcgssd status
/etc/init.d/rpcidmapd status
/etc/init.d/rpcsvcgssd status

2012年10月19日 星期五

不同网段之间的nfs以及rsync

一共3台linux,如:HostA,HostB,HostC,其中,a与C不能互访,且三台主机都有各自的网段但都是10开头的网段

A:10.2.3.10

B:10.29.33.2

C:10.4.3.90

B可以访问A和C,所以试想将a和c主机通过b主机来进行同步,将要同步的目录使用nfs同时挂载到B主机上,而后再用rsync来进行同步

挂载时遇到问题时nfs不能挂载

/doc (rw,sync,no_root_squash,no_all_squash,insecure)
使用这样配置,任何主机都可挂载只适用临时的挂载,工作完成后即时的去掉共享

rsync的使用看前几篇

2012年10月18日 星期四

rsync 工具介绍及配置

rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了——remote sync。它的特性如下:

  可以镜像保存整个目录树和文件系统。

  可以很容易做到保持原来文件的权限、时间、软硬链接等等。

  无须特殊权限即可安装。

  优化的流程,文件传输效率高。

  可以使用rcp、ssh等方式来传输文件,当然也可以通过直接的socket连接。

  支持匿名传输,以方便进行网站镜象。

  软件下载

  rsync的主页地址为:http://rsync.samba.org/

rsync配置文件配置格式

name = value

rsync配置参数:

[Global parameters]

motd file:  指定一个关于网站的信息和法律公告信息的文件

pid file:  rsync daemon的进程IP文件

port:  rsync daemon 的缺省端口号:873,当rsync运行在xinetd模式下则端口被忽略

address: rsync daemon监听的IP,当rsync运行在xinetd模式下则IP被忽略

socket:rsync daemon的socket文件

[module parameters]

comment:模块的描述性说明

path:指定同步的文件目录

use chroot:如果"use chroot"指定为true,那么rsync在传输文件以前首先chroot到path参数所指定的目  录下。这样做的原因是实现额外的安全防护,但是缺点是需要以roots权限,并且不能备份指向外部的符号连接所指向的目录文件。默认情况下chroot值为true。

numeric ids

munge symlinks

charset

max connections:指定该模块的最大并发连接数量以保护服务器,超过限制的连接请求将被告知随后再试。默认值是0,也就是没有限制。

log file:指定rsync的日志文件

syslog facility:是否使用系统日志工具。可以有如下选项:

auth, authpriv, cron, daemon, ftp, kern, lpr, mail, news, security, syslog, user, uucp, local0, local1, local2, local3, local4, local5, local6 and local7. The default is daemon.

max verbosity

lock file:指定支持max connections参数的锁文件

read only:该选项设定是否允许客户上载文件。如果为true那么任何上载请求都会失败,如果为false并且服务器目录读写权限允许那么上载是允许的。默认值为true。

write only:该选项设定是否允许客户下载文件。如果为true那么任何下载请求都会失败,如果为false并且服务器目录读写权限允许那么下载是允许的。默认值为true。

list:该选项设定当客户请求可以使用的模块列表时,该模块是否应该被列出。如果设置该选项为false,可以创建隐藏的模块。默认值是true。

uid:指定传送数据的帐号,仅仅用于指定模块。默认是:-2 ,即Nobody 帐号.

gid:指定传送数据的帐号组,仅仅用于指定模块。默认是:-2 ,即Nobody 组.

fake super

filter

exclude:用来指定多个由空格隔开的多个文件或目录(相对路径),并将其添加到exclude列表中。这等同于在客户端命令中使用--exclude来指定模式,一个模块只能指定一个exclude选项。但是需要注意的一点是该选项有一定的安全性问题,客户很有可能绕过exclude列表,如果希望确保特定的文件不能被访问,那就最好结合uid/gid选项一起使用。

include:用来指定不排除符合要求的文件或目录。这等同于在客户端命令中使用--include来指定模式,结合include和exclude可以定义复杂的exclude/include规则。

exclude from:指定一个包含exclude模式的定义的文件名,服务器从该文件中读取exclude列表定义。

include from:指定一个包含include模式的定义的文件名,服务器从该文件中读取include列表定义。

incoming chmod:

outgoing chmod

auth users:设置连接指定模块的授权用户名。

secrets file:密码认证文件,格式为:username:password

strict modes:该选项指定是否监测密码文件的权限,如果该选项值为true那么密码文件只能被rsync服务器运行身份的用户访问,其他任何用户不可以访问该文件。默认值为true。

hosts allow:该选项指定哪些IP的客户允许连接该模块。客户模式定义可以是以下形式:
单个IP地址,例如:192.167.1.1整个网段,例如:192.168.1.0/24,也可以是192.168.1.0/255.255.255.0多个IP或网段需要用空格隔开,“*”则表示所有,默认是允许所有主机连接。

hosts deny:指定不允许连接rsync服务器的机器,可以使用hosts allow的定义方式来进行定义。默认是没有hosts deny定义。

ignore errors:指定rsyncd在判断是否运行传输时的删除操作时忽略server上的IO错误,一般来说rsync在出现IO错误时将将跳过--delete操作,以防止因为暂时的资源不足或其它IO错误导致的严重问题。

ignore nonreadable:指定rysnc服务器完全忽略那些用户没有访问权限的文件。这对于在需要备份的目录中有些文件是不应该被备份者得到的情况是有意义的。

transfer logging:使rsync服务器使用ftp格式的文件来记录下载和上载操作在自己单独的日志中。

log format:通过该选项用户在使用transfer logging可以自己定制日志文件的字段。

#The single-character escapes that are understood are as follows:

#%a the remote IP address

#%b the number of bytes actually transferred

#%B the permission bits of the file (e.g. rwxrwxrwt)

#%c the total size of the block checksums received for the basis file (only when sending)

#%f the filename (long form on sender; no trailing "/")

#%G the gid of the file (decimal) or "DEFAULT"

#%h the remote host name

#%i an itemized list of what is being updated

#%l the length of the file in bytes

#%L the string " -> SYMLINK", " => HARDLINK", or "" (where SYMLINK or HARDLINK is a filename)

#%m the module name

#%M the last-modified time of the file

#%n the filename (short form; trailing "/" on dir)

#%o the operation, which is "send", "recv", or "del." (the latter includes the trailing period)

#%p the process ID of this rsync session

#%P the module path

#%t the current date time

#%u the authenticated username or an empty string

#%U the uid of the file (decimal)

#For a list of what the characters mean that are output by "%i", see the --itemize-changes option in the rsync manpage.

timeout:该选项可以覆盖客户指定的IP超时时间。通过该选项可以确保rsync服务器不会永远等待一个崩溃的客户端。超时单位为秒钟,0表示没有超时定义,这也是默认值。对于匿名rsync服务器来说,一个理想的数字是600。

refuse options:通过该选项可以定义一些不允许客户对该模块使用的命令参数列表。这里必须使用命令全名,而不能是简称。但发生拒绝某个命令的情况时服务器将报告错误信息然后退出。如果要防止使用压缩,应该是:"dont compress = *"。

dont compress:指定那些不进行压缩处理再传输的文件,默认值是*.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz

以上为rsync 官方的关于rsync配置文件中的所有配置选项。中文是我自己翻译解释的,有些选项还没翻译解释,主要是因为还没有完全理解透彻官方的英文解释。

rsync的使用方法:

Local:  rsync [OPTION...] SRC... [DEST]

Access via remote shell:

  Pull(拉): rsync [OPTION...] [USER@]HOST:SRC... [DEST]

  Push(推): rsync [OPTION...] SRC... [USER@]HOST:DEST

Access via rsync daemon:

  Pull(拉): rsync [OPTION...] [USER@]HOST::SRC... [DEST]

        rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]

  Push(推): rsync [OPTION...] SRC... [USER@]HOST::DEST

        rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST

“拉”复制是指从远程主机复制文件到本地主机

“推”复制是指从本地主机复制文件到远程主机

相关命令参数:

rsync参数的具体解释如下:

官方的英文解释:http://rsync.samba.org/ftp/rsync/rsync.html

-v, --verbose 详细模式输出

-q, --quiet 精简输出模式

-c, --checksum 打开校验开关,强制对文件传输进行校验

-a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD

-r, --recursive 对子目录以递归模式处理

-R, --relative 使用相对路径信息

-b, --backup 创建备份,也就是对于目的已经存在有同样的文件名时,将老的文件重新命名为~filename。可以使用--suffix选项来指定不同的备份文件前缀。

--backup-dir 将备份文件(如~filename)存放在在目录下。

-suffix=SUFFIX 定义备份文件前缀

-u, --update 仅仅进行更新,也就是跳过所有已经存在于DST,并且文件时间晚于要备份的文件。(不覆盖更新的文件)

-l, --links 保留软链结

-L, --copy-links 想对待常规文件一样处理软链结

--copy-unsafe-links 仅仅拷贝指向SRC路径目录树以外的链结

--safe-links 忽略指向SRC路径目录树以外的链结

-H, --hard-links 保留硬链结     -p, --perms 保持文件权限

-o, --owner 保持文件属主信息     -g, --group 保持文件属组信息

-D, --devices 保持设备文件信息    -t, --times 保持文件时间信息

-S, --sparse 对稀疏文件进行特殊处理以节省DST的空间

-n, --dry-run现实哪些文件将被传输

-W, --whole-file 拷贝文件,不进行增量检测

-x, --one-file-system 不要跨越文件系统边界

-B, --block-size=SIZE 检验算法使用的块尺寸,默认是700字节

-e, --rsh=COMMAND 指定使用rsh、ssh方式进行数据同步

--rsync-path=PATH 指定远程服务器上的rsync命令所在路径信息

-C, --cvs-exclude 使用和CVS一样的方法自动忽略文件,用来排除那些不希望传输的文件

--existing 仅仅更新那些已经存在于DST的文件,而不备份那些新创建的文件

--delete 删除那些DST中SRC没有的文件

--delete-excluded 同样删除接收端那些被该选项指定排除的文件

--delete-after 传输结束以后再删除

--ignore-errors 即使出现IO错误也进行删除

--max-delete=NUM 最多删除NUM个文件

--partial 保留那些因故没有完全传输的文件,以是加快随后的再次传输

--force 强制删除目录,即使不为空

--numeric-ids 不将数字的用户和组ID匹配为用户名和组名

--timeout=TIME IP超时时间,单位为秒

-I, --ignore-times 不跳过那些有同样的时间和长度的文件

--size-only 当决定是否要备份文件时,仅仅察看文件大小而不考虑文件时间

--modify-window=NUM 决定文件是否时间相同时使用的时间戳窗口,默认为0

-T --temp-dir=DIR 在DIR中创建临时文件

--compare-dest=DIR 同样比较DIR中的文件来决定是否需要备份

-P 等同于 --partial

--progress 显示备份过程

-z, --compress 对备份的文件在传输时进行压缩处理

--exclude=PATTERN 指定排除不需要传输的文件模式

--include=PATTERN 指定不排除而需要传输的文件模式

--exclude-from=FILE 排除FILE中指定模式的文件

--include-from=FILE 不排除FILE指定模式匹配的文件

--version 打印版本信息

--address 绑定到特定的地址

--config=FILE 指定其他的配置文件,不使用默认的rsyncd.conf文件

--port=PORT 指定其他的rsync服务端口

--blocking-io 对远程shell使用阻塞IO

-stats 给出某些文件的传输状态

--progress 在传输时现实传输过程

--log-format=formAT 指定日志文件格式

--password-file=FILE 从FILE中得到密码

--bwlimit=KBPS 限制I/O带宽,KBytes per second      -h, --help 显示帮助信息

rsync实例配置

系统环境:RHEL5.5

软件版本:rsync-3.0.8.tar.gz

安装说明:需在两台server上都安装

rsync 安装配置参数:

1.先建立个同步数据的帐号

groupadd rsync

useradd -g rsync -s /sbin/nologin -d /dev/null rsync

passwd rsync

2.配置

./configure --prefix=/usr/local/rsync --with-rsyncd-conf=/usr/local/rsync/etc --with-nobody-group=rsync

make && make install

3.建立rsync的配置文件rsyncd.conf

因为configure的时候指定了config的文件路径在/usr/local/rsync/etc 下面,因此需要在此目录下建立配置文件

cd /usr/local/rsync

mkdir etc

cd etc

touch rsyncd.conf

配置文件的配置项根据实际需要配置,我的配置文件如下:

  1. motd file = /usr/local/rsync/etc/rsyncd.motd /*当你登录到服务器上显示的一些信息*/
  2. pid file = /usr/local/rsync/pid/rsyncd.pid
  3. port = 873
  4. address = 192.168.200.133
  5. socket options = /usr/local/rsync/socket/rsyncd.socket
  6. [soft]  /*定义要同步的模块,自己随便定义*/
  7. comment = this is a software reposity /*模块的说明信息*/
  8. path = /soft /*模块的路径*/
  9. use chroot = false
  10. #numeric ids
  11. #munge symlinks
  12. #charset
  13. max connections = 0 /*最大连接数,0表示无限制*/
  14. log file = /usr/local/rsync/log/rsyncd.log /*数据同步日志*/
  15. syslog facility = syslog /*系统日志工具,也可以不定义*/
  16. #max verbosity
  17. lock file = /usr/local/rsync/lock/rsyncd.lock /*锁文件,与最大连接数配合,若超过最大连接数,则锁定相应的模块*/
  18. read only = true
  19. write only = false
  20. list = false
  21. uid = rsync /*同步用的帐号,此账户对模块要有相应的权限*/
  22. gid = rsync /*同步用的帐号组*/
  23. #fake super
  24. #filter
  25. #exclude
  26. #include
  27. #exclude from
  28. #include from
  29. #incoming chmod
  30. #outgoing chmod
  31. auth users = rsync /*授权的帐号,对要同步的模块有相应的权限*/
  32. secrets file = /usr/local/rsync/secrets/rsyncd.secrets /*同步帐号的密码文件*/
  33. strict modes = true /*使用限制模式*/
  34. #hosts allow
  35. #hosts deny
  36. ignore errors = true
  37. ignore nonreadable = false
  38. transfer logging = true /*对传输数据进行日志记录*/
  39. log format = %a-%b-%f-%m-%o-%P-%t-%u /*日志格式*/
  40. timeout = 600 /*传输数据超时时间*/
  41. #refuse options
  42. dont compress = true
  43. #pre-xfer exec
  44. #post-xfer exec

rsync服务器启动

--daemon 是让rsync 以服务器模式运行

/usr/local/rsync/bin --daemon --config=/usr/local/rsync/etc/rsyncd.conf

rsync服务器和防火墙

iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 873 -j ACCEPT

根据以上的配置文件:/usr/local/rsync目录下应该有如下相关目录:

这是top图上服务器上rsync 配置

至于top图上的客户端rsync,因为我做的单项同步,也就从服务器上复制到客户端上,因此客户端只需要安装rsync,不需要配置。

在客户端上执行如下:

我将服务器端的soft模块复制到本地客户端的/soft目录下

输入同步帐号rsync的密码,就开始同步:

sent 130661 bytes  received 250703289 bytes  2099028.87 bytes/sec

total size is 445934450  speedup is 1.78

有两个文件因为没有权限所以提示“permission denied”,

总之,就是大家在设置的时候注意要同步的目录的权限设置!

主要参数范例:

--delete
假如server端有:a , b , c ,三个文件,
client端有:a , b , c , d ,四个文件,使用如下命令:

./rsync -avz --progress --delete rsync@192.168.200.133::soft /soft

将删除client 中的d 文件,其他保持不变。

恢复数据,从client 恢复数据到server端

1.需要在服务器关闭 read only
read only = false ,即开启上传功能

./rsync -avz --progress /soft rsync@192.168.200.133::soft

把client 端/soft 目录中的数据上传到server 192.168.200.133 中的 soft 模块

根据我的配置,服务器上的日志会记录同步的每一个数据,目录,很详细的日志,不过越详细的日志就越大!

大家自己试试看!!

2012年10月17日 星期三

如何做两个远程数据镜像备份?

1…

数据源放在ServerSource下的/data
备份库放在ServerTarget下的/data
ServerSource和ServerTarget都连接到ServerJump,为了安全管理需要,ServerSource和ServerTarget无法直接连通,但ServerSource和ServerTarget都可以和ServerJump连通
也就是:
ServerSource        <======> ServerJump
ServerTarget         <======>    ServerJump
ServerSource        <==XX==>     ServerTarget
所以想通过ServerJump来同步ServerSource和ServerTarget。
1.用scp命令(scp ServerSource:/data ServerTarget:data)可以复制,但由于数据量比较大,且大部分为不用更新的数据,这种方式太费时间和带宽。
2.在ServerJump上rsync好像又不能同步两台远程服务器。
3.ServerJump因为只作跳板,所以硬盘很小,无法先将ServerSource先rsync到本机(ServerJump)再rsync到ServerTarget。
不知有没有命令可以在ServerJump上执行并同步ServerSource:/data到ServerTarget:/data?
即像rsync命令: rsync  ServerSource:/data ServerTarget:data,这个命令rsync不支持两个都是remote的,不知道有没有其它命令或者类似的方式来完成?

2…

rsync 命令不能同时使用远端源 和 远端目标,但您可以将一端设置为NFS,则可当成本地端。

3.

或者通过SSH reverse, 将ServerJump的一个端口转发到ServerSource的rsyncd端口,这样您就可以从ServerTarget上直接访问ServerJump的转发端口,直接使用rsync命令。

4…

不好意思可能我没表述十分清楚,因为安全需要,ServerJump不做任何端口转发映射等,也就是说ServerSource自己是不能有任何主动方式连接到ServerTarget上,ServerTarget同理也是自己不能有任何主动方式连接到ServerSource上,两台之间的唯一允许的方式是都只连接到ServerJump为止,所以顶楼这个要求,而且ServerJump也是有十分严格的防火墙规则,基本上所有的端口全部关闭,只有少量明确已知的商品开放,且像nfs这样需要source和target都export给jump且长期mount是绝对不允许的

5….

端口转发建立在中间的ServerJump上,不需要跟ServerTarget有任何关系。
当您的ServerSource使用ServerJump的转发端口的时候,就像使用ServerJump上的本地服务一样。
在安全上考虑,这样的使用模式,跟您用SCP连接两台服务器是完全一样的。

6…

直接地说,比如当从TARGET连接到JUMP,然后通过端口转发连接到SOURCE。
这同 TARGET 直接连接 SOURCE 是完全不同的,从JUMP到SOURCE的转发过程,
是以 JUMP 的身份发起的连接,而不是 SOURCE发起的,而且通道是建立在SSH上的,
而即使SCP同样也是SSH复制文件。

7…

sorry, ServerJump上端口转发及不同段之间的通过网卡直接路由都不被允许,没办法才有顶楼的苛刻要求

8….

       比如说我的机器是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

ssh转发(实现代理,跳板,加密隧道 ...)

记得第一次做跳板还是高中时代,是台韩国的win2k,装的是Snake的socks代理.
当时还相当紧张,传了一堆工具上去删日志,已经是上世纪末的事了,呵呵.

言归正传,
选择ssh的4个理由:

1、使用方便,功能强大,加密强度高,运行稳定.

2、ssh几乎是*nix系统的标配,不需额外安装.现在的想找台没跑sshd的*nix主机也是件难事.

3、防火墙基本不会对ssh的连接下黑手

4、跨平台,linux BSD UNIX m$ 等不同平台上的ssh都能相互连接.

ssh实现转发,只要用到以下两条命令:

ssh -CfNg -L 6300:127.0.0.1:1080 anyside@192.168.1.119
ssh -CfNg -R 1080:127.0.0.1:6300 anyside@192.168.1.119

不论是做跳板,还是加密隧道,还是加密其他的网络连接也都是这两条命令。
视具体情况而定,有时只要用到其中一条,有时两条都要用到。

条命解释:
-CfNg (照抄即可)
C表示压缩数据传输
f表示后台用户验证,这个选项很有用,没有shell的不可登陆账号也能使用.
N表示不执行脚本或命令
g表示允许远程主机连接转发端口

-L 本地转发

ssh -CfNg -L 6300:127.0.0.1:1080 anyside@192.168.1.119
表示:
1、本机(运行这条命令的主机)和远程主机192.168.1.119建立加密隧道,anyside是远程主机192.168.1.119上的账号。
2、在本机上打开6300端口.用 netstat -an|grep 6300 可看到 127.0.0.1:6300 或 127.0.0.1.6300
3、把本机的6300端口映通过加密隧道射到192.168.1.119的1080端口.

简单说,本机的6300端口就是远程主机192.168.1.119的1080端口。

-R 远程转发

ssh -CfNg -R 1080:127.0.0.1:6300 anyside@192.168.1.119
1、本机(运行这条命令的主机)和远程主机192.168.1.119建立加密隧道,anyside是远程主机192.168.1.119上的账号。
2、在远程主机192.168.1.119上打开1080端口.
3、把本机的6300端口映通过加密隧道射到192.168.1.119的1080端口.

本机的6300端口可直接看作远程主机192.168.1.119的1080端口。

举个实用的例子:
有A、B、C 3台服务器,A,C有公网IP,B是某IDC的服务器无公网IP。
A希望同过B连接C的80端口,A<=>B<=>C

在B上执行如下命令即可:
host-B$ ssh -CfNg -L 6300:127.0.0.1:80 userc@C
host-B$ ssh -CfNg -R 80:127.0.0.1:6300 usera@A

服务器A和服务器C之间,利用跳板服务器B建立了加密隧道。

在A上连接127.0.0.1:80,就等同C上的80端口

需要注意的是:
服务器B上的6300端口的数据没有加密,可被监听,
例:
#tcpdump -s 0 -i lo port 6300

_uacct = "UA-337305-1"; urchinTracker();

2012年10月15日 星期一

最新jdk用wget下载方式

wget --no-cookie --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F" http://download.oracle.com/otn-pub/java/jdk/6u35-b10/jdk-6u35-linux-i586.bin

2012年10月10日 星期三

linux 服务简要说明

NetworkManager 为了自动连接网络的服务    x    对于服务器而言没用  
acpid 电源的on/off等的监视/管理   ■ x 理由同上
anacron 一种计划任务管理 ■ ○
apmd 电源管理 ■ ○
atd 在指定时间执行命令 ■ x 如果用crond,就可以不用它
auditd 检查demo ■ △ 如果用Seliux,需要开启它
autofs 文件系统自动加载卸载功能 ■ △ 只在需要的时候使用,可以停止
avahi-daemon 本地网络服务查找 ■ x 对服务器而言,不要
avahi-dnsconfd Avahi DNS demo x 理由同上
bluetooth 蓝牙无线通信 ■ x 对服务器而言,不要
clvmd Cluster LVM ■ ○ 对于非集群的服务器,关掉
cman ■ ○ 对于非集群的服务器,关掉
conman the console Manager x 不用那玩意,关掉
cpuspeed 调节cpu速度 ■ x 视情况而言吧,建议关掉
crond 与计划任务相当的功能 ■ ○ 强烈建议开启
cups 印刷demo ■ x 不用,关掉它
dnsmasq dns cache ■ x 不用,关掉它
dund 蓝牙设备相关 ■ x 不用,关掉它
firstboot 系统安装后初期设定工具 ■ x 不用,关掉它
gfs global file system ■ ○ 只有选择集群,集群存储是才有
gfs2 ■ ○ 同上
gpm console环境下的鼠标支持 ■ ○ 建议开启
haldaemon 硬件信息收集服务 ■ ○ 建议开启
hidd 蓝牙设备相关 ■ x 不用,关掉它
httpd apache demo ■ x 我不用,所以关掉它
ibmasm ibm硬件管理 ■ x 不用,关掉它
ip6tables ipv6防火墙 ■ △ 视情况,我不用它
ipmi Intelligent Platform Management Interface ■ △ 视情况
iptables ipv4防火墙 ■ △ 视情况,我不用它
ipvsadm 集群负荷分散相关 ■ ○ 我要用它
irda 红外线通信 ■ x 不用,关掉它
irqbalance cpu负载均衡 ■ ○ 多核cpu以上需要
kdump 内核崩溃时转储内存运行参数用的 ■ x 不用,关掉它
kudzu 硬件变动检测 ■ x 不用,关掉它
lm_sensors cpu温度检测工具(?) ■ △ 视情况,我不用它
luci cluster服务相关 ■ ○ 非集群情况下没有吧
lvm2-monitor lvm相关 ■ ○ 非集群情况下没有吧
mcstrans 在开启Selinux下用于检查context的 ■ x 视情况,我不用它
mdmonitor 软Raid管理工具 ■ ○ 视情况,我要用
mdmpd 软Raid管理监视工具 ■ ○ 视情况,我要用
messagebus D-Bus相关 ■ ○ 不用D-Bus情况下,关掉
microcode_ctl ■ x
modclusterd cluster相关 ■ ○ 视情况,我要用
multipathd ■ ○ 视情况,我要用
netconsole ■ x
netfs NFS相关 ■ x
netplugd 网线热插拔监视 ■ x
network ■ ○ 这个服务对服务器来说是必须的吧
nfs NFS Network File System ■ x
nfslock NFS相关 ■ x
nscd name cache,似乎跟DNS相关 ■ x
ntpd Network Time Protocol demo ■ x
oddjobd 与D-Bus相关 ■ x
openais 与Cluster相关,Heartbeat类似 ■ ○ 我要用
pand BlueZ Bluetooth PAN ■ x 蓝牙相关,不要
pcscd PC/SC smart card daemon ■ x
piranha-gui 与cluster相关 ■ ○ 我要用
portmap 使用NFS、NIS时的port map ■ x 如果用NFS时候,需要开启
psacct 负荷检测,输出什么的 ■ x
pulse ?
qdiskd 与cluster相关 ■ ○ 我要用
rdisc 自动检测路由器 ■ x 只有一个路由器是不用
readahead_early ■ ○ 建议
readahead_later ■ ○ 建议
restorecond Selinux关联项目 ■ x 我的Selinux关掉了,所以它也over
rgmanager 与cluster相关 ■ ○ 我要用
ricci 与cluster相关 ■ ○ 我要用
rpcgssd NFS相关 ■ x
rpcidmapd RPC name to UID/GID mapper ■ x NFS相关
rpcsvcgssd NFS相关 ■ x
saslauthd sasl认证服务相关 ■ x
scsi_reserve
sendmail mail demo ■ x
setroubleshoot Selinux相关 ■ x 我的Selinux关掉了,所以它也over
smartd 硬盘自动检测的守护进程 ■ ○
smb Samba ■ x
snmpd ■ ○ 集群之间时间同步大概需要
snmptrapd ■ ○ 集群之间时间同步大概需要
sshd ssh demo ■ ○ 必须的
syslog ■ ○
tog-pegasus ■ ○ 似乎与集群相关
vncserver vncserver x
wdaemon
winbind samba服务器相关 x
wpa_supplicant 无线认证相关 x
xfs x windows相关 ■ x
ypbind Network Information Service 客户端 ■ x
yum-updatesd yum自动升级 ■ x 对服务器来说开着它比较危险

------------------------------------------------------------------------------------------------------------------------------------------------------------------------

天天用着linux,虽说经常配置php环境,可对于linux本身动的很少,这里就把常见的服务记下来,不用的就可以关闭了,节省资源还加速开关机时间。

不要关闭以下服务(除非你有充足的理由):
acpid, haldaemon, messagebus, klogd, network, syslogd
请确定修改的是运行级别 3 和 5。

NetworkManager, NetworkManagerDispatcher
NetworkManager是一个后台服务程序,它构建于HAL之上,提供更专注于网络管理的功能。包括网络接口管理和网络状态查询,支持普通网络、拨号网络和无线网络,很多笔记本用户都需要启用该功能,它让你能够在无线网络和有线网络之间切换。大多数台式机用户应该关闭该服务。另外还提供VPN、 DHCP和DNS等附加功能。

主要用于笔记本的有线网络和无线网络之间的切换,有些 DHCP 用户会用到 . 建议 Disable
<http://www.redhat.com/magazine/003jan05/features/networkmanager/>
<http://blog.csdn.net/absurd/archive/2007/05/11/1605200.aspx>

acpid
ACPI(全称 Advanced Configuration and Power Interface)服务是电源管理接口。建议所有的笔记本用户开启它。一些服务器可能不需要 acpi。支持的通用操作有:“电源开关“,”电池监视“,”笔记本 Lid 开关“,“笔记本显示屏亮度“,“休眠”, “挂机”,等等。
高级电源管理,在 Fedora 7 中默认安装的,如果需要可以安装

anacron, atd, crond
这几个调度程序有很小的差别。 建议开启 cron,如果你的电脑将长时间运行,那就更应该开启它。对于服务器,应该更深入了解以确定应该开启哪个调度程序。大多数情况下,笔记本/台式机应该关闭 atd 和 anacron。注意:一些任务的执行需要 anacron,比如:清理 /tmp 或 /var。
Linux 里面的计划任务,cron 建议打开,其它两项关闭

alsasound
Alsa声卡驱动守护程序。Alsa声卡驱动程序本来是为了 一种声卡Gravis UltraSound(GUS)而写的,该程序被证明很优秀,于是作者就开始为一般的声卡写 驱动程序。 Alsa和OSS/Free 及OSS/Linux兼容,但是有自己的接 口,甚至比OSS优秀。

apmd
一些笔记本和旧的硬件使用 apmd。如果你的电脑支持 acpi,就应该关闭 apmd。如果支持 acpi,那么 apmd 的工作将会由 acpi 来完成。

arptables_jf
为arptables网络的用户控制过滤的守护进程。

arpwatch
记录日志并构建一个在LAN接口上看到的以太网地址和IP地址对数据库 。

atalk
AppleTalk网络守护进程。注意不要在后台运行该程序,该程序的数据结构必须在运行其他进程前先花一定时间初始化。

auditd
审核子系统可以被系统管理员用来监测系统调用和那些符合 CAPP 或其它审核要求的文件系统访问。它的主要内容包括:
· 默认情况下,审核在内核中被禁用。但是,当安装了 auditd 软件后,运行这个软件将会启动审核守护进程(auditd)。
· 当 auditd 运行的时候,审核信息会被发送到一个用户配置日志文件中(默认的文件是 /var/log/audit/audit.log)。如果 auditd 没有运行,审核信息会被发送到 syslog。这是通过默认的设置来把信息放入 /var/log/messages。如果审核子系统没有被启用,没有审核信息会被产生。
· 这些审核信息包括了 SELinux AVC 信息。以前,AVC 信息会被发送到 syslog,但现在会被审核守护进程发送到审核日志文件中。
· 要完全在内核中禁用审核,在启动的时候使用 audit=0 参数。您还需要使用 chkconfig auditd off 2345 来关闭 auditd。您可以在运行时使用 auditctl -e 0 来在内核中关闭审核。
审核守护进程(auditd)从内核的 audit netlink 接口获取审核事件数据。auditd 的配置会不尽相同,如输出文件配置和日志文件磁盘使用参数可以在 /etc/auditd.conf 文件中配置。请注意,如果您设置您的系统来进行 CAPP 风格的审核,您必须设置一个专用的磁盘分区来只供 audit 守护进程使用。这个分区应该挂载在 /var/log/audit。
系统管理员还可以使用 auditctl 工具程序来修改 auditd 守护进程运行时的审核参数、syscall 规则和文件系统的查看。它包括了一个 CAPP 配置样本,您可以把它拷贝到 /etc/audit.rules 来使它起作用。
审核日志数据可以通过 ausearch 工具程序来查看和搜索。
这个记录 kernel 的审计情况,相当于另外的一个 loggin 服务,用命令 auditctl 查看文件的变化情况,普通用户用不上可以关闭

autofs
该服务自动挂载可移动存储器(比如 USB 硬盘)。如果你使用移动介质(比如移动硬盘,U 盘),建议启用这个服务。
自动加裁文件系统,如果你用的移动设备建议打开,不然就关掉咯

avahi-daemon, avahi-dnsconfd
Avahi 是 zeroconf 协议的实现。它可以在没有 DNS 服务的局域网里发现基于 zeroconf 协议的设备和服务。它跟 mDNS 一样。除非你有兼容的设备或使用 zeroconf 协议的服务,否则应该关闭它。
相当于 mDNS 的一个软件,我也不知道干什么用的,建议关闭

bootparamd
引导参数服务器,为LAN上的无盘工作站提供引导所需的相关信息。

btseed, bttrack
和 BitTorrent 相关的服务,建议关闭

bluetooth, hcid, hidd, sdpd, dund, pand
蓝牙(Bluetooth)是给无线便携设备使用的(非 wifi, 802.11)。很多笔记本提供蓝牙支持。有蓝牙鼠标,蓝牙耳机和支持蓝牙的手机。很多人都没有蓝牙设备或蓝牙相关的服务,所以应该关闭它。其他蓝牙相关的服务有:hcid 管理所有可见的蓝牙设备,hidd 对输入设备(键盘,鼠标)提供支持, dund 支持通过蓝牙拨号连接网络,pand 允许你通过蓝牙连接以太网。
用于蓝牙设备的 deamon ,没有的可以关闭

capi
仅仅对使用 ISDN 设备的用户有用。大多数用户应该关闭它。
与ISDN相关的服务,一般用户都可以关闭

chargen
使用tcp协议的chargen server,chargen(Character Generator Protocol)是一种网络服务,主要功能是提供类似远程打字的功能。

chargen-udp
使用UDP协议的chargen server。

chargen-dgram

chargen-stream

conman

cpuspeed
该服务可以在运行时动态调节 CPU 的频率来节约能源(省电)。许多笔记本的 CPU 支持该特性,现在,越来越多的台式机也支持这个特性了。如果你的 CPU 是:Petium-M,Centrino,AMD PowerNow, Transmetta,Intel SpeedStep,Athlon-64,Athlon-X2,Intel Core 2 中的一款,就应该开启它。如果你想让你的 CPU 以固定频率运行的话就关闭它。

cupsd, cups-config-daemon, cups-lpd
以打印机相关的服务,有打印机可以打开

cvs
cvs 是一个版本控制系统。

daytime
使用TCP 协议的Daytime守护进程,该协议为客户机实现从远程服务器获取日期 和时间的功能。预设端口:13。

daytime-udp
使用UDP 协议的Daytime守护进程。

daytime-dgram

daytime-stream

dc_client, dc_server
磁盘缓存(Distcache)用于分布式的会话缓存。主要用在 SSL/TLS 服务器。它可以被 Apache 使用。大多数的台式机应该关闭它。

dhcdbd
这是一个让 DBUS 系统控制 DHCP 的接口。可以保留默认的关闭状态。DHCP相关服务,使用DHCP的人打开,用固定IP的关闭就行了

diskdump, netdump
磁盘转储(Diskdump)用来帮助调试内核崩溃。内核崩溃后它将保存一个 “dump“ 文件以供分析之用。网络转储(Netdump)的功能跟 Diskdump 差不多,只不过它可以通过网络来存储。除非你在诊断内核相关的问题,它们应该被关闭。

discard-dgram

discard-stream

dnsmasq
DNSmasq是一个轻巧的,容易使用的DNS服务工具,它可以应用在内部网和Internet连接的时候的IP地址NAT转换,也可以用做小型网络的 DNS服务。

echo
服务器回显客户数据服务守护进程。

echo-udp
使用UDP协议的服务器回显客户数据服务守护进程。

echo-dgram

echo-stream

eklogin
接受rlogin会话鉴证和用kerberos5加密的一种服务的守护进程。

ekrb5-telnet

firstboot
该服务是 Fedora 安装过程特有的。它执行在安装之后的第一次启动时仅仅需要执行一次的特定任务。它可以被关闭。用于第一启动相关的设置,关闭

functions

gated
网关路由守护进程。它支持各种路由协议,包括RIP版本1和2、DCN HELLO协议、 OSPF版本2以及EGP版本2到4。

gpm
终端鼠标指针支持(无图形界面)。如果你不使用文本终端(CTRL-ALT-F1, F2..),那就关闭它。不过,我在运行级别 3 开启它,在运行级别 5 关闭它。对鼠标的支持,如果你用 console 要以打开,常用 x-server 就关闭

gssftp
使用kerberos 5认证的ftp守护进程。

haldaemon

HAL (Hardware Abstraction Layer) 这个必须打开
halt

hplip, hpiod, hpssd
HPLIP 服务在 Linux 系统上实现 HP 打印机支持,包括 Inkjet,DeskJet,OfficeJet,Photosmart,Business InkJet 和一部分 LaserJet 打印机。这是 HP 赞助的惠普 Linux 打印项目(HP Linux Printing Project)的产物。如果你有相兼容的打印机,那就启用它。HP打印机支持程序,不使就HP打印机的就关闭吧

hsqldb
一个java的关系型数据库守护进程,得名于Hypersonic SQL,但这个项目已经没有再继续了。

httpd
Web服务器Apache守护进程,可用来提供HTML文件以 及CGI动态内容服务。

innd
Usenet新闻服务器守护进程。

iiim
中文输入法服务器守护进程。

inetd
因特网操作守护程序。监控网络对各种它管理的服务的需求,并在必要的时候启动相应的服务程序。在Redhat 和Mandrake linux中被xinetd代替。Debian, Slackware, SuSE仍然使用。

ip6tables
如果你不知道你是否在使用 IPv6,大部分情况下说明你没有使用。该服务是用于 IPv6 的软件防火墙。大多数用户都应该关闭它。

ipmi

iptables
它是 Linux 标准的防火墙(软件防火墙)。如果你直接连接到互联网(如,cable,DSL,T1),建议开启它。如果你使用硬件防火墙(比如:D- Link,Netgear,Linksys 等等),可以关闭它。强烈建议开启它。Linux 下的防火墙,好东东啊

irda, irattach
IrDA 支持服务,大部分用户都不会用上,IrDA 提供红外线设备(笔记本,PDA’s,手机,计算器等等)间的通讯支持。大多数用户应该关闭它。

irqbalance
在多处理器系统中,启用该服务可以提高系统性能。大多数人不使用多处理器系统,所以关闭它。但是我不知道它作用于多核 CPU’s 或 超线程 CPU’s 系统的效果。在单 CPU 系统中关闭它应该不会出现问题。对多核多CPU的用户的服务,用VMware的没必要打开了

isdn
这是一种互联网的接入方式。除非你使用 ISDN 猫来上网,否则你应该关闭它。

lirc
红外遥控支持,没什么用处

lisa
和网上邻居的功能很像,如果用Samba 或 NFS 可以打开

lm_sensors
主板测试PC健康用的服务,如CPU,硬盘温度之些的,不用可以关掉

keytable
该进程的功能是转载在/etc/sysconfig/keyboards里定义的键盘映射表,该表可以通过kbdconfig工具进行选择。您应该使该程序处于激活状态。

kdump

klogin
远程登陆守护进程。

krb5-telnet
使用kerberos 5认证的telnet守护进程。

kshell

kshell守护进程。

killall

krb524

kudzu
该服务进行硬件探测,并进行配置。如果更换硬件或需要探测硬件更动,开启它。但是绝大部分的台式机和服务器都可以关闭它,仅仅在需要时启动。如果你不是经常的更换硬件就关闭它

ldap
ldap(Lightweight Directory Access Protocol)目录访问协议服务器守护进程。

libvirtd

lm_sensors
该服务可以探测主板感应器件的值或者特定硬件的状态(一般用于笔记本电脑)。你可以通过它来查看电脑的实时状态,了解电脑的健康状况。它在 GKrellM 用户中比较流行。如果没有特殊理由,建议关闭它。

lvm2-monitor

mcstrans
SELinux转换服务,如果你使用 SELinux 就开启它,但你也可以关闭。用于查看 context 的,用 SELinux 的可打开

mdmonitor
该服务用来监测 Software RAID 或 LVM 的信息。它不是一个关键性的服务,可以关闭它。用于监视软 RAID 和 LVM 信息,你也可以关掉

mdmpd
该服务用来监测 Multi-Path 设备(该类型的存储设备能被一种以上的控制器或方法访问)。它应该被关闭。

messagebus
这是 Linux 的 IPC(Interprocess Communication,进程间通讯)服务。确切地说,它与 DBUS 交互,是重要的系统服务。强烈建议开启它。
IPC (Interprocess Communication) 进程间通信服务,一个重要的服务,必须打开

multipathd, microcode_ctl
可编码以及发送新的微代码到内核以更新Intel IA32系列处理器守护进程。

mysqld
一个快速高效可靠的轻型SQL数据库引擎守护进程。

named
DNS(BIND)服务器守护进程。

netconsole

初始化网络控制台登陆,关闭

nasd
声音支持,用于X Windows,不用的就半掉

netfs
该服务用于在系统启动时自动挂载网络中的共享文件空间,比如:NFS,Samba 等等。如果你连接到局域网中的其它服务器并进行文件共享,就开启它。大多数台式机和笔记本用户应该关闭它。

netplugd, ifplugd
Netplugd 用于监测网络接口并在接口状态改变时执行指定命令。建议保留它的默认关闭状态。监测网络接口用的,普通用户关掉

network
激活/关闭启动时的各个网络接口守护进程。

nfs, nfslock
这是用于 Unix/Linux/BSD 系列操作系统的标准文件共享方式。除非你需要以这种方式共享数据,否则关闭它。

nscd
服务名缓存进程,它为NIS和LDAP等服务提供更快的验证,如果你运行这些服务,那你应该开启它。用于缓存密码的,没什么用

nmbd
Samba的一个服务,用于NETBeui名称解析用的

ntpd
该服务通过互联网自动更新系统时间。如果你能永久保持互联网连接,建议开启它,但不是必须的。

pcscd
该服务提供智能卡(和嵌入在信用卡,识别卡里的小芯片一样大小)和智能卡读卡器支持。如果你没有读卡器设备,就关闭它。

pcmcia
主要用于支持笔记本电脑接口守护进程。

portmap
该服务是 NFS(文件共享)和 NIS(验证)的补充。除非你使用 NFS 或 NIS 服务,否则关闭它。

postgresql
PostgreSQL 关系数据库引擎。

pppoe
ADSL连接守护进程。

proftpd
proftpd 是Unix下的一个配置灵活的ftp服务器的守护程序。

psacct
该守护进程包括几个工具用来监控进程活动的工具,包括ac,lastcomm, accton和sa。

random
保存和恢复系统的高质量随机数生成器,这些随机数是系统一些随机行为提供的。

rawdevices
在使用集群文件系统时用于加载raw设备的守护进程。

rdisc

readahead_early, readahead_later
该服务通过预先加载特定的应用程序到内存中以提供性能。如果你想程序启动更快,就开启它。

restorecond
用于给 SELinux 监测和重新加载正确的文件上下文(file contexts)。它不是必须的,但如果你使用 SELinux 的话强烈建议开启它。

rhnsd
Red Hat 网络服务守护进程。通知官方的安全信息以及为系统打补丁。

routed
该守护程序支持RIP协议的自动IP路由表维护。RIP主要 使用在小型网络上,大一点的网络就需要复杂一点的协议。

rpcgssd, rpcidmapd, rpcsvcgssd
用于 NFS v4。除非你需要或使用 NFS v4,否则关闭它。

rsync
remote sync远程数据备份守护进程。

rsh
远程主机上启动一个shell,并执行用户命令。

rwhod
允许远程用户获得运行rwho守护程序的机器上所有已登录用户的列表。

rstatd
一个为LAN上的其它机器收集和提供系统信息的守候进程。

ruserd
远程用户定位服务,这是一个基于RPC的服务,它提供关于当前记录到LAN上一个机器日志中的用户信息。

rwalld
激活rpc.rwall服务进程,这是一项基于RPC的服务,允许用户给每个注册到LAN机器上的其他终端写消息。

rwhod:激活rwhod服务进程,它支持LAN的rwho和ruptime服务。

saslauthd
使用SASL的认证守护进程。

sendmail
除非你管理一个邮件服务器或你想 在局域网内传递或支持一个共享的 IMAP 或 POP3 服务。大多数人不需要一个邮件传输代理。如果你通过网页(hotmail/yahoo/gmail)或使用邮件收发程序(比如:Thunderbird, Kmail,Evolution 等等)收发邮件。你应该关闭它。

setroubleshoot
查看selinux日志的程序,这个程序提供信息给 setroubleshoot Browser,如果你用 SELinux 可以打开它

squid
代理服务器squid守护进程。

smartd
SMART Disk Monitoring 服务用于监测并预测磁盘失败或磁盘问题(前提:磁盘必须支持 SMART)。大多数的桌面用户不需要该服务,但建议开启它,特别是服务器。SMART,用于监测硬盘的,VMware用户关掉

smb
SAMBA 服务是在 Linux 和 Windows 之间共享文件必须的服务。如果有 Windows 用户需要访问 Linux 上的文件,就启用它。

snmpd
本地简单网络管理守护进程。

sshd
SSH 允许其他用户登录到你的系统并执行程序,该用户可以和你同一网络,也可以是远程用户。开启它存在潜在的安全隐患。如果你不需要从其它机器或不需要从远程登录,就应该关闭它。

syslog

tcpmux-server

tftp

time
该守护进程从远程主机获取时间和日期,采用TCP协议。

time-udp
该守护进程从远程主机获取时间和日期,采用UDP协议。
time-dgram
time-stream

tux
在Linux内核中运行apache服务器的守护进程。

vsftpd
vsftpd服务器的守护进程

vmware-tools
vmware-tools,虚拟机中装了vmware-tools包之后才会有的。

vncserver
VNC (Virtual Network Computing,虚拟网络计算),它提供了一种在本地系统上显示远程计算机整个”桌面”的轻量型协议。

winbind
Winbind 是一款 Samba 组件,在 CentOS 系统下,他被包含在了 samba-common 包中。 Winbind 在Linux上实现了微软的RPC调用、可插式验证模块和名字服务切换,通过 samba 接口与 Windows 域控获得联系,可以使NT域用户能在Linux主机上以Linux用户身份进行操作。通过设定 Linux 服务器的 nss 配置,我们可以让系统通过 Winbind 程序来解析用户信息。

wpa_supplicant
无线网卡上网服务

xend, xendomains
XEN虚拟服务相关

xfs
X Window字型服务器守护进程,为本地和远程X服务器提供字型集。

xinetd
(该服务默认可能不被安装)它是一个特殊的服务。它可以根据特定端口收到的请求启动多个服务。比如:典型的 telnet 程序连接到 23 号端口。如果有 telent 请求在 23 号端口被 xinetd 探测到,那 xinetd 将启动 telnetd 服务来响应该请求。为了使用方便,可以开启它。运行 chkconfig -list, 通过检查 xinetd 相关的输出可以知道有哪些服务被 xinetd 管理。

ypbind
为NIS(网络信息系统)客户机激活ypbind服务进程 。

yppasswdd
NIS口令服务器守护进程。

ypserv
NIS主服务器守护进程。

yum, yum-updatesd
RPM操作系统自动升级和软件包管理守护进程。
ConsoleKit
这个主要是 Gnome 使用的用于 Fedora - Fast User Switching ,主要用于自动加载 device 和 Power Management. 建议 Disable

2012年10月9日 星期二

php连接数据库mysql

 

 

$dblink=mysql_connet($mysql_server_host,$mysql_server_user,$mysql_server_password)

2012年10月8日 星期一

记录mysql的安装方式

MySQL有两种安装方式:源码包安装和二进制包安装。这两种方式各有特色:二位制包安装不需编译,针对不同的平台有经过优化编译的不同的二进制文件以及包格式,安装简单方便;源码包则必须先配置编译再安装,可以根据你所用的主机环境进行优化,选择最佳的配置值,安装定制更灵活。下面分别介绍这两种安装方式。
 3.1 源码包方式安装
    3.1.1 在linux系统中添加运行Mysql的用户和组
              /usr/sbin/groupadd mysql
              /usr/sbin/useradd -d /var/lib/mysql -s /sbin/nologin -g mysql mysql          
    3.1.2 下载最新稳定发行版(GA)的MySQL软件
              访问MySQL网站http://dev.mysql.com/downloads/下载最新稳定发行版的MySQL源码包。本文使用的是5.0.51版本,在linux系统下用下面的命令下载:
              wget http://mysql.mirror.kangaroot.ne ... mysql-5.0.51.tar.gz
    3.1.3 解压缩下载的源码包
              首先建立一个工作目录( 笔者建议的目录为/usr/local/src/mysql ) :
              mkdir -p /usr/local/src/mysql
              将下载的源码包移至工作目录:
              mv  mysql-5.0.51.tar.gz  /usr/local/src/mysql
              进入工作目录并用tar命令解压源码包:
              cd  /usr/local/src/mysql
              tar zxvf  mysql-5.0.51.tar.gz
              命令执行结束后,当前工作目录下将生成一个新的子目录mysql-5.0.51,此目录下即为mysql的源码文件。
    3.1.4 配置Makefile文件
              进入MySQL源码目录:
              cd mysql-5.0.51
              执行下面的命令可查看可配置选项:
    ./configure --help
              本文使用的配置命令格式如下:
              CC=gcc CFLAGS="-O3" CXX=gcc CXXFLAGS="-O3 -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --enable-thread-safe-client --enable-assembler --with-big-tables --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static  --with-charset=utf8 --with-collation=utf8_general_ci --with-extra-charsets=complex
              配置选项说明:
              CC:C编译器的名称(用于运行configure),本文示例为gcc
              CFLAGS:C编译器的标志(用于运行configure),本文示例为-O3,指定优化级别为3
              CXX:C++编译器的名称(用于运行configure),本文示例为gcc
              CXXFLAGS:C++编译器的标志(用于运行configure)
    --prefix:指定安装目录,本文示例为/usr/local/mysql
              --localstatedir:指定默认数据库文件保存目录,默认为安装目录下的var目录
   --enable-thread-safe-client:编译线程安全版的MySQL客户端库
    --enable-assembler:使用一些字符函数的汇编版本
              --with-client-ldflags:客户端链接参数,本文示例为指定静态编译mysql客户端
    --with-mysqld-ldflags:服务器端链接参数,本文示例为指定静态编译mysql服务器
              --with-big-tables:在32位平台上支持大于4G行的表
    --with-charset:指定默认字符集。mysql默认使用latin1(cp1252)字符集,可以使用此选项更改。字符集可以是big5、 cp1251、cp1257、czech、danish、dec8、dos、euc_kr、gb2312、gbk、german1、hebrew、 hp8、hungarian、koi8_ru、koi8_ukr、latin1、latin2、sjis、swe7、tis620、ujis、usa7或 win1251ukr。
              --with-collation:指定默认校对规则。mysql默认使用latin1_swedish_ci校对规则,可以使用此选项更改。
    --with-extra-charsets:服务器需要支持的字符集,有三种可能的值:空格间隔的一系列字符集名;complex ,包括不能动态装载的所有字符集;all,将所有字符集包括进二进制。本文示例为complex。
    注意:要想更改字符集和校对规则,要同时使用--with-charset和--with-collation选项。 校对规则必须是字符集的合法校对规则。(在mysql中使用SHOW COLLATION语句来确定每个字符集使用哪个校对规则)。
    3.1.5 编译源代码
    执行下面的命令编译源代码:
    make
    3.1.6 安装
    执行下面的命令安装mysql到目标路径:
    make install
    3.1.7 复制默认全局启动参数配置文件到/etc目录
              源码方式安装需要手动复制配置文件,配置模板位于源码树的support-files目录,有my-small.cnf、my- medium.cnf、my-large.cnf、my-huge.cnf四个,选择跟你的环境相接近的一个复制到/etc目录,并做适当修改。关于 mysql配置文件的详细信息请参阅笔者的其它文章或是mysql官方文档。
              本文示例选择my-medium.cnf,执行下面的命令将其复制到/etc目录:
              cp ./support-files/my-medium.cnf  /etc/my.cnf
    3.1.8 初始化授权表
              执行下面的命令初始化授权表:
    ./scripts/mysql_install_db --user=mysql
    3.1.9 更改mysql数据目录属主和权限
              默认数据库文件保存目录为安装目录下的var目录,执行configure命令时可通过--localstatedir参数指定不同的目录,本文示例为默认位置。
              chown -R mysql.mysql /usr/local/mysql/var
              chmod -R 700 /usr/local/mysql/var
    3.1.10 设置开机自启动服务控制脚本
              执行下面的命令复制启动脚本到资源目录:
              cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
              执行下面的命令增加mysqld服务控制脚本执行权限:
              chmod +x /etc/rc.d/init.d/mysqld
              执行下面的命令将mysqld服务加入到系统服务:
              chkconfig --add mysqld
              执行下面的命令检查mysqld服务是否已经生效:
              chkconfig --list mysqld
              命令输出类似下面的结果:
              mysqld          0ff 1ff 2n 3n 4n 5n 6ff
              表明mysqld服务已经生效,在2、3、4、5运行级别随系统启动而自动启动,以后可以使用service命令控制mysql的启动和停止。
    启动mysqld服务:
    service mysqld start
              停止mysqld服务:
              service mysqld stop
              执行下面的命令关闭开机自启动:
    chkconfig mysqld off
              执行下面的命令可以改变开机自启动的运行级别为3、5: 
    chkconfig --level 35 mysqld on
    3.1.11 将mysql的bin目录加入PATH环境变量
              编辑/etc/profile文件:
              vi /etc/profile
              在文件最后添加如下两行:
              PATH=$PATH:/usr/local/mysql/bin
              export PATH
              执行下面的命令使所做的更改生效:
              . /etc/profile
    3.2 二进制包方式安装      
 3.2.1 从安装媒体安装
              Mysql二进制包已经包含在CentOS 5的安装媒体中,可以直接从安装媒体中安装下面三个rpm包:
              mysql-5.0.22-2.1.0.1.i386.rpm
              mysql-devel-5.0.22-2.1.0.1.i386.rpm
              mysql-server-5.0.22-2.1.0.1.i386.rpm
              不同的版本文件名有所不同,请注意区分。
       执行下面的命令安装:
              rpm -iUvh  mysql-5.0.22-2.1.0.1.i386.rpm
              rpm -iUvh  mysql-devel-5.0.22-2.1.0.1.i386.rpm
              rpm -iUvh  mysql-server-5.0.22-2.1.0.1.i386.rpm
    3.2.2 通过yum安装
              如果你安装的机器此时可以连接到互联网,笔者建议使用yum命令来简化安装过程:
       yum install mysql-server mysql-devel mysql
       yum将自动从centos的镜像站点查找你指明的软件的最新二进制包,并检查软件包依赖关系,安装软件的同时自动安装其依赖的软件包。
    3.2.3 从mysql网站下载最新稳定版本的二进制包安装
              通过CentOS安装媒体或yum安装的二进制包版本会落后于mysql开发者网站发布的版本,可以从mysql网站下载安装最新稳定版本的mysql。
              访问MySQL网站http://dev.mysql.com/downloads/下载最新稳定发行版的相应硬件平台的MySQL。本文使用的是Red Hat Enterprise Linux 5 RPM (x86) 5.0.45版本。需要下载Server、Client、Headers and Libraries、Share Libraries/Shared compatibility libraries几个rpm包,其它为可选包,按需要选择。
              在linux系统下用下面的命令下载:
              wget http://mysql.mirrors.pair.com/Do ... 45-0.rhel5.i386.rpm
              wget http://mysql.mirrors.pair.com/Do ... 45-0.rhel5.i386.rpm
              wget http://mysql.mirrors.pair.com/Do ... 45-0.rhel5.i386.rpm
              wget http://mysql.mirrors.pair.com/Do ... 45-0.rhel5.i386.rpm
              wget http://mysql.mirrors.pair.com/Do ... 45-0.rhel5.i386.rpm
              执行下面的命令安装:
              rpm -iUvh MySQL-server-community-5.0.45-0.rhel5.i386.rpm
              rpm -iUvh MySQL-client-community-5.0.45-0.rhel5.i386.rpm
              rpm -iUvh MySQL-devel-community-5.0.45-0.rhel5.i386.rpm
              rpm -iUvh MySQL-shared-community-5.0.45-0.rhel5.i386.rpm
              rpm -iUvh MySQL-shared-compat-5.0.45-0.rhel5.i386.rpm
4. MySQL的配置
    4.1 目录结构
 4.1.1 源码包方式安装目录结构
           源码包方式安装时通常是在3.1.4节中configure命令的--prefix选项指定的目录中建立如下的目录结构,特殊指定的目录除外:
           ./bin                               #mysql用户可执行文件目录
           ./include/mysql           #mysql C头文件目录
           ./info                              #mysql 信息文件目录
           ./lib/mysql                    #mysql库文件目录
           ./libexec                        #mysql后台daemon程序目录
           ./man                             #mysql联机帮助文档目录
           ./mysql-test                  #mysql测试程序目录
           ./share/mysql              #mysql公用文件目录,包括字符集、配置文件模板、启动脚本、初始化SQL文件等
           ./sql-bench                   #mysql压力测试程序目录
           /etc/my.cnf                    #mysql配置文件
           /etc/rc.d/init.d/mysqld #mysqld服务启动脚本
    4.1.2 RPM二进制包方式安装目录结构
           二进制包方式安装时使用系统软件默认目录结构 :
           /usr/bin                     #mysql用户可执行文件目录
           /usr/libexec              #mysql后台daemon程序目录
           /usr/lib/mysql          #mysql库文件目录
           /usr/lib64/mysql     #如果为64系统,mysql 64位库文件目录
           /usr/share/doc        #mysql文档目录
           /usr/share/info        #mysql信息文件目录
           /usr/share/man      #mysql联机帮助文档目录
           /usr/share/mysql    #mysql字符集目录
           /usr/include/mysql #mysql C头文件目录
           /var/log                     #mysqld服务日志文件目录
           /var/run/mysqld      #mysqld服务运行状态目录
           /var/lib/mysql          #mysql数据文件目录
           /etc/my.cnf               #mysql配置文件
           /etc/rc.d/init.d/mysqld  #mysqld服务启动脚本
    4.2 配置文件
          Linux系统下,mysql的配置参数文件为my.cnf,一般按下面的顺序查找此文件:/etc目录、mysql安装目录、mysql数据目录。配置模板位于源码树的support-files目录,有my-small.cnf、my-medium.cnf、my-large.cnf、my- huge.cnf四个,关于mysql配置文件的详细信息请参阅笔者的其它文章或是mysql官方文档。
    4.3 启动mysqld服务
           执行下面的命令启动mysql:
           service mysqld start
    4.3 设置mysql帐号
           mysql安装后默认生成两个帐号:一个是root,未设置密码,可以从本机登录到mysql;另一个是匿名帐号,无帐号名、无密码,可以从本机登录,未提供用户名的连接都将假定为此帐号。这样的设置存在着安全隐患,按下面的步骤进行更改。
           以root帐号连接到mysql服务器:
           mysql -u root
           如果提示找不到mysql文件,请尝试使用绝对路径,如本文示例为:
           /usr/local/mysql/bin/mysql -u root
           命令成功执行后将进入到mysql命令提示符下:
           mysql>
           (以下命令均在mysql命令提示符下执行)
           改变当前数据库为mysql:
           use mysql
           设置从本地主机登录的root帐号密码:
           set password for root@localhost=password('your password');
           或:
           update user set password=password('your password') where user='root' and host='localhost';
           删除匿名帐号:
           delete from user where user='' ;
           删除密码为空的帐号:
           delete from user where password='';
           删除允许非localhost主机登录的帐号:
           delete from user where host<>'localhost' ;
           执行下面的命令使更改生效:
           flush privileges ;
           执行下面的命令退出mysql命令行:
           quit
           或:
           \q
5. 结束语
    至此,Mysql基本安装完毕。希望本文能对初学者有所帮助。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/xiamizy/archive/2008/01/30/2072525.aspx
Linux (non RPM packages) downloads
#newuser      ## 按提示添加名为”mysql”的用户和组,你也可以使用sysinstall来添加
#vi /etc/group  ## 在wheel组里添加上mysql用户(一般是在root后面加上”,mysql”),原因在后面说到
#tar zxvf  mysql-5.1.31-linux-686-glibc23.tar.gz
#mv mysql-5.1.31-linux-686-glibc23 /usr/local/mysql       ## 我安装在/usr/local/mysql下
#cd /usr/local/mysql
#chown -R mysql .
#chgrp -R mysql .
#su simon    ## 这一步重要呀,mysql里的INSTALL-BINARY都没提到,试了N次才知,要不你就要以root的身份运行,即执行 scripts/mysql_install_db时不指定–user=mysql, 要不下面的那一步死活不能通过,也没有错误提示,我在这里卡了很久
$scripts/mysql_install_db –user=mysql      ## 这里可能会出现一些警告,主要是因为DNS,你可以加上 –force参数或在/etc/hosts里加一项你的主机名
$exit     ##  因为我之前是用su,反正你改回root就行,因为要启动服务
#chown -R root .
#chown -R mysql .
#cp support-files/my-xxx.cnf /etc/my.cnf    ##  这里根据你自己的要求使用mysql的配置文件
#support-files/mysql.server start ## 如果你是在wheel组里添加了 mysql用户,那这里就应该不会出问题了,因为mysql要在/tmp下添加一个sock,但用户“mysql”对这目录是没有有写权限的,所以要让 “mysql”成为whell的成员
#bin/mysqladmin -uroot password ‘这里填写你的root密码’
好了,基本完成
验证mysql运行:
#netstat -al      ##  看看3306,如果启动了就表示成功了
#bin/mysql -uroot -p     ##  试试登录,应该没问题了

2012年10月7日 星期日

大日志分割方法

明:

本文采用一个50M大小的日志文件进行测试。
日志文件名:log.txt.gz。
文件行数:208363

方法1:(split分割)
语法:split [-<行数>][-b <字节>][-C <字节>][-l <行数>][要切割的文件][输出文件名]

# gunzip log.txt.gz //一定要先解压,否则分割的文件是不能cat/zcat显示;

# wc -l log.txt //计算一个文件的总行数;

208363 log.txt
# split -l 120000 log.txt newlog //通过指定行数,将日志分割成两个文件;
# du -sh *50M log.txt
29M newlogaa
22M newlogab
# file * //分割后的文件与原文件属性一样
log.txt: ASCII text, with very long lines, with CRLF line terminators
newlogaa: ASCII text, with very long lines, with CRLF line terminators
newlogab: ASCII text, with very long lines, with CRLF line terminators
# gzip newlogaa newlogab //将分割后的文件进行压缩,以便传输

另一种方法,通过

方法2:(dd分割)
# gunzip log.txt.gz //一定要先解压,否则分割的文件是不能cat/zcat显示;

#dd bs=20480 count=1500 if=log.txt of=newlogaa //按大小分第一个文件

#dd bs=20480 count=1500 if=log.txt of=newlogab skip=1500 //将大小之后的生成另一个文件#file *

log.txt: ASCII text, with very long lines, with CRLF line terminators
newlogaa: ASCII text, with very long lines, with CRLF line terminators
newlogab: ASCII text, with very long lines, with CRLF line terminators

分割没问题,但会出现同一行分到不同文件的情况,除非你以及日志分析系统可以“容忍”。

方法3:(head+tail 分割)
#gzip log.txt.gz //如不解压缩,下面请用zcat。
#wc -l log.txt //统计一个行数
208363 log.txt
# head -n `echo $((208363/2+1))` log.txt > newloga.txt //前x行重定向输出到一个文件中;

#tail –n `echo $((208363-208362/2-1))` log.txt >newlogb.txt //后x行重定向输出到一个文件中;

#gzip newloga.txt newlogb.txt //将两个文件进行压缩

方法4:(awk分割)
#gzip log.txt.gz#awk ‘{if (NR<120000) print $0}’ log.txt >newloga.txt#awk ‘{if (NR>=120000) print $0}’ log.txt >newlogb.txt

以上两个命令,都要遍历整个文件,所以考虑到效率,应使用合并成:

#awk ‘{if (NR<120000) print $0 >”newloga.txt”;if (NR>=120000) print $0>”newlogb.txt”}’ log.txt

总结:
以上四种方法,除了dd之外的三种方式都可以很好的整行分割日志文件。进行分割时,应考虑在读一次文件的同时完成,如不然,按下面的方式分割:
Cat log.txt| head –12000 >newloga.txt
Cat log.txt | tail –23000 >newlogb.txt
如用此方法分割文件的后一部分,那么执行第二行命令文件时,前x行是白白读一遍的,执行的效率将很差,如文件过大,还可能出现内存不够的情况。