Linux系统基本设置

来源:互联网 发布:三国志13隐藏武将数据 编辑:程序博客网 时间:2024/04/29 22:48


一、 Linux文字终端的切换
按Ctrl+Alt+F1,F2,F3,F4,F5
可以实现文字终端的切换

 二、开机启动到文字界面
vi /etc/inittab
id:5:initdefault:

改为
id:3:initdefault:


三、linux调整时间

1.1 服务器可链接外网时    

 ntpdate 210.72.145.44     


四、Linux开机自动修复
在/etc/sysconfig目录下增加一个文件autofsck.内容:
AUTOFSCK_DEF_CHECK=yes
PROMPT=yes
以后假如非法关机且启动时没接键盘,系统5秒钟后将自动修复



xargs 实现参数传递
使用linux 命令的时候, 经常会遇到将第一条命令执行的结果, 作为第二个命令的参数。  这种情况使用xargs 就可以搞定;

-i 可以指定参数的位置。 如:

grep jar readme.txt | xargs -i cp {} runtime/ 

就可以将readme.txt 文件中的jar文件复制到runtime目录中。

 

 

 

sysctl 调整 Linux系统 性能

sysctl是一个允许您改变正在运行中的Linux系统的接口。它包含一些 TCP/IP 堆栈和虚拟内存系统的高级选项, 这可以让有经验的管理员提高引人注目的系统性能。用sysctl可以读取设置超过五百个系统变量。基于这点,sysctl(8) 提供两个功能:读取和修改系统设置。
查看所有可读变量:
% sysctl -a
读一个指定的变量,例如 kern.maxproc:
% sysctl kern.maxproc kern.maxproc: 1044
要设置一个指定的变量,直接用 variable=value 这样的语法:
# sysctl kern.maxfiles=5000
kern.maxfiles: 2088 -> 5000
您可以使用sysctl修改系统变量,也可以通过编辑sysctl.conf文件来修改系统变量。sysctl.conf 看起来很像 rc.conf。它用 variable=value 的形式来设定值。指定的值在系统进入多用户模式之后被设定。并不是所有的变量都可以在这个模式下设定。
sysctl 变量的设置通常是字符串、数字或者布尔型。 (布尔型用 1 来表示'yes',用0 来表示'no')。

sysctl -w kernel.sysrq=0
sysctl -w kernel.core_uses_pid=1
sysctl -w net.ipv4.conf.default.accept_redirects=0
sysctl -w net.ipv4.conf.default.accept_source_route=0
sysctl -w net.ipv4.conf.default.rp_filter=1
sysctl -w net.ipv4.tcp_syncookies=1
sysctl -w net.ipv4.tcp_max_syn_backlog=2048
sysctl -w net.ipv4.tcp_fin_timeout=30
sysctl -w net.ipv4.tcp_synack_retries=2
sysctl -w net.ipv4.tcp_keepalive_time=3600
sysctl -w net.ipv4.tcp_window_scaling=1
sysctl -w net.ipv4.tcp_sack=1

配置sysctl

编辑此文件:

vi /etc/sysctl.conf


如果该文件为空,则输入以下内容,否则请根据情况自己做调整:

# Controls source route verification
# Default should work for all interfaces
net.ipv4.conf.default.rp_filter = 1
# net.ipv4.conf.all.rp_filter = 1
# net.ipv4.conf.lo.rp_filter = 1
# net.ipv4.conf.eth0.rp_filter = 1

# Disables IP source routing
# Default should work for all interfaces
net.ipv4.conf.default.accept_source_route = 0
# net.ipv4.conf.all.accept_source_route = 0
# net.ipv4.conf.lo.accept_source_route = 0
# net.ipv4.conf.eth0.accept_source_route = 0

# Controls the System Request debugging functionality ofthe kernel
kernel.sysrq = 0

# Controls whether core dumps will append the PID to the core filename.
# Useful for debugging multi-threaded applications.
kernel.core_uses_pid = 1

# Increase maximum amount of memory allocated to shm
# Only uncomment if needed!
# kernel.shmmax = 67108864

# Disable ICMP Redirect Acceptance
# Default should work for all interfaces
net.ipv4.conf.default.accept_redirects = 0
# net.ipv4.conf.all.accept_redirects = 0
# net.ipv4.conf.lo.accept_redirects = 0
# net.ipv4.conf.eth0.accept_redirects = 0

# Enable Log Spoofed Packets, Source Routed Packets, Redirect Packets
# Default should work for all interfaces
net.ipv4.conf.default.log_martians = 1
# net.ipv4.conf.all.log_martians = 1
# net.ipv4.conf.lo.log_martians = 1
# net.ipv4.conf.eth0.log_martians = 1

# Decrease the time default value for tcp_fin_timeout connection
net.ipv4.tcp_fin_timeout = 25

# Decrease the time default value for tcp_keepalive_time connection
net.ipv4.tcp_keepalive_time = 1200

# Turn on the tcp_window_scaling
net.ipv4.tcp_window_scaling = 1

# Turn on the tcp_sack
net.ipv4.tcp_sack = 1

# tcp_fack should be on because of sack
net.ipv4.tcp_fack = 1

# Turn on the tcp_timestamps
net.ipv4.tcp_timestamps = 1

# Enable TCP SYN Cookie Protection
net.ipv4.tcp_syncookies = 1

# Enable ignoring broadcasts request
net.ipv4.icmp_echo_ignore_broadcasts = 1

# Enable bad error message Protection
net.ipv4.icmp_ignore_bogus_error_responses = 1

# Make more local ports available
# net.ipv4.ip_local_port_range = 1024 65000

# Set TCP Re-Ordering value in kernel to ‘5′
net.ipv4.tcp_reordering = 5

# Lower syn retry rates
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 3

