Xshell上傳下載服務器的文件:
yum -y install lrzsz sysstat//安裝對應軟件
sz XXXX//下載
rz XXXX//上傳
創建用戶:
Useradd vrfxie //創建用戶
-c comment 指定一段註釋性描述。
-d 目錄 指定用戶主目錄,如果此目錄不存在,則同時使用-m選項,可以創建主目錄。
-g 用戶組 指定用戶所屬的主用戶組。
-G 用戶組,用戶組 指定用戶所屬的附加組。
-s Shell文件 指定用戶的登錄Shell。 #可以設置爲/sbin/nologin意思是用戶不允許登錄,僅不可登陸,但可以運行某些服務
-u 用戶號 指定用戶的用戶號,如果同時有-o選項,則可以重複使用其他用戶的標識號。
Passwd vrfxie //創建密碼
密碼不符合安全設定的話 就會提醒你 但還是能創建的
一步創建到位,非交互操作:echo "vrf123" | passwd --stdin vrfxie
for user in 'seq 10';do useradd user$user;echo user$user | passwd --stdin user$user;done //批量創建用戶
Woami //查看當前用戶,檢查一下
Su - //切換用戶,如果使用su而不加上“-”這個參數,那麼,切換前的用戶的相關信息還會存在
$是普通用戶的命令提示符,#是超級用戶的命令提示符
su命令總結:
1)普通用戶切換到root用戶,可使用su -或su - root。必須輸入root密碼才能完成切換。
2)root用戶切換到普通用戶,可使用“su - 普通用戶名”的寫法。不需要輸入任何密碼就能完成切換。切換到普通用戶後,在執行一些命令如ifconfig時,可能會遭遇到環境變量PATH路徑問題而找不到某些系統命令(一般是/sbin,/usr/sbin等下面的命令),這時就需要將普通用戶的PATH,配置成root的PATH內容,前面的文章已講解過這個配置方法,不清楚的讀者,可以翻閱下。
3)如果僅希望在某用戶下執行命令,而不直接切換到該用戶下操作,可以使用 su - 用戶名 -c "命令"的方式。
rpm軟件管理
rpm -qa | grep XXX //查看對應軟件有沒安裝
如何查看rpm包裏有什麼內容
rpm -qlp
如何查看rpm包的安裝腳本
rpm -qp --scripts
如何查看rpm包的依賴性關係
rpm -qp --requires
如何查看rpm包詳細信息
rpm -qi
如何安裝rpm包
rpm -ivh
如何更新軟件
rpm -Uvh
如何卸載軟件
rpm -e
如何在安裝過程中指定相對安裝路徑
rpm -ivh --nodeps --force --root=你指定的路徑
如何在安裝過程中忽略依賴性關係
rpm -ivh --nodeps --force
如何查看rpm包的更新記錄
yum:
基於RPM包管理,能夠從指定的服務器自動下載RPM包並且安裝,可以自動處理依賴性關係,並且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載、安裝。
設置更新源(改成國內的源):
mv CentOS6-Base.repo CentOS6-Base.repo.ori
wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
mv CentOS6-Base-163.repo CentOS6-Base.repo
yum makecache
系統&軟件更新:
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY* //導入驗證密鑰,驗證安裝包的安全性
yum update
安裝包羣:
yum grouplist //查看程序包羣的安裝情況
yum groupinstall "XXXX" //安裝包羣
yum groupremove //卸載包組
事先規劃磁盤,引導程序
建議練習機安裝時的磁盤分區能有/,/boot,swap三個分區,這也是工作中常用的分區方法。如果是數據庫及存儲的服務器還可以在分出一個/data分區。
門戶網站一般的分區方案:假設服務器16G內存,1T硬盤。
/boot 分區 100-200M
swap 分區 物理內存的1.5-2倍,如果內存大於16G,可以給8-16G
/分區 80-200G
剩餘空間不分,保留給使用的人根據業務在具體問題具體分區
web服務器集羣,普通服務器:600G-1T的硬盤
/boot 100-200M
swap 1.5 men(如果大於8G,就給8-16G)
/ 所有剩餘的,相當於筆記本的只有C盤。
數據有集羣所以不怕丟失,一塊分區,使用不存在分區不夠大問題。
數據庫存儲系統:600G-1T的硬盤
LAMP,LNMP服務器:
/boot 100-200M
swap 1.5 men(如果大於8G,就給8-16G)
/ 40-80-100G
/data 所有剩餘空間都給/data
提示:一般有重要數據的業務,儘可能數據所在的分區獨立分出來。
SElinux
Linux的一個擴張強制訪問控制安全模塊
Getenforce //查看Selinux的狀態
Setenforce 0/1 //開關Selinux,一般選擇關閉,開啓性價比不高
linux運行級別
關機 0 - halt (Do NOT set initdefault to this)
單用戶模式 1 - Single user mode
多用戶模式,沒有NFS 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
全功能多用戶模式(命令行模式)3 - Full multiuser mode
圖形化環境 5 - X11
重啓 6 - reboot (Do NOT set initdefault to this)
init x(x=0,1,3,5,6) #切換運行級別
startx #init 5,進入圖形化環境
查看運行級別配置
[root@rex / 12:27:13]# cat /etc/inittab
# Default runlevel. The runlevels used are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
#
id:5:initdefault: //默認運行級別
開機服務設置:
命令的處理方法:1)ntsysv 2)setup-system service 3)腳本一鍵完成處理
腳本:
# LANG=en
# for SS in 'chkconfig --list | grep 3:on | awk '{print $1}'';do chkconfig --level 3 $SS off;done #把所有服務關閉
# for SS in crond network syslog sshd;do chkconfig --level 3 $SS on;done #只開啓自己想要的服務
# chkconfig --list|grep 3:on #查詢開啓的服務
acpid 0:off 1:off 2:on 3:on 4:on 5:on 6:off
atd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
auditd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
設置開機自啓動服務原則:最小化原則---儘量不安裝不適用的軟件,儘量不開啓不需要開啓的而服務。即只要不用就不要開啓,這樣的系統的性能和安全性纔是最好的。
sudo權限管理
# visudo //授權給各用戶
user MACHINE(授權哪個角色的權力) COMMANDS(對應命令)
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
rex ALL=(ALL) NOPASSWD:ALL //無敵,密碼都不用
rex2 ALL=(root) !/usr/bin/passwd,/usr/bin/passwd [A-Za-z]*,!/usr/bin/passwd root
授權後,對應用戶用sudo+命令然後輸入自己密碼即可以root身份執行,短時間內再操作,可不需要密碼
[rex2@rex ~ 15:56:22]$ sudo /usr/sbin/useradd kkk
[sudo] password for rex2:
Which //查看命令所在位置
重要的環境變量:
PATH //路徑變量,路徑變量裏面有的路徑,就可以直接執行路徑裏面的命令
#echo $PATH //查看路徑變量
#vim .bash_profile //修改路徑變量(全局)
SSH服務優化:
//優化配置,防止***
主配置文件:/etc/ssh/sshd_config
Port 1631 //修改端口號,對應防火牆要開啓
PermitRootLogin no //root很敏感,不允許root遠程登錄
PermitEmptyPasswords no //禁止空密碼
UseDNS no//不適用DNS
/etc/init.d/sshd restart //重啓服務,生效配置
netstat -n | grep -i est//查看ssh連接情況
合適字符集設置:
簡單的說就是一套文字符號及其編碼。常用的字符集有:
GBK 定長 雙字節 不是國際標準,支持的系統不少
UTF-8 非定長 1-4字節 廣泛支持,mysql也使用
通過快捷的命令方式在/etc/sysconfig/il8n中添加內容即可//設置字符集
cat /etc/sysconfig/i18n //查看字符集
LANG="C"
SYSFONT="latarcyrheb-sun16"
cp /etc/sysconfig/i18n /etc/sysconfig/i18n.ori
echo 'LANG="zh_CN.GB18030"' > /etc/sysconfig/i18n //中文顯示配置要跟SSH客戶端一樣
source /etc/sysconfig/i18n
//修改爲中文顯示
ps:當然能不用中文就不用中文,這裏只是以中文爲例子
時間同步:
# ntpdate time.nist.gov //手動更新
# echo '*/5 * * * * /sbin/ntpdate time.nist.gov > /dev/null 2>&1' >> /var/spool/cron/root //建立定時更新,正確錯誤信息不顯示
加大服務器描述符:
內核(kernel)利用文件描述符(file descriptor)來訪問文件。文件描述符是非負整數。打開現存文件或新建文件時,內核會返回一個文件描述符。讀寫文件也需要使用文件描述符來指定待讀寫的文件。
習慣上,標準輸入(standard input)的文件描述符是 0,標準輸出(standard output)是 1,標準錯誤(standard error)是 2。儘管這種習慣並非
Unix內核的特性,但是因爲一些 shell 和很多應用程序都使用這種習慣,因此,如果內核不遵循這種習慣的話,很多應用程序將不能使用。
文件描述符是由
無符號整數表示的句柄,進程使用它來標識打開的文件。文件描述符與包括相關信息(如文件的打開模式、文件的位置類型、文件的初始類型等)的文件對象相關聯,這些信息被稱作文件的上下文。
ulimit -n //查看當前描述符限制量爲多少
設置描述符數量:
1.在文件/etc/security/limits.conf末尾配置 * - nofile 65535
2.ulimit -SHn 65535 //openfile ulimit -s 65535//stacksize #也可以加入/etc/rc.local,每次重啓生效
調整內核參數文件/etc/sysctl.conf
#此優化適合apache,nginx,squid多種等web應用,特許業務也可能需要略作調整
所謂內核優化,主要是在linux系統中針對業務服務應用而進行的系統內核參數優化,優化並無特殊的標準,
下面以常見生產環境linux的內核優化條目,自行百度其意義&測試適合自己的配置值
net.ipv4.tcp_fin_timeout
net.ipv4.tcp_tw_reuse
net.ipv4.tcp_tw_recycle
net.ipv4.tcp_syncookies
net.ipv4.tcp_keepalive_time
net.ipv4.tcp_local_port_range
net.ipv4.tcp_max_syn_backlog
net.ipv4.tcp_max_tw_buckets
net.ipv4.tcp_synack_retries
net.ipv4.tcp_syn_retries
net.ipv4.tcp_max_orphans
net.core.somaxconn
net.core.netdev_max_backlog
sysctl -p //激活生效
鎖定關鍵系統文件:
chattr +i /etc/passwd
chattr +i /etc/shadow
chattr +i /etc/group
chattr +i /etc/gshadow
chattr +i /etc/inittab
然後把chattr改名,也就是把鎖命令隱藏
mv /usr/bin/chattr /usr/bin/yincang
隱藏我們的版本(放煙幕彈給***):
修改 /etc/issue
更多優化可參考:http://oldboy.blog.51cto.com/2561410/988726