Linux服務器 CentOS 6系列最小化安裝優(yōu)化腳本詳解02————修改history記錄、定時校正服務器時間蛛壳、停止IPv6網(wǎng)絡服務杏瞻、調整最大文件打開數(shù)、關閉寫磁盤I/O功能炕吸、配置SSH服務
修改SHELL命令的history記錄個數(shù)
通過修改/etc/profile
中的HISTSIZE
的值即可伐憾,使用sed命令修改如下:
[root@private ~]# sed -n '/HISTSIZE/p' /etc/profile
HISTSIZE=1000
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
[root@private ~]# sed -n '/HISTSIZE=/ s/=.*/=100/p' /etc/profile
HISTSIZE=100
[root@private ~]# sed -i '/HISTSIZE=/ s/=.*/=100/' /etc/profile
[root@private ~]# sed -n '/HISTSIZE/p' /etc/profile
HISTSIZE=100
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
定時校正服務器時間
[root@private ~]# yum -y install ntp
[root@private ~]# crontab -e -u root
*/5 * * * * /usr/sbin/ntpdate ntp.api.bz
#ntp.api.bz是一組NTP服務器,目前分散在上海和浙江電信
[root@private ~]# /usr/sbin/ntpdate ntp.api.bz
6 Jun 00:56:24 ntpdate[107454]: adjust time server 17.253.72.243 offset 0.010472 sec
#可以使用dig命令查看
[root@private ~]# dig ntp.api.bz
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 <<>> ntp.api.bz
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42597
;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;ntp.api.bz. IN A
;; ANSWER SECTION:
ntp.api.bz. 60 IN CNAME time.asia.apple.com.
time.asia.apple.com. 78080 IN CNAME time-ios.g.aaplimg.com.
time-ios.g.aaplimg.com. 38 IN A 17.253.72.243
time-ios.g.aaplimg.com. 38 IN A 17.253.72.241
time-ios.g.aaplimg.com. 38 IN A 17.253.84.125
;; Query time: 32 msec
;; SERVER: 114.114.114.114#53(114.114.114.114)
;; WHEN: Tue Jun 6 00:57:02 2017
;; MSG SIZE rcvd: 142
停止IPv6網(wǎng)絡服務
默認狀態(tài)下赫模,IPv6是被啟用的树肃。可以使用如下命令查看:
[root@private ~]# lsmod | grep ipv6
nf_conntrack_ipv6 8748 2
nf_defrag_ipv6 11182 1 nf_conntrack_ipv6
nf_conntrack 79758 3 nf_conntrack_ipv4,nf_conntrack_ipv6,xt_state
ipv6 317340 267 ip6t_REJECT,nf_conntrack_ipv6,nf_defrag_ipv6
[root@private ~]#
可以根據(jù)業(yè)務的需求進行選擇是否禁用IPv6瀑罗。
首先需要確認IPv6是否處于被啟動的狀態(tài)胸嘴,命令如下:
[root@private ~]# ifconfig -a
eth1 Link encap:Ethernet HWaddr FA:16:3E:59:FE:45
inet addr:192.168.0.4 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::f816:3eff:fe59:fe45/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:24806 errors:0 dropped:0 overruns:0 frame:0
TX packets:17881 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:8638429 (8.2 MiB) TX bytes:1753384 (1.6 MiB)
Interrupt:45
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:10 errors:0 dropped:0 overruns:0 frame:0
TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:700 (700.0 b) TX bytes:700 (700.0 b)
[root@private ~]#
通過ifconfig命令發(fā)現(xiàn)當前處于被啟動的狀態(tài),修改對于配置文件斩祭,停止IPv6劣像,命令如下:
[root@private ~]# echo "install ipv6 /bin/true" > /etc/modprobe.d/disable-ipv6.conf
#每當系統(tǒng)需要加載ipv6模塊時,強行執(zhí)行/bin/ture來代替實際加載的模塊
[root@private ~]# echo "IPV6INIT=no" >> /etc/sysconfig/network-scripts/ifcfg-eth0
#禁用基于IPv6網(wǎng)絡摧玫,使之不會觸發(fā)啟動
調整Linux的最大文件打開數(shù)
調整Linux的最大文件打開數(shù)耳奕,否則運行Squid服務的機器在高負載均衡時,執(zhí)行性能會很差诬像∥萑海或者在Linux上部署應用時,有時候也會遇到“too many open files”這樣的問題坏挠。
其實Linux是有文件句柄限制的芍躏,但是默認值是1024,生產環(huán)境下比較容易打開這個值降狠,所以需要進行調整对竣。
下面打開/etc/security/limit.conf命令,在最后一行添加如下命令:
* soft nofile 65535
* hard nofile 65535
正解的做法應該是除了以上步驟之外榜配,還要在系統(tǒng)的/etc/rc.local文件里添加如下內容:
ulimit -SHn 65535
另外否纬,ulimit-n命令并不能真正看到文件的最大文件打開數(shù),可用如下腳本查看:
#蛋褥!/bin/bash
for pid in `ps aux |grep nginx |grep -v grep|awk '{print $2}'`
do
cat /proc/${pid}/limits |grep 'Max open files'
done
啟動網(wǎng)卡
在配置CentOS 6.4的網(wǎng)卡IP地址時烦味,容易忽略的一項是Linux在啟動時未啟動網(wǎng)卡,其后果很明顯,那就是該Linux機器永遠也沒有IP地址谬俄。下面是一臺線上環(huán)境服務器網(wǎng)卡/etc/sysconfig/network-scripts/ifcfg-eth0文件的配置內容:
DEVICE=eth0
BOOTPROTO=static
HWADDR=00:14:22:1B:71:20
IPV6INIT=no
IPV6_AUTOCONF=yes
ONBOOT=yes ——>此項一定要記得更改為yes,它會在系統(tǒng)引導時就啟動網(wǎng)卡設備
NETMASK=255.255.255.192
IPADDR=203.93.236.146
GATEWAY=203.93.236.129
TYPE=Ethernet
PEERDNS=yes ——>允許用從DHCP處獲得的DNS覆蓋本地的DNS
USERCTL=no ——>不允許普通用戶修改網(wǎng)卡
關閉寫磁盤I/O功能
Linux文件默認有3個時間,分別如下所示弃理。
- atime:對此文件的訪問時間溃论。
- ctime:此文件inode發(fā)生變化的時間。
- mtime:此文件的修改時間痘昌。
如果有多個小文件(比如Web服務器的頁面上有多個小圖片)钥勋,通常是沒有必要記錄文件的訪問時間的,這樣就可以減少寫磁盤的I/O辆苔,可這要如何配置呢算灸?
首先,修改文件系統(tǒng)的配置文件/etc/fstab
驻啤,然后菲驴,在包含大量小文件的分區(qū)中使用noatime和nodiratime這兩個命令。例如:
/dev/sda5 /data/pics ext3 noatime,nodiratime 0 0
這樣文件被訪問時就不會再產生寫磁盤的I/O了骑冗。
修改SSH登錄配置
SSH服務配置優(yōu)化赊瞬,請保持機器中至少包含一個具有sudo權限的用戶,下面的配置會禁止root遠程登錄贼涩,代碼內容如下所示:
sed -i 's@#PermitRootLogin yes@PermitRootLogin no@' /etc/ssh/sshd_config
#禁止root遠程登錄
sed -i 's@#PermitEmptyPasswords no@PermitEmptyPasswords no@' /etc/ssh/sshd_config
#禁止空密碼登錄
sed -i 's@#UseDNS yes@UseDNS no@' /etc/ssh/sshd_config /etc/ssh/sshd_config
#關閉SSH反向查詢巧涧,以加快SSH的訪問速度
增加具有sudo權限的用戶
添加用戶的步驟和過程比較簡單(這里略過),由于系統(tǒng)已經(jīng)禁止了root遠程登錄遥倦,因此需要一個具有sudo權限的admin用戶谤绳,權限跟root相當,這里用vim命令袒哥,在打開的/etc/sudoers
文件內容里添加如下內容:
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
admin ALL=(ALL) ALL
#如果在進行sudo切換時不想輸入密碼缩筛,可以做如下更改:
#admin ALL=(ALL) NOPASSWD:ALL