# Set Max SYN Backlog to ‘2048′
net.ipv4.tcp_max_syn_backlog = 2048

# Various Settings
net.core.netdev_max_backlog = 1024

# Increase the maximum number of skb-heads to be cached
net.core.hot_list_length = 256

# Increase the tcp-time-wait buckets pool size
net.ipv4.tcp_max_tw_buckets = 360000

# This will increase the amount of memory available for socket input/output queues
net.core.rmem_default = 65535
net.core.rmem_max = 8388608
net.ipv4.tcp_rmem = 4096 87380 8388608
net.core.wmem_default = 65535
net.core.wmem_max = 8388608
net.ipv4.tcp_wmem = 4096 65535 8388608
net.ipv4.tcp_mem = 8388608 8388608 8388608
net.core.optmem_max = 40960

如果希望屏蔽别人 ping 你的主机,则加入以下代码:

# Disable ping requests
net.ipv4.icmp_echo_ignore_all = 1

编辑完成后,请执行以下命令使变动立即生效:

/sbin/sysctl -p
/sbin/sysctl -w net.ipv4.route.flush=1
 

 

 

 
Linux  时间同步

1. 与一个已知的时间服务器同步

2. 配置网络时间协议(ntp)

# crontab -e    

加入一行:    

*/1 * * * *  ntpdate 210.72.145.44     

210.72.145.44 为中国国家授时中心服务器地址,这样该机每隔1分重就可以与国家授时中心进行同步了。    

注意: 在使用ntpdate 命令时, ntpd 服务必须是关闭的, 否则会报the NTP socket is in use, exiting 错误。



2. 时间服务器配置(192.168.10.1)

1). # rpm -ivh ntp-4.1.2-4.EL3.1.i386.rpm
2). # vi /etc/ntp.conf
注释一行
restrict default ignore
加入一行
restrict 192.168.10.0 mask 255.255.255.0 notrust nomodify notrap
3). # vi /etc/ntp/step-tickers
加入一行
pool.ntp.org
这样每次ntpd启动时,会自动连接该国际标准时间服务器;
4). # service ntpd start
5). # netstat -an |grep 123
确保该端口以udp方式开放
时间客户端配置(192.168.10.2)
1). # ntpdate 192.168.10.2
应该显示同步成功
2). # crond -e
加入
0-59/10 * * * * /usr/sbin/ntpdate 192.168.10.1
表示每隔10分钟同步一次时间


使用ntpdate 命令


关闭 ntpd 服务命令如下:

[root@node2 init.d]# /etc/init.d/ntpd stop

Shutting down ntpd:                                        [  OK  ]

1.2. 架设本地时间服务器

需要修改 /etc/ntp.conf文件里的几个配置就可以了,比如本地时间服务器IP 为 10.85.10.119, 配置如下:

server 210.72.145.44 prefer (中国国家授时中心服务器地址 prefer表示优先 注意把默认的server更改成这样)    

server 127.127.1.0 (本地时间)    

restrict 10.85.10.0 mask 255.255.255.0 nomodify (允许10..85.10.* IP 使用该时间服务器)    

restrict 0.0.0.0 mask 0.0.0.0 nomodify notrap noquery notrust (屏蔽其他IP过来更新时间)    

其他的保持默认不动。   

 

使NTP服务可以在系统引导的时候自动启动,执行:     

# chkconfig ntpd on    

启动/关闭/重启NTP的命令:    

# /etc/init.d/ntpd start    

# /etc/init.d/ntpd stop    

# /etc/init.d/ntpd restart    

#service ntpd restart

将同步好的时间写到CMOS里    

vi /etc/sysconfig/ntpd    

SYNC_HWCLOCK=yes    

  

每次修改了配置文件后都需要重新启动服务来使配置生效。

可以使用下面的命令来检查NTP服务是否启动,你应该可以得到一个进程ID号:    

# pgrep ntpd    

使用下面的命令检查时间服务器同步的状态:    

# ntpq -p    

ntpstat 也可以查看一些同步状态,用netstat -ntlup查看端口使用情况!  

  

安装完毕客户端需过5-10分钟才能从服务器端更新时间!   

 

客户端设置:    

# crontab -e    

加入一行:    

*/1 * * * * ntpdate 10.85.10.119。   

相关配置参数说明
#  restrict权限控制语法为:
#  restrict IP mask netmask_IP parameter
#  其中 IP 可以是软件地址,也可以是 default default 就类似 0.0.0.0 咯!
#  至于 paramter 则有:
#   ignore :关闭所有的 NTP 联机服务
#   nomodify:表示 Client 端不能更改 Server 端的时间参数,不过,
#        Client 端仍然可以透过 Server 端来进行网络校时。
#   notrust :该 Client 除非通过认证,否则该 Client 来源将被视为不信任网域
#   noquery :不提供 Client 端的时间查询
#  如果 paramter 完全没有设定,那就表示该 IP (或网域『没有任何限制!』

 设定上层主机主要以 server这个参数来设定,语法为:
#  server [IP|FQDN] [prefer]
#  Server 后面接的就是我们上层 Time Server 啰!而如果 Server 参数
#  后面加上 perfer 的话,那表示我们的 NTP 主机主要以该部主机来作为
#  时间校正的对应。另外,为了解决更新时间封包的传送延迟动作,


二、使用rdate同步时间
如果要用vmware安装RAC,则各个几点间时间必须一致,可以以一个节点作为标准,其他节点与该节点进行时间同步。
假如有两个节点:
A: 10.85.10.119
B: 10.85.10.121

A作为时间标准,B节点用A节点时间进行同步。
1、在A节点开放37端口
最简单,但也最不安全的方法是关闭防火墙:iptables -F

2. A节点启动时间服务
#chkconfig time on     #在系统引导的时候自动启动


如果不启动该服务,则其他节点与该节点同步时间时会报错:Connect Refused

