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行是白白读一遍的,执行的效率将很差,如文件过大,还可能出现内存不够的情况。