注意:要用root 用户

3、在B节点与A节点同步时间
rdate -s 10.85.10.119  

可以在crontab 中做执行计划, 每分钟执行一次,这样保证时间的同步。

[root@node2 ~]# crontab -l

*/1 * * * * rdate -s 10.85.10.119

[root@node2 ~]#

关于crontab 的介绍参考blog

Unix crontab 命令详解

http://blog.csdn.net/tianlesoftware/archive/2010/02/21/5315039.aspx

 

三. 使用 Network Time Protocol (NTP) 服务器

1. 假如公司网络里有一个时间服务器: 10.85.10.80, 此时只需要在每个结点上修改NTP 服务配置文件,让每个结点和时间服务器进行同步即可。 

# vi /etc/ntp.conf

Server 10.85.10.80 prefer

Driftfile /var/lib/ntp/drift

Broadcastdelay 0.008

修改完后在重启一下 ntp 服务

#/etc/init.d/ntpd restart

2. 如果没有时间服务,则可以用RAC 2个结点中一个做为服务器。另一个与此服务器同步即可。 

加入用node1 做服务器, 其IP 为: 10.85.10.119, 修改配置文件

#vi /etc/ntp.conf

Server 127.127.1.0  -- 本地时钟

Fudge 127.127.1.0 stratum 11

Broadcastdelay 0.008

Node2 node1 同步。 修改node2ntp 配置文件

# vi /etc/ntp.conf

Server 10.85.10.119 prefer

Driftfile /var/lib/ntp/drift

Broadcastdelay 0.008

修改完后在重启一下 ntp 服务

#/etc/init.d/ntpd restart


 
 


NTP服务器端安装和配置

需求:搭建ORACLE RAC要求搭建NTP服务器

系统:centos 5.6 x64位
ntp服务器端的IP地址:192.168.33.5
ntp服务器名;rac1


步骤1:NTP安装

[root@rac1 etc]#yum install ntp
如果已经有装过版本了,可以先卸载
[root@rac1 etc]#yum remove ntp

步骤2:配置ntp服务器

1)修改/etc/ntp.conf文件

[root@rac1 etc]# vi /etc/ntp.conf
# Permit time synchronization with our time source, but do not
# permit the source to query or modify the service on this system.
#缺省的访问权限不允许修改也不允许查询
# 用restrict控管权限 nomodify - 用户端不能更改ntp服务器的时间参数 noquery - 用户端不能使用ntpq,ntpc等命令来查询ntp服务器 notrap - 不提供trap远端登陆
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
# Permit all access over the loopback interface.  This could
# be tightened as well, but to do so would effect some of
# the administrative functions.
#开放本机内部环路接口
restrict 127.0.0.1
restrict -6 ::1
# Hosts on local network are less restricted.
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
#开放本实验局域网访问权限
restrict 192.168.33.0 mask 255.255.255.0 nomodify notrap
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#设置上层NTP服务器,通过这个http://www.pool.ntp.org/zone/cn地址可以到使用频率最高的服务器
server 0.cn.pool.ntp.org
server 1.asia.pool.ntp.org
server 3.asia.pool.ntp.org
#设置本地时钟源及层数位置
server 127.127.1.0
fudge 127.127.1.0 stratum 10
#用于补偿系统时钟自然漂移的一个文件
driftfile /var/lib/ntp/drift
keys /etc/ntp/keys


2)修改NTP配置文件/etc/sysconfig/ntpd

[root@rac1 etc]## vi  /etc/sysconfig/ntpd

# Drop root to id 'ntp:ntp' by default.

OPTIONS="-u ntp:ntp -p /var/run/ntpd.pid"
# Set to 'yes' to sync hw clock after successful ntpdate
#通过外部时钟源校正时间后,自动更新BIOS时间
SYNC_HWCLOCK=yes
# Additional options for ntpdate

NTPDATE_OPTIONS=""

3)主动同步上层服务器,修改NTP配置文件/etc/ntp/step-tickers

设置之后ntp服务器可以主动同步上层服务器,所以将地址写入该文件中即可。


[root@rac1 ntp]# vi /etc/ntp/step-tickers

0.cn.pool.ntp.org

保存退出

 


步骤3:NTP防火墙设置允许123端口访问

[root@rac1 etc]#iptables -A INPUT -p udp --dport 123 --sport 123 -j ACCEPT

[root@rac1 etc]#iptables -A OUTPUT -p udp --sport 123 --dport 123 -j ACCEPT


步骤4:NTP运行和设置开机访问
service ntpd start/stop/restart
chkconfig ntpd on

[root@rac1 ntp]# service ntpd start
ntpd: 同步时间服务器:                                     [确定]
同步硬件时钟到系统时钟                                     [确定]
启动 ntpd:                                                [确定]

[root@rac1 ntp]# service ntpd status
ntpd (pid  7245) 正在运行...
步骤5:NTP相关查看命令
查看ntp的端口,应该看到123端口
[root@rac1 ntp]# netstat -unlnp

查看ntp服务器有无和上层连通
[root@rac1 ntp]# ntpstat
synchronised to NTP server (118.219.234.251) at stratum 11
   time correct to within 450 ms
   polling server every 64 s

 


注意:此命令出现上述synchronised结果比较慢,需要等待几分钟,不会一启动就能连接上

有可能出现下面的错误

[root@rac1 ntp]# ntpstat
unsynchronised
  time server re-starting
   polling server every 64 s

查看ntp服务器与上层间的联系
 [root@rac1 ntp]# ntptrace -n 127.0.0.1
127.0.0.1: stratum 3, offset 0.072306, synch distance 0.205068
118.219.234.251: stratum 2, offset 0.003309, synch distance 0.046788
121.182.147.191: stratum 1, offset 0.000001, synch distance 0.000000, refid 'GPS'

查看ntp服务器与上层ntp服务器的状态
[root@rac1 ntp]# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
+114.80.81.13    216.218.192.202  2 u   63   64  377  142.827    8.429   3.245
+tock.stdtime.go 59.124.196.86    2 u   58   64  377  109.621   70.157   5.744
*118.219.234.251 121.182.147.191  2 u   63   64  377   59.405   89.436  22.051
 LOCAL(0)        .LOCL.          10 l    1   64  377    0.000    0.000   0.001
其中,
remote - 本机和上层ntp的ip或主机名,“+”表示优先,“*”表示次优先
refid - 参考上一层ntp主机地址
st - stratum阶层
when - 多少秒前曾经同步过时间
poll - 下次更新在多少秒后
reach - 已经向上层ntp服务器要求更新的次数
delay - 网络延迟
offset - 时间补偿
jitter - 系统时间与bios时间差

 

 

Ntp客户端的同步:
手动执行同步命令:
[root@nfsnode1 ~]# ntpdate 192.168.33.5
22 Oct 16:52:05 ntpdate[7503]: step time server 197.133.133.10 offset -20.497776 sec
[root@nfsnode1 ~]# date
再写入bios:
[root@nfsnode1 ~]# hwclock –w
要定时自动同步,可以把命令及执行时间和周期等加入crontab

[root@rac2 ~]# crontab -e
* * * * *  /usr/sbin/ntpdate 192.168.33.5 && hwclokc -w

30 22 * * * root /usr/sbin/ntpdate 192.168.33.5; /sbin/hwclock -w #192.168.33.5是NTP服务器的IP地址


保存退出:x

每天 22:30 Linux 系统就会自动的进行网络时间校准。
crontab: installing new crontab

碰到的问题:

[root@rac2 ~]#  ntpdate 192.168.33.5
 7 Mar 14:52:03 ntpdate[7136]: no server suitable for synchronization found

解决方法:先去同步别的NTP服务器

[root@rac2 ~]# ntpdate pool.ntp.org
 7 Mar 14:54:32 ntpdate[7157]: adjust time server 114.80.81.1 offset -0.065092 sec
[root@rac2 ~]# ntpdate 192.168.33.5
 7 Mar 14:54:41 ntpdate[7160]: adjust time server 192.168.33.5 offset 0.016218 sec

 

 
参考URL:http://www.uid5a.cn/roller/uid

http://hi.baidu.com/toflyintheair/blog/item/452586c6d5bf765ab319a8d3.html
http://supernetwork.blog.51cto.com/2304163/526926
http://summervast.blog.51cto.com/690507/376357
http://www.2cto.com/os/201112/114955.html
http://www.num123.com/post/91
http://www.linuxfly.org/post/71/
http://www.linuxfly.org/category/20/
http://www.linuxfly.org/category/19/
http://wenku.baidu.com/view/37005969af1ffc4ffe47ac3e.html?from=related&hasrec=1

http://wenku.baidu.com/view/77ede721192e45361066f5cb.html?from=related&hasrec=1

 

 
 


NTP服务器端安装和配置

系统:centos 5.6 x64位
ntp服务器端的IP地址:192.168.33.5
ntp服务器名;rac1

步骤1:NTP安装

[root@rac1 etc]#yum install ntp
如果已经有装过版本了,可以先卸载
[root@rac1 etc]#yum remove ntp

步骤2:配置ntp服务器

1)修改/etc/ntp.conf文件

[root@rac1 etc]# vi /etc/ntp.conf
# Permit time synchronization with our time source, but do not
# permit the source to query or modify the service on this system.
#缺省的访问权限不允许修改也不允许查询
# 用restrict控管权限 nomodify - 用户端不能更改ntp服务器的时间参数 noquery - 用户端不能使用ntpq,ntpc等命令来查询ntp服务器 notrap - 不提供trap远端登陆
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
# Permit all access over the loopback interface.  This could
# be tightened as well, but to do so would effect some of
# the administrative functions.
#开放本机内部环路接口
restrict 127.0.0.1
restrict -6 ::1
# Hosts on local network are less restricted.
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
#开放本实验局域网访问权限
restrict 192.168.33.0 mask 255.255.255.0 nomodify notrap
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#设置上层NTP服务器,通过这个http://www.pool.ntp.org/zone/cn地址可以到使用频率最高的服务器
server 0.cn.pool.ntp.org
server 1.asia.pool.ntp.org
server 3.asia.pool.ntp.org
#设置本地时钟源及层数位置
server 127.127.1.0
fudge 127.127.1.0 stratum 10
#用于补偿系统时钟自然漂移的一个文件
driftfile /var/lib/ntp/drift
keys /etc/ntp/keys

2)修改NTP配置文件/etc/sysconfig/ntpd

[root@rac1 etc]## vi  /etc/sysconfig/ntpd

# Drop root to id 'ntp:ntp' by default.

OPTIONS="-u ntp:ntp -p /var/run/ntpd.pid"
# Set to 'yes' to sync hw clock after successful ntpdate
#通过外部时钟源校正时间后,自动更新BIOS时间
SYNC_HWCLOCK=yes
# Additional options for ntpdate

NTPDATE_OPTIONS=""

3)修改NTP配置文件/etc/ntp/step-tickers

[root@rac1 ntp]# vi /etc/ntp/step-tickers

0.cn.pool.ntp.org

保存退出


步骤3:NTP防火墙设置允许123端口访问

[root@rac1 etc]#iptables -A INPUT -p udp --dport 123 --sport 123 -j ACCEPT

[root@rac1 etc]#iptables -A OUTPUT -p udp --sport 123 --dport 123 -j ACCEPT



Ntp客户端的同步:
手动执行同步命令:
[root@nfsnode1 ~]# ntpdate 192.168.33.5
22 Oct 16:52:05 ntpdate[7503]: step time server 197.133.133.10 offset -20.497776 sec
[root@nfsnode1 ~]# date
再写入bios:
[root@nfsnode1 ~]# hwclock –w
要定时自动同步,可以把命令及执行时间和周期等加入crontab

[root@rac2 ~]# crontab -e
* * * * *  /usr/sbin/ntpdate 192.168.33.5 && hwclokc -w
保存退出:x
crontab: installing new crontab
 
参考URL:http://www.uid5a.cn/roller/uid


NTP服务器端安装和配置

系统:centos 5.6 x64位
ntp服务器端的IP地址:192.168.33.5
ntp服务器名;rac1

步骤1:NTP安装

[root@rac1 etc]#yum install ntp
如果已经有装过版本了,可以先卸载
[root@rac1 etc]#yum remove ntp

步骤2:配置ntp服务器

1)修改/etc/ntp.conf文件

[root@rac1 etc]# vi /etc/ntp.conf
# Permit time synchronization with our time source, but do not
# permit the source to query or modify the service on this system.
#缺省的访问权限不允许修改也不允许查询
# 用restrict控管权限 nomodify - 用户端不能更改ntp服务器的时间参数 noquery - 用户端不能使用ntpq,ntpc等命令来查询ntp服务器 notrap - 不提供trap远端登陆
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
# Permit all access over the loopback interface.  This could
# be tightened as well, but to do so would effect some of
# the administrative functions.
#开放本机内部环路接口
restrict 127.0.0.1
restrict -6 ::1
# Hosts on local network are less restricted.
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
#开放本实验局域网访问权限
restrict 192.168.33.0 mask 255.255.255.0 nomodify notrap
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#设置上层NTP服务器,通过这个http://www.pool.ntp.org/zone/cn地址可以到使用频率最高的服务器
server 0.cn.pool.ntp.org
server 1.asia.pool.ntp.org
server 3.asia.pool.ntp.org
#设置本地时钟源及层数位置
server 127.127.1.0
fudge 127.127.1.0 stratum 10
#用于补偿系统时钟自然漂移的一个文件
driftfile /var/lib/ntp/drift
keys /etc/ntp/keys

2)修改NTP配置文件/etc/sysconfig/ntpd

[root@rac1 etc]## vi  /etc/sysconfig/ntpd

# Drop root to id 'ntp:ntp' by default.

OPTIONS="-u ntp:ntp -p /var/run/ntpd.pid"
# Set to 'yes' to sync hw clock after successful ntpdate
#通过外部时钟源校正时间后,自动更新BIOS时间
SYNC_HWCLOCK=yes
# Additional options for ntpdate

NTPDATE_OPTIONS=""

3)修改NTP配置文件/etc/ntp/step-tickers

[root@rac1 ntp]# vi /etc/ntp/step-tickers

0.cn.pool.ntp.org

保存退出


步骤3:NTP防火墙设置允许123端口访问

[root@rac1 etc]#iptables -A INPUT -p udp --dport 123 --sport 123 -j ACCEPT

[root@rac1 etc]#iptables -A OUTPUT -p udp --sport 123 --dport 123 -j ACCEPT



Ntp客户端的同步:
手动执行同步命令:
[root@nfsnode1 ~]# ntpdate 192.168.33.5
22 Oct 16:52:05 ntpdate[7503]: step time server 197.133.133.10 offset -20.497776 sec
[root@nfsnode1 ~]# date
再写入bios:
[root@nfsnode1 ~]# hwclock –w
要定时自动同步,可以把命令及执行时间和周期等加入crontab

[root@rac2 ~]# crontab -e
* * * * *  /usr/sbin/ntpdate 192.168.33.5 && hwclokc -w
保存退出:x
crontab: installing new crontab
 
参考URL:http://www.uid5a.cn/roller/uid





linux 系统备份
http://os.51cto.com/art/201006/208397.htm
http://blog.csdn.net/chinalinuxzend/article/details/3900154
http://www.xxlinux.com/linux/article/accidence/technique/20090120/15003.html
http://wenku.baidu.com/view/32aa0cbefd0a79563c1e726a.html
http://linux.chinaitlab.com/administer/731016.html
原贴:http://gswwgph.itpub.net/post/13860/114636
LINUX系统备份
===========================================================
作者: gswwgph(http://gswwgph.itpub.net)
发表于:2006.06.15 17:39
分类: unix操作系统 
出处:http://gswwgph.itpub.net/post/13860/114636
--------------------------------------------------------------- 
Linux 在备份时考虑的因素有哪些呢? 


备份哪些档案: 
例如在账号管理那一篇当中,我们知道最起码主机的账号信息在/etc/*及/home/*等等档案都是重要的! 
  
选择什么备份的媒介: 
是可擦写光盘、另一棵硬盘、同一颗硬盘的不同 partition、还是使用网络备援系统?哪一种的速度最
快,最便宜,可将数据保存最久?
Linux 在备份时考虑的因素有哪些呢? 


备份哪些档案: 
例如在账号管理那一篇当中,我们知道最起码主机的账号信息在/etc/*及/home/*等等档案都是重要的! 
  
选择什么备份的媒介: 
是可擦写光盘、另一棵硬盘、同一颗硬盘的不同 partition、还是使用网络备援系统?哪一种的速度最
快,最便宜,可将数据保存最久? 
  
考虑备份的方式: 
是完全备份(类似 ghost)还是部分备份即可? 
  
备份的频率: 
例如 MySQL 数据库是否天天备份、若完全备份,需要多久进行一次? 
  
备份使用的工具为何: 
是 tar 还是 cpio 等等?


哪些 Linux 数据具有备份的意义 
具有备份意义的档案通常可以粗分为两大类,一类是系统一类则是类似网络服务的数据库
主机系统需要备份的档案: 
这方面的档案主要跟『账号』有关系!主要有哪些账号的档案需要备份呢?就是 /etc/passwd,
/etc/shadow, /etc/group, /etc/gshadow, /home 底下的账号等等,而由于 Linux 预设的主机
信息设定参数文件都在 /etc/ 底下,所以只要将这个档案备份下来的话,那么几乎所有的设定档都
会存在的!而由于 /home 底下是每个人的家目录,自然也需要来备份一番!再来,由于使用者会有
邮件吧!所以呢,这个 /var/spool/mail 内容也需要备份呦!另外,由于如果您曾经自行更动过核心
,那么 /boot 里头的信息也就很重要啰!所以啰,这方面的数据您必须要备份的档案为:
/etc/ 整个目录 
/home 整个目录 
/var/spool/mail 
/boot 
/root 
如果您自行安装过其它的套件,那么 /usr/local/ 也最好备份一下!
网络服务的数据库方面: 
这部份的数据可就多而且复杂了,如果您的网络套件设定都是以原厂提供的为主,那么您的设定档案
大多是在 /etc 底下,所以这个就没啥大问题了!但是若您的套件大多来自于自行的安装,那么 
/usr/local 这个目录可就相当的重要了!这里我们假设我们提供的服务套件都是使用原厂的 RPM 
安装的!所以要备份的数据文件有:
数据设定档案: 
/etc/ 整个目录 
/usr/local/ 整个目录 
系统 www + MySQL: 
/var/www 整个目录 ( 系统的家目录 ) 
/var/lib/mysql 整个目录 
其它你在 Linux 主机上面提供的数据库数据文件!


推荐需要备份的目录: 
由上面的介绍来看的话,那么如果您的硬件或者是由于经费的关系而无法全部的数据都予以备份时,
建议您至少需要备份这些目录呦!
/boot 
/etc 
/home 
/root 
/usr/local 
/var(注:这个目录当中有些暂存目录则可以不备份!) 
不需要备份的目录: 
有些数据是不需要备份的啦!例如我们在 档案与目录系统 里头提到的 /proc 这个目录是在记录目
前系统上面正在跑的程序 ( processes ) ,这个数据根本就不需要记录的呢!所以就把他拿掉!此
外,外挂的机器,例如 /mnt 里面都是挂载了其它的硬盘装置、光驱、软盘机等等,这些也不需要备
份吧!?所以啰!底下有些目录可以不需要备份啦!
/dev :这个随便你要不要备份 
/proc:这个真的不需要备份啦! 
/mnt :如果你没有在这个目录内放置你自己系统的东西,也不需要备份 
/tmp :干嘛存暂存档!不需要备份!


一些装置的档案代号: 
光驱: /dev/cdrom 
磁带机: /dev/st0 ( SCSI 界面 ), /dev/ht0 ( IDE 界面 ) 
软盘机: /dev/fd0, /dev/fd1 
硬盘机: /dev/hd[a-d][1-16] ( IDE 界面 ), /dev/sd[a-p][1-16] ( SCSI 界面 ) 
打印机: /dev/lp[0-2]
通常在备份的时候,除非有磁带机或者有特殊的功用,否则通常只使用 tar !这里介绍一下 cpio 这个
东西!如果你有磁带机的话, cpio 可是相当好用的一个指令,『那么我为什么
不直接给他 copy 过去备份的地点就好了呢!?』既然可以在 copy 的过程里面增加压缩的功能来减低
整个储存空间的消耗,为何不压缩?!那当然还是压缩一下比较好!我还是比较喜欢 tar,cpio
完整备份的工具: 
完整备份的工具里面,三个工具 tar, cpio 与 dump 都很常被使用!至于 cpio 的话,他最大的好处就
是『 cpio 连一般的装置文件都可以 copy 过来!』很棒吧!所以使用 cpio 进行完整备份是很棒的一
个选择。不过需要注意的是,由于 cpio 需要配合 find 才可以正常的动作!这里请特别留意啰!另外
,使用 cpio 常常配合另一颗完全用来备份的硬盘或者是磁带机才好!
1. 使用 cpio 来备份与反备份 
[root @test /root]# find / -print | cpio -covB > /dev/st0 <==备份至 tap 
[root @test /root]# cpio -iduv < /dev/st0         <==由 tap 将数据存回系统中! 
2. 使用 tar 来备份 
[root @test /root]# tar -zcvfP host.tar.gz / --exclude /proc --exclude /mnt --exclude /tmp 
[root @test /root]# tar -zxvf host.tar.gz
分备份的基础工具: 
至于部分备份方面,我们就以简单的 tar 来说明一下吧!!假如我们需要备份的数据是每天的 MySQL 
数据库时,由于我想让每天的数据都存成不同的档案,而要分别档案的新旧又以日期来分别最简单了!
所以我就可以这样做: 
[root @test /root]# tar -zcvf mysql.`date +%Y-%m-%d`.tar.gz /var/lib/mysql 
如果忘记了上面的指令代表什么意思,那么请回到 bash 那一章去瞧一瞧吧! 
[root @test /root]# tar -N '2002/07/05' -zcvf home.tar.gz /home 
只有在比 2002/07/05 还要新的档案,在 /home 底下的档案才会被打包进 home.tar.gz 中!
这样就能将 mysql 的数据库压缩备份至 mysql.2002-07-06.tar.gz 这个档案,并且日期会每天都不
一样!呵呵!这样一来如果系统的数据库出了问题,就可以马上的回复了!而且还有很多的档案可供
回复呢!不错吧!此外,也可以利用类似上面的第二个范例的例子,将最新的资料备份就好,其它的
资料则不予以更动!嘿嘿!提供了更完善的方式呢!
 






linux 操作基础








查看当前目录下文件的个数
ls -l | grep "^-" | wc -l
查看当前目录下文件的个数,包括子目录里的。
ls -lR| grep "^-" | wc -l
查看某目录下文件夹(目录)的个数,包括子目录里的。
ls -lR| grep "^d" | wc -l
简要说明:
ls -l
长列表输出该目录下文件信息(注意这里的文件,不同于一般的文件,可能是目录、链接、设备文件等)
grep “^-”
这里将长列表输出信息过滤一部分,只保留一般文件,如果只保留目录就是 ^d
wc -l
输出信息的行数,因为已经过滤得只剩一般文件了,所以统计结果就是一般文件信息的行数,又由于一行信息对应一个文件,所以也就是文件的个数
统计一个目录下面所有jar包的大小
find . -name *.jar | xargs -i ls -la {} | awk '{ SUM += $5} END {print SUM}'


 
 
Linux中取消文件夹的只读属性
在linux下,我们可以用chmod更改文件或目录属性
例如: chmod mode file|dir
当文件夹具备相同的权限,有些文件夹下面套着好几层目录,一层一层的用chmod不是办法
我们可以这样改变所有子目录的权限: chmod mode dir -R
mode的取值是二进制表示的,如111 111 111(可以用777代替)表示打开所有权限(读、写、执行)
在Linux下,则文件夹的只读属性必须去掉才能对文件夹进行读写操作,这里的最简单方法是输入命令
        chmod a+w filename
ok,搞定。


查看CPU个数
# cat /proc/cpuinfo
processor       : 0
processor       : 1
processor       : 2
processor       : 3
 
 
 
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。下面详细介绍它的使用方法。
top - 01:06:48 up  1:22,  1 user,  load average: 0.06, 0.60, 0.48
Tasks:  29 total,   1 running,  28 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.3% us,  1.0% sy,  0.0% ni, 98.7% id,  0.0% wa,  0.0% hi,  0.0% si
Mem:    191272k total,   173656k used,    17616k free,    22052k buffers
Swap:   192772k total,        0k used,   192772k free,   123988k cached
   PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
  1379 root      16   0  7976 2456 1980 S  0.7  1.3   0:11.03 sshd
14704 root      16   0  2128  980  796 R  0.7  0.5   0:02.72 top
     1 root      16   0  1992  632  544 S  0.0  0.3   0:00.90 init
     2 root      34  19     0    0    0 S  0.0  0.0   0:00.00 ksoftirqd/0
     3 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 watchdog/0
统计信息区
前五行是系统整体的统计信息。第一行是任务队列信息,同 uptime 命令的执行结果。其内容如下:
01:06:48
当前时间
up 1:22
系统运行时间,格式为时:分
1 user
当前登录用户数
load average: 0.06, 0.60, 0.48
系统负载,即任务队列的平均长度。
三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。
第二、三行为进程和CPU的信息。当有多个CPU时,这些内容可能会超过两行。内容如下:
Tasks: 29 total
进程总数
1 running
正在运行的进程数
28 sleeping
睡眠的进程数
0 stopped
停止的进程数
0 zombie
僵尸进程数
Cpu(s): 0.3% us
用户空间占用CPU百分比
1.0% sy
内核空间占用CPU百分比
0.0% ni
用户进程空间内改变过优先级的进程占用CPU百分比
98.7% id
空闲CPU百分比
0.0% wa
等待输入输出的CPU时间百分比
0.0% hi


0.0% si


最后两行为内存信息。内容如下:
Mem: 191272k total
物理内存总量
173656k used
使用的物理内存总量
17616k free
空闲内存总量
22052k buffers
用作内核缓存的内存量
Swap: 192772k total
交换区总量
0k used
使用的交换区总量
192772k free
空闲交换区总量
123988k cached
缓冲的交换区总量。
内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖,
该数值即为这些内容已存在于内存中的交换区的大小。
相应的内存再次被换出时可不必再对交换区写入。
进程信息区
统计信息区域的下方显示了各个进程的详细信息。首先来认识一下各列的含义。
序号
列名
含义
a
PID
进程id
b
PPID
父进程id
c
RUSER
Real user name
d
UID
进程所有者的用户id
e
USER
进程所有者的用户名
f
GROUP
进程所有者的组名
g
TTY
启动进程的终端名。不是从终端启动的进程则显示为 ?
h
PR
优先级
i
NI
nice值。负值表示高优先级,正值表示低优先级
j
P
最后使用的CPU,仅在多CPU环境下有意义
k
%CPU
上次更新到现在的CPU时间占用百分比
l
TIME
进程使用的CPU时间总计,单位秒
m
TIME+
进程使用的CPU时间总计,单位1/100秒
n
%MEM
进程使用的物理内存百分比
o
VIRT
进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
p
SWAP
进程使用的虚拟内存中,被换出的大小,单位kb。
q
RES
进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
r
CODE
可执行代码占用的物理内存大小,单位kb
s
DATA
可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
t
SHR
共享内存大小,单位kb
u
nFLT
页面错误次数
v
nDRT
最后一次写入到现在,被修改过的页面数。
w
S
进程状态。
D=不可中断的睡眠状态
R=运行
S=睡眠
T=跟踪/停止
Z=僵尸进程
x
COMMAND
命令名/命令行
y
WCHAN
若该进程在睡眠,则显示睡眠中的系统函数名
z
Flags
任务标志,参考 sched.h
默认情况下仅显示比较重要的 PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND 列。可以通过下面的快捷键来更改显示内容。
更改显示内容
通过 f 键可以选择显示的内容。按 f 键之后会显示列的列表,按 a-z 即可显示或隐藏对应的列,最后按回车键确定。
按 o 键可以改变列的显示顺序。按小写的 a-z 可以将相应的列向右移动,而大写的 A-Z 可以将相应的列向左移动。最后按回车键确定。
按大写的 F 或 O 键,然后按 a-z 可以将进程按照相应的列进行排序。而大写的 R 键可以将当前的排序倒转。
命令使用
1. 工具(命令)名称
top
2.工具(命令)作用
显示系统当前的进程和其他状况; top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止. 比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最“敏感”的任务列表.该命令可以按CPU使用.内存使用和执行时间对任务进行排序;而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定.
3.环境设置
在Linux下使用。
4.使用方法
4.1使用格式
top [-] [d] [p] [q] [c] [C] [S] [s]  [n] 
4.2参数说明
d 指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。
p 通过指定监控进程ID来仅仅监控某个进程的状态。
q该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行。
S 指定累计模式
s 使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。
i  使top不显示任何闲置或者僵死进程。
c  显示整个命令行而不只是显示命令名
4.3其他
  下面介绍在top命令执行过程中可以使用的一些交互命令。从使用角度来看,熟练的掌握这些命令比掌握选项还重要一些。这些命令都是单字母的,如果在命令行选项中使用了s选项,则可能其中一些命令会被屏蔽掉。
  Ctrl+L 擦除并且重写屏幕。
  h或者? 显示帮助画面,给出一些简短的命令总结说明。
  k 终止一个进程。系统将提示用户输入需要终止的进程PID,以及需要发送给该进程什么样的信号。一般的终止进程可以使用15信号;如果不能正常结束那就使用信号9强制结束该进程。默认值是信号15。在安全模式中此命令被屏蔽。
  i 忽略闲置和僵死进程。这是一个开关式命令。
  q 退出程序。
  r 重新安排一个进程的优先级别。系统提示用户输入需要改变的进程PID以及需要设置的进程优先级值。输入一个正值将使优先级降低,反之则可以使该进程拥有更高的优先权。默认值是10。
  S 切换到累计模式。
  s 改变两次刷新之间的延迟时间。系统将提示用户输入新的时间,单位为s。如果有小数,就换算成m s。输入0值则系统将不断刷新,默认值是5 s。需要注意的是如果设置太小的时间,很可能会引起不断刷新,从而根本来不及看清显示的情况,而且系统负载也会大大增加。
  f或者F 从当前显示中添加或者删除项目。
  o或者O 改变显示项目的顺序。
  l 切换显示平均负载和启动时间信息。
  m 切换显示内存信息。
  t 切换显示进程和CPU状态信息。
  c 切换显示命令名称和完整命令行。
  M 根据驻留内存大小进行排序。
  P 根据CPU使用百分比大小进行排序。
  T 根据时间/累计时间进行排序。
    W 将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法。




本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/76263/showart_1212541.html
Cat /proc/cpuinfo
linux下
/proc/cpuinfo
文件会显示cpu的信息
processor 会从0开始记数,继续下去多个cpu
flags 如果有 ht 说明支持超线程技术
判断物理CPU的个数可以查看physical id 的值,相同则为同一个物理CPU
processor : 4
vendor_id : GenuineIntel
cpu family : 15
model : 4
model name : Intel(R) Xeon(TM) CPU 3.00GHz
stepping : 8
cpu MHz : 3002.700
cache size : 2048 KB
physical id : 9
siblings : 4
core id : 19
cpu cores : 2
------------------------------
processor : 5
vendor_id : GenuineIntel
cpu family : 15
model : 4
model name : Intel(R) Xeon(TM) CPU 3.00GHz
stepping : 8
cpu MHz : 3002.700
cache size : 2048 KB
physical id : 9
siblings : 4
core id : 19
cpu cores : 2
-----------------------------------------------
address sizes : 40 bits physical, 48 bits virtual
power management:
关键词: SMP linux 多CPU个数 超线程HT Hyper-Threading
摘抄一些网上的相关知识:
超线程技术就是利用特殊的硬件指令,把两个逻辑内核模拟成两个物理芯片,让单个处理器都能使用线程级并行计算,进而兼容多线程操作系统和软件,减少了CPU的闲置时间,提高的CPU的运行效率。
采用超线程及时可在同一时间里,应用程序可以使用芯片的不同部分。虽然单线程芯片每秒钟能够处理成千上万条指令,但是在任一时刻只能够对一条指令进行操作。而超线程技术可以使芯片同时进行多线程处理,使芯片性能得到提升。
超线程技术是在一颗CPU同时执行多个程序而共同分享一颗CPU内的资源,理论上要像两颗CPU一样在同一时间执行两个线程,P4处理器需要多加入一个Logical CPU Pointer(逻辑处理单元)。因此新一代的P4 HT的die的面积比以往的P4增大了5%。而其余部分如ALU(整数运算单元)、FPU(浮点运算单元)、L2 Cache(二级缓存)则保持不变,这些部分是被分享的。
虽然采用超线程技术能同时执行两个线程,但它并不象两个真正的CPU那样,每个CPU都具有独立的资源。当两个线程都同时需要某一个资源时,其中一个要暂时停止,并让出资源,直到这些资源闲置后才能继续。因此超线程的性能并不等于两颗CPU的性能。
英特尔P4 超线程有两个运行模式,Single Task Mode(单任务模式)及Multi Task Mode(多任务模式),当程序不支持Multi-Processing(多处理器作业)时,系统会停止其中一个逻辑CPU的运行,把资源集中于单个逻辑 CPU中,让单线程程序不会因其中一个逻辑CPU闲置而减低性能,但由于被停止运行的逻辑CPU还是会等待工作,占用一定的资源,因此Hyper- Threading CPU运行Single Task Mode程序模式时,有可能达不到不带超线程功能的CPU性能,但性能差距不会太大。也就是说,当运行单线程运用软件时,超线程技术甚至会降低系统性能,尤其在多线程操作系统运行单线程软件时容易出现此问